随笔 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,请移步
叫我abc

常用链接

留言簿(12)

随笔分类

我的博客

搜索

  •  

积分与排名

  • 积分 - 301918
  • 排名 - 84

最新评论

阅读排行榜

一个单机游戏常用的流程框架如图:

将输入交给逻辑,逻辑处理后交给场景管理器进行图形设定。

类似的,一个网络游戏的流程框架也可以采用近似的模式:

左边是客户端部分,右边是服务器部分。其中InputProxy和ScnMgrProxy均是代理,这是仿照于RPC的设计思想,能在上层概念上隐藏网络层的内容。而不带箭头的连线则表示非请求被确认后才执行的游戏逻辑路径,这是APRG常有的事情,不可能什么事情都等待服务器确认后才处理。
代理的作用就是发送网络消息包,而被代理者的作用就是接受网络消息包,并执行相应的任务。
这样的设计有以下几个好处:
1. 组件有更高的绝缘性:你不需要像以前一样把网络相关的代码散布到逻辑代码的各处,并且你可以肯定网络发包就在代理对象下,而代理对象提供的是具有更高逻辑抽象的接口,更具可读性。

2. 纯逻辑代码可以无需修改的应用在服务器和客户端部分,你不需要再写什么XXXC类,XXXS类这样的东西了。
3. 只要设计得当,你应该可以立即将一个网络游戏转换成一个单机游戏,通过去掉代理对象;或者做相反的事情。
posted on 2007-05-07 09:58 LOGOS 阅读(1189) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理