意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

游戏客户端中的常用模块

来源:恒创科技 编辑:恒创科技编辑部
2022-09-30 06:02:04


作了差不多有三年手机游戏了,今天在这里总结一下所有游戏的共同点。以后只要是有需要客户端建框架的,先不管游戏内容是什么,先按下边的套路来建框架,框架建好了之后,再来写游戏内容,这样我们就可以少走很多弯路,可以把最多的精力放在游戏玩法上。



游戏客户端中的常用模块

结果了一下,大体上,客户端有这几个模块是每一个游戏都必须有的。我会把这些已经完成的模块建一个游戏模板。方便我以后自已使用。


1.网络,


网络分为短连接的http和常连接的socket.一般的手机游戏都使用http,http服务器对于玩家与服务器交互不多的情况下用户承载量比较大,每台服务器最多时可以有5万用户。但socket就不同了,差不多就是几千用户吧。一般使用socket,服务器推送消息就不用担心了,常连接,服务器可以直接推送数据给客户端。但如果是http推送数据可能使用的是第三方推送服务器。


2.本地配制数据


不论是单机游戏,还是网络游戏,游戏中都会有很多和游戏相关的配制数据。这些配制数据是写死在系统中的,主要存储的内容是游戏中的逻辑数据,或者一些配置信息。这些信息在一般的游戏中都会存在。所以,这一块也是一个客户端必须的模块,可以使用json,xml,或者google的protobuf。据说现在protobuf越来越注行了,而且这个保存的是二进制文件,没有proto配置文件是没有办法解析protobuf数据的,这也让本地数据比xml和json更安全了。


3.内存用户数据


每一个游戏都有一些动态的数据是时时刻刻都存在于内容之中的,玩家操作,或者游戏事情都会改变这些内存中的数据,而这些游戏是动态的,会因为游戏的运行而发生改变,游戏中的其他各个模块都会与之发生或多或少的联系。这就是游戏玩家数据。这一部分数据初始化时一般来自本地配制数据,游戏完全启动之后会通过网络或者本地保存的用户数据初始化为当前玩家的游戏数据。这一部分数据比较重要,决定了游戏中各个玩家的不同。所以一般都会存在服务器的数据库中。


4.UI界面


这一部分大多是一些零散的控件,用户会通过这些界面来改变内存中的游戏数据,或者调用网络模块将数据与其他玩家交互,或者将数据存入网络数据库中。这一整块主要功能就是给用户展示数据,或者让用户输入数据,或者记用户操作数据。


5.游戏玩法逻辑


游戏玩法逻辑模块,这一部分主要体现的是游戏中的用户数据逻辑关系,当用户操作游戏内存数据时,游戏中的数据改变方式在这里展现。

上一篇: 租用美国服务器:潜在的风险与应对策略。 下一篇: MongoDB 5.0 扩展开源文档数据库操作