类似项目
目录
简介
有许多与 EnTT 类似的项目,既有开源的,也有非开源的。
有些甚至借鉴了本库的一些想法,并用不同的语言将其表达出来。
另一些则从零开始开发了不同的架构,因此提供了具有各自优缺点的替代解决方案。
如果您知道其他类似的项目,请随时提交 issue 或 PR,我很乐意将它们添加到本页中。
我希望以下列表在未来能够大幅扩充。
类似项目
以下是我迄今为止遇到的一些类似项目的不完整列表。
如果某些术语或设计不清晰,建议参阅 ECS Back and Forth 系列文章以获取所有详细信息。
-
C:
- destral_ecs: 一个基于稀疏集 (sparse sets) 的单文件 ECS。
- Diana: 一个使用稀疏集来跟踪系统中实体的 ECS。
- Flecs: 一个多线程原型 (archetype) ECS,基于半连续数组 (semi-contiguous arrays) 而非块 (chunks)。
- lent: ECS 库中的唐纳德·特朗普。
-
C++:
- decs: 一个基于块 (chunk-based) 的原型 ECS。
- ecst: 一个多线程编译时 ECS,使用稀疏集来跟踪系统中的实体。
- EntityX: 一个基于 bitset 的 ECS,使用单个大型组件矩阵并以实体为索引。
- Gaia-ECS: 一个基于块的原型 ECS。
- Polypropylene: ECS 与动态 mixin 之间的混合解决方案。
-
C#
- Arch: 一个简单、快速且受 Unity Entities 启发的原型 ECS,支持可选的多线程。
- Entitas: C# 和 Unity 的 ECS 框架,响应式系统 (reactive systems) 即诞生于此。
- Fennecs: 那个爱你的小型原型 ECS。
- Friflo ECS: 一个专注于性能和最小化垃圾回收 (GC) 分配的原型 ECS。
- LeoECS: 简单轻量的 C# 实体组件系统框架。
- Massive ECS: 基于稀疏集的 ECS,支持回滚 (rollbacks)。
- Svelto.ECS: 一个非常有趣的平台无关且基于表 (table-based) 的 ECS 框架。
-
Go:
- gecs: 一个受
EnTT启发的基于稀疏集的 ECS。
- gecs: 一个受
-
Javascript:
- @javelin/ecs: TypeScript 中的原型 ECS。
- ecsy: 我还没有时间深入研究
ecsy的底层设计,但它看起来无论如何都很酷。
-
Perl:
- Game::Entities: 一个受
EnTT启发的用于 ECS 设计的简单实体注册表 (entity registry)。
- Game::Entities: 一个受
-
Raku:
- Game::Entities: 一个受
EnTT启发的用于 ECS 设计的简单实体注册表。
- Game::Entities: 一个受
-
Rust:
-
Zig
- zig-ecs:
EnTT的 Zig 化 版本。
- zig-ecs: