我读了很多关于游戏引擎架构的书,想知道以下几点:什么是(are?)目前被认为是游戏引擎的最佳架构是什么?
如果我们能找到一些学术资源(例如论文或类似的),而不是孤立的开发人员的轶事经验,我将非常感激。
谢谢
发布于 2011-07-13 01:08:55
“最好的”是相当主观的。作为一名专业的游戏开发人员,我不能完全严格地回答您的问题,但我听说过基于组件的游戏引擎和(函数式)反应式引擎。还有一种选择是使用实体的层次结构,例如,"Evolve Your Hierarchy"中所描述的,但从我所看到的情况来看,它正在被抛弃,取而代之的是基于组件的引擎。
Hierarchical:使用继承来提供功能(“演进您的Hierarchy”显示了一个Car子类化Vehicle的示例,它使用子类Entity对Moveable进行子类化)。如上所述,问题是决定功能应该放在哪里:如果在继承树中放得更高,它会给子类增加可能不会使用的功能的负担;放得太低,最终会导致复制/重构代码来将功能放到需要的地方。
基于组件:每个游戏对象/实体都是由“组件”组成的,这些组件提供可重用的、特定的功能,如动画/移动、对物理的反应、被玩家激活等。"Component based game engine design",另一个SO问题,详细描述了它并提供了论文等的链接,这应该会有所帮助。
(函数式)反应式:通常在函数式语言(如Haskell )的上下文中进行研究。据我所知,中心概念是第一类时变值,行为是根据这些值和其他构建块来描述的,例如表示离散事件的事件。"What is functional reactive programming"提供了比我更好的描述。我相信.NET的WPF数据绑定就是这些概念的一个例子。据我所知,这仍在试验/研究中,但Wikipedia article for reactive programming (不是FRP,请注意)链接到为Lisp、Python、Java和其他语言编写的库。
https://stackoverflow.com/questions/6667668
复制相似问题