概述
网络游戏和一般网络客户端程序在模块的划分上面很相似。
相似点:都要显示一些东西;都要存储一些用户的进度和配置修改;都要和服务器校验交互一些数据等;
不同点:一般的可视点上,作为游戏需要非常强的趣味性、操作的可重复性高、反馈应该及时和显示的内容比较丰富(一般CPU使用率高)、特效更加炫丽等;
大多数在线游戏存储上,由于使用资源多,占用内存高,为了解决这些问题,都需要有专门的资源管理机制(当然在显示上,也有场景管理以减少渲染);
一般和服务器交互,是为了保证用户数据正确的永久存储和其它用户的交互等问题。而网络游戏这方面,需要更加迫切,另外,网络游戏在防作弊方面也主要在 服务器上实现。
- 配置表:一般都要实现动态更新,以在不更新app的情况下,修改一些游戏内容。配置表上的文章一般在,是否可不重启更新配置。还有在苛刻的环境下,对内存占用 大小,读取速度,存储的格式等等问题都可做定制。
- 内存数据:一般就是服务器过来的数据都要缓存在内存里边,当然还包括一些依据服务器数据生成的数据。这部分数据都在服务器不新推的情况下缓存以便UI/战斗逻辑调用。
- 网络:把每一条网络消息看作一条服务器指令,有些指令是用户操作希望得到的结果,有些指令是服务器主动推给客户端的,有些指令只要存储,有些指令需要通过事件机制传送给UI/战斗逻辑。
- 本地存储:一般就于存储和机器相关的配置设定。
- UI方面:一般界面比较多,需要一个堆栈叠层的机制,在界面关闭后,要回收内存和缓存一些资源,以便下次使用。单个UI之间最好不要相关引用(一定要交互的,最好使用事件机制中转),方便后期维护。当然,国内游戏最关注的就是动态更新,这个如果不用Lua的话,只能自己写个简单的UI配置(这个也算脚本);
- 战斗方面:这个一般就是游戏的核心,它需要和整个游戏的其它所有部分交互。和音频、视频、动画、动作、特效、相机、UI、网络、配置表等基础物件交互,还要用这些东西组成大的片段或者封装成高级模块,如:剧情、对话、技能、连招、音频管理、缓存资源、事件交互、场景管理、角色怪物AI等等。
最后
以上就是懦弱指甲油为你收集整理的网络游戏的粗略模块划分的全部内容,希望文章能够帮你解决网络游戏的粗略模块划分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复