网络游戏的粗略模块划分

网络游戏和一般网络客户端程序在模块的划分上面很相似。

相似点:都要显示一些东西;都要存储一些用户的进度和配置修改;都要和服务器校验交互一些数据等;

不同点:一般的可视点上,作为游戏需要非常强的趣味性、操作的可重复性高、反馈应该及时和显示的内容比较丰富(一般CPU使用率高)、特效更加炫丽等;

大多数在线游戏存储上,由于使用资源多,占用内存高,为了解决这些问题,都需要有专门的资源管理机制(当然在显示上,也有场景管理以减少渲染);

一般和服务器交互,是为了保证用户数据正确的永久存储和其它用户的交互等问题。而网络游戏这方面,需要更加迫切,另外,网络游戏在防作弊方面也主要在 服务器上实现。


  1. 配置表:一般都要实现动态更新,以在不更新app的情况下,修改一些游戏内容。配置表上的文章一般在,是否可不重启更新配置。还有在苛刻的环境下,对内存占用 大小,读取速度,存储的格式等等问题都可做定制。
  2. 内存数据:一般就是服务器过来的数据都要缓存在内存里边,当然还包括一些依据服务器数据生成的数据。这部分数据都在服务器不新推的情况下缓存以便UI/战斗逻辑调用。
  3. 网络:把每一条网络消息看作一条服务器指令,有些指令是用户操作希望得到的结果,有些指令是服务器主动推给客户端的,有些指令只要存储,有些指令需要通过事件机制传送给UI/战斗逻辑。
  4. 本地存储:一般就于存储和机器相关的配置设定。
  5. UI方面:一般界面比较多,需要一个堆栈叠层的机制,在界面关闭后,要回收内存和缓存一些资源,以便下次使用。单个UI之间最好不要相关引用(一定要交互的,最好使用事件机制中转),方便后期维护。当然,国内游戏最关注的就是动态更新,这个如果不用Lua的话,只能自己写个简单的UI配置(这个也算脚本);
  6. 战斗方面:这个一般就是游戏的核心,它需要和整个游戏的其它所有部分交互。和音频、视频、动画、动作、特效、相机、UI、网络、配置表等基础物件交互,还要用这些东西组成大的片段或者封装成高级模块,如:剧情、对话、技能、连招、音频管理、缓存资源、事件交互、场景管理、角色怪物AI等等。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值