3

这几天我正在对基于组件的实体系统进行一些研究。我使用实体级别的黑板模式和共享该黑板进行通信的组件进行了第一次近似。

在进行这项研究时,我发现了一个名为 Artemis 的实体框架,它遵循用于实体管理的 FRP 结构。这个想法似乎很不错,我正在考虑集成到我的引擎中。但是,我有一些问题需要解决才能完全理解这个“奇怪”的架构:

1)在我的第一个近似中,组件共享数据的方式非常简单,遵循黑板模式。FRP之后应该怎么做?看起来,每个系统都将拥有与组件的所有依赖关系(使组件完全解耦)。我的意思是,如果碰撞系统需要了解物理组件、可移动系统等......碰撞系统将导入所有这些组件并使用它们完成所有需要的工作。这是正确的吗?

2)每个系统是同质的还是异质的组件容器?我猜系统必须与它们持有的组件类型相关,因为系统需要知道组件数据才能在更新期间使用它。这使我想到下一个问题:

3)这种架构不会导致系统/组件过多吗?

4) 事件系统如何适应这种结构?我通常在游戏对象中有插槽/信号,但似乎在 artemis 结构中没有“实体”概念。

抱歉,这个问题很长,并在此先感谢。

4

0 回答 0