首页 > 解决方案 > 在 Java 中存储 ECS 的组件

问题描述

我正在使用 ECS(实体组件系统)在 java 中创建一个网络游戏,这是我第一次使用 ECS。我不确定我应该如何存储组件。我确实想使用一个实体类,我将在其中存储该特定实体的组件,但是如何?我是否应该从基类扩展所有组件并将它们存储在数组列表中?我应该使用集合吗?我基本上只是问是否有人对如何做到这一点有任何建议?谢谢。

标签: javalibgdxkryonetentity-component-system

解决方案


您可能想看看 Unity 是如何做到的。这里有一些词汇可以帮助您进行研究。

Unity使用来存储组件的原型。这些组件存储在这些块内的内存对齐数组中,以获得更好的缓存性能。您还可以查看 Unity 的 ECS 源代码(存储在他们的“实体”包中),这可以向您展示他们如何存储和访问组件数据。


推荐阅读