正文内容加载中...
摘要:
其实在一个MMORPG的项目中,经常会遇到这种问题,服务器作为主控方,掌握了绝大部分数据的修改权利,通常对于不同类型的数据包,需要专门定义协议,然后在数据改变的时候同步给客户端(在《武林至尊》中,我们把这种数据主要分为资产和FOV数据两种)。在客户端的逻辑模块,根据服务器发过来的消息包修改本地数据。而客户端的其他模块(UI,渲染)需要定期扫描客户端逻辑模块的数据变化(也可以由逻辑模块主动通知),然后再将部分数据转换为自己模块内部的本地数据(脚本数据,渲染数据)。 服务器端掌管着数千个客户端需要得到的数据集,如果在上图中,把客户端本身也看出一个控制器,我们可以想象这样一种抽象结构,主要的数据.. 阅读全文
摘要:
个人还是偏爱在设计初第一步使用模块层次图来描述一个工程的基本结构。因为层次图可以在较浅的层面上对整个工程进行全面考虑,比较容易在一开始就确定细化设计的重点,并且通常层次图也可以对整体工程的子工程划分起到启发作用。但模块层次图无法具体体现出单层中各个模块之间的交互和依赖关系,也不能提供程序代码的层次划分关系,不能单独使用层次图对开发进行指导。 工程层次结构如图 图中的分割线表示多平台支持的分界线,通常分割线所在层次越高,开发难度就越高,分割线可以选择在网络协议层之上,或者在业务逻辑层之上不再支持跨平台实现。 具体情况要根据需要多平台支持何种业务来定。例如客户端在Windows平台上,服务器在L. 阅读全文
摘要:
通过对一种设计模式的讨论,思考MMORPG中如何简化C/S端间的数据同步,简化业务逻辑的变化对工程结构的影响 阅读全文
摘要:
记录时间:2009年12月14日 更依赖于事件的技能设计方案 如果我们将技能事件的定义和功能扩展,会发现其实远程技能,近程技能的共通点。前期设计中,我们只考虑了事件的瞬时性,换句话说,我们认为只有瞬时发生,并只发生一次的逻辑才属于技能事件。如果我们在事件上加入时间,变化性等特点,可以惊喜的发现原来近程/远程技能的逻辑是如此统一。 我们可以尝试用新的事件结构来描述近程和远程技能 就像上面所描绘的一样,近程技能和远程技能在设计上达成了统一。近程/远程技能在技能控制,时序更新,事件触发和结果派发的各个关键点上的逻辑达成了一致,它们之间的差异性被转移到事件本身中。采用这种设计,技能的... 阅读全文