优化……优化……

以下皆为最近才了解到的常识问题:

1、渲染场景的时候,不应该每个逻辑对象都拥有自己的mesh,而是应该所有相同的对象共用一个mesh。纹理也是如此,应该若干对象共用一个纹理。对于各种对象内部的工具性字段都应该共用。
2、递归是绣花枕头。坚决不用递归。
3、要用事件来触发,不要用轮询。


为了方便扩充和什么什么,要把引擎拆开。
内核为由用户启动的Client.EXE,它负责管理工具性字段和一切逻辑对象,但是所有逻辑对象的表现和行为它都不管。除此以外它监视输入设备,将监视结果传给Control以获得翻译后的逻辑对象行为指令,并将这些指令发给Server.DLL。
Control.DLL,这个模块接受Client传来的输入设备状态,并返回翻译后的行为指令。
Server.DLL,这个模块负责管理逻辑对象的互动。它接收Client里对象的行为,并通过Logic计算后返回行为后果。它应该可以连接多个Client。
Logic.DLL,这个模块包含游戏的逻辑,比如所有的计算公式。必要的时候它调用AI来返回计算结果。
AI.DLL,包括所有的AI,公用的工具性AI和用来对抗的战略AI。
ViewStyle.DLL,这个模块负责所有的表现工作,包括绘制和发声。但是它并不保存Device实例。所有表现原料都从Client接收。

合理……么?

posted @ 2006-05-20 18:25  Cloudage  阅读(226)  评论(0编辑  收藏  举报