文档: https://github.com/dualface/ecs-typescript
ECS 系统源代码: https://github.com/dualface/ecs-typescript/tree/main/lib/ecs
在线 DEMO 展示: https://liaoyulei.cn/projects/ecs-typescript/demo/
适用于 Cocos Creator 3.0 的 DEMO 源代码: https://github.com/dualface/ecs-typescript/tree/main/demo-3.0/assets/scripts
适用于 Cocos Creator 2.4 的 DEMO 源代码: https://github.com/dualface/ecs-typescript/tree/main/demo-2.4/assets/scripts
QQ 群: 367237484
~
目标
ECS 是 Entity-Component-System 的缩写,代表了一种架构模式。
ECS 并没有什么标准的实现。不过总的来讲,ECS 具有这些特点:
-
Entity代表一个实体,例如游戏中的 NPC、子弹、物品等等。通常每一个Entity都有一个唯一 ID。 -
Component代表构成一个实体的其中一部分,称为组件。例如 NPC 可能由Movable(可以移动)、Health(具有健康度,也就是血量)、RenderNode(渲染节点)几个组件组成,每个组件只定义特定的一组属性或者状态。 -
System代表处理某一个领域逻辑的系统。大部分系统都是处理特定的Component,例如专门处理所有Movable组件的系统仅仅处理移动等操作。这样一来大部分 system 通常都只包含相对简单的逻辑。
不过 ECS 也并非万能钥匙。在 UI 交互等场景中,ECS 用起来就比较繁琐了。所以从实践的角度,我主要将 ECS 用于构建游戏世界的玩法实现。而涉及到 UI 交互等场景,仍然采用传统的面向对象架构。
在 ecs-typescript 这个实现中,我主要追求以下目标:
-
容易理解的设计
-
简单明了的 API
-
无性能损耗
~
READ MORE: https://github.com/dualface/ecs-typescript
…
