【发布时间】:2014-01-08 14:44:06
【问题描述】:
我已经阅读了很多关于实体框架的内容,现在我想在我的游戏中实现它。实体框架基于使游戏实体成为组件的简单容器,其中组件包含实体的特定特征(以及描述该特征的所有变量/访问器)。 然后通过创建系统将游戏逻辑模块化。每个系统都实现并运行游戏逻辑的某个方面(例如碰撞、渲染、动画)。每个系统必须能够访问具有某些特定组件组合的每个实体(例如,RenderSystem 必须仅获取具有 PositionComponent 和 AnimationComponent 的实体)。
我的问题是关于实现此类功能的最佳数据结构。
我目前的想法是创建一个实体列表的向量(包含 N 个单元,其中 N 是可能组件的数量)。所以每当我创建(实例化和添加某些组件)一个实体时,我也会从每个列表中为它包含的每个组件引用这个实体。 “杀死”一个实体需要从每个列表中删除每个引用。问题将是查询哪些实体必须由某个系统处理,因为搜索键将是组件的组合,而不是单个组件,这增加了操作的开销(许多搜索和必须进行比较)。
我的想法好吗?我可以使用更好的数据结构吗?请注意,游戏中的所有内容都应该是一个实体,在一个关卡上总计有数千个实体(我可能会使用一些空间分区)。
【问题讨论】:
-
我会使用Visitor pattern。
-
实现最好的数据结构?天才!
标签: frameworks entity game-engine