322得票8回答
组件化游戏引擎设计

我一直在研究游戏引擎设计(特别是专注于2D游戏引擎,但也适用于3D游戏),对如何实现它很感兴趣。我听说现在许多引擎都采用组件化设计而不是传统的深层次对象层级。 您是否知道有哪些好的链接提供这些设计通常如何实现的信息?我看过evolve your hierarchy,但我真的找不到更多详细信息...

22得票6回答
实现实体组件系统中实体与系统间高效匹配的方法

我正在开发一个以数据为导向的实体组件系统,其中组件类型和系统签名在编译时已知。 一个实体是由多个组件聚合而成的。组件可以在运行时添加/删除。 一个组件是一个小型无逻辑类。 签名是一个在编译时确定的组件类型列表。如果实体包含签名所需的所有组件类型,则称实体与签名匹配。 以下简短的...

10得票2回答
相比于面向对象编程(OOP)或其他编程范式,ECS (Entity-Component-System)架构模式有哪些缺点?

由于Unity ECS的影响,我最近一直在阅读关于ECS的文章。 ECS架构有许多明显的优点: ECS是数据导向的:数据往往被线性存储,这是系统访问它的最佳方式。在良好的ECS实现中,数据被顺序地存储和处理,对于任何给定的系统处理其一组组件时很少或没有中断。 ECS非常模块化:它自然地将...

7得票1回答
将实体-组件-系统中的组件拆分需要进行过多的重构。

我有一份现有的C++游戏库,使用实体-组件-系统(ECS)。我的库的使用者想要创建一些组件,例如Cat: class Cat{ public: int hp; float flyPower; }; 他可以通过以下方式修改每个猫的hp: for(SmartComponen...