ECS框架(待更新)

1,578 阅读1分钟

Entity Component System

Entity: 代表游戏中的实体,是 Component 的容器。本身并无数据和逻辑。

Component: 实体所有的属性组件,一个或多个 Component 组成了游戏中的逻辑实体。只有数据,不涉及逻辑。

System: 对 Component 集中进行逻辑操作的部分。一个 System 可以操作一类或多类 Component。同一个 Component 在不同的 System 中,可以关联不同的逻辑。(system关心component而不是entity)

常用 Singleton 模式和把共用代码放进 Utility function 解决system之间可能发生的耦合问题

ECS 框架优点:

1)高复用性:组件之间容易组合

2)扩展性强:面向对象的思想是对象本身是什么,而面向数据的思想是对象有什么,增加新的功能就是添加新的组件,无需修改之前的逻辑

3)性能方面提供了更大的优化空间

4)降低了代码之间的耦合度

ECS 框架缺点:

1)面向数据的编程模式,势必造成大量的组件及系统组合的形式,对于代码重构会形成很大的困难

2)默写模块与系统的耦合过高,造成一些功能的重用要有整个ECS环境才能运行

3)全部是数据都是开放的,数据上设计不好会造成很大影响