一个单机游戏常用的流程框架如图:
将输入交给逻辑,逻辑处理后交给场景管理器进行图形设定。
类似的,一个网络游戏的流程框架也可以采用近似的模式:
左边是客户端部分,右边是服务器部分。其中InputProxy和ScnMgrProxy均是代理,这是仿照于RPC的设计思想,能在上层概念上隐藏网络层的内容。而不带箭头的连线则表示非请求被确认后才执行的游戏逻辑路径,这是APRG常有的事情,不可能什么事情都等待服务器确认后才处理。
代理的作用就是发送网络消息包,而被代理者的作用就是接受网络消息包,并执行相应的任务。
这样的设计有以下几个好处:
1. 组件有更高的绝缘性:你不需要像以前一样把网络相关的代码散布到逻辑代码的各处,并且你可以肯定网络发包就在代理对象下,而代理对象提供的是具有更高逻辑抽象的接口,更具可读性。
2. 纯逻辑代码可以无需修改的应用在服务器和客户端部分,你不需要再写什么XXXC类,XXXS类这样的东西了。
3. 只要设计得当,你应该可以立即将一个网络游戏转换成一个单机游戏,通过去掉代理对象;或者做相反的事情。
posted on 2007-05-07 09:58
LOGOS 阅读(1189)
评论(0) 编辑 收藏 引用