a_m*_*m0d 322 architecture game-engine entity-system entity-component-system
我一直在研究游戏引擎设计(特别关注 2d 游戏引擎,但也适用于 3d 游戏),并且对如何进行的一些信息感兴趣。我听说现在许多引擎正在转向基于组件的设计,而不是传统的深层对象层次结构。
您是否知道有关此类设计通常如何实施的信息的任何良好链接?我已经看到了你的层次结构的进化,但我真的找不到更多的详细信息(他们中的大多数似乎只是说“使用组件而不是层次结构”,但我发现改变我的想法需要一些努力在两个模型之间)。
任何关于这方面的好的链接或信息都将不胜感激,甚至是书籍,尽管这里的链接和详细答案将是首选。
Ger*_*ger 316
2013 年 1 月 7 日更新:如果您想看到基于组件的游戏引擎与(在我看来)反应式编程的卓越方法的良好组合,请查看V-Play 引擎。它很好地集成了 QTs QML 属性绑定功能。
我们在我们大学对游戏中的 CBSE 进行了一些研究,这些年来我收集了一些材料:
游戏文学中的CBSE:
在 C# 中基于组件的游戏引擎的一个非常好的和干净的例子是大象游戏框架。
如果您真的想知道读取了哪些组件:基于组件的软件工程!他们将组件定义为:
甲软件组件是一个软件元件符合一个组件模型,并且可以独立地展开和根据组合物的标准而无需修改组成。
甲组件模型 定义了特定的相互作用和组合物的标准。组件模型实现是支持执行符合模型的组件所需的一组专用的可执行软件元素。
甲软件组件的基础设施是一组相互作用的设计,以确保一个软件系统或子系统使用这些组件和接口将满足明确定义的性能规格构造软件组件。
在 2 年的游戏 CBSE经验之后,我的观点是,面向对象的编程简直是一条死胡同。请记住我的警告,当您看到您的组件变得越来越小,并且更像是封装在具有大量无用开销的组件中的函数时。改用函数式反应式编程。还可以查看我的新博客文章(这使我在写作时提出了这个问题:))关于为什么我从基于组件的游戏引擎架构切换到 FRP。
游戏论文中的CBSE:
游戏网络链接中的 CBSE(按相关性排序):
小智 9
似乎确实缺乏有关该主题的信息。我最近实现了这个系统,我发现了一个非常好的 GDC Powerpoint,它很好地解释了经常被遗忘的细节。该文件在这里:游戏对象组件架构的理论与实践
除了那个 Powerpoint,还有一些很好的资源和各种博客。PurplePwny 有一个很好的讨论和一些其他资源的链接。Ugly Baby Studios对组件如何相互交互的想法进行了一些讨论。祝你好运!
它是开源的,可从http://codeplex.com/elephant 获得
有人制作了 gpg6 代码的工作示例,您可以在这里找到它:http : //www.unseen-academy.de/componentSystem.html
或在这里:http : //www.mcshaffry.com/GameCode/thread.php?threadid=732
问候