我有两个组件,核心组件和可视组件。核心组件完成所有游戏逻辑并完成所有客户端/服务器计算。该组件始终位于客户端和服务器端的对象上。
然后我有可视组件,它只是客户端。
我的问题是,如果核心组件告诉可视组件它需要的信息,并且可视组件完全不知道核心组件存在,或者可视组件是否总是更新并从核心组件获取信息并拥有核心组件完全没有意识到存在的可视组件?
答案 0 :(得分:1)
在我看来,最直接的方法是核心组件不应该知道可视组件。可视组件应该知道核心组件,以便查询它,监听事件,更新它等。这样可以在不影响核心组件的情况下替换可视组件,并且系统可以支持许多不同的可视组件,如果你只要核心组件也是多平台的,就可以进行多平台游戏。此外,保持组件松散耦合也很重要。为了轻松更换组件,从松散耦合的方式开始设计系统。
有关灵感,请查看一些id的开源游戏http://fabiensanglard.net/quake3/的优秀评论。我相信评论中提到了每个游戏的架构。