Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

类似项目

目录

简介

有许多与 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。
  • Javascript:

    • @javelin/ecs: TypeScript 中的原型 ECS。
    • ecsy: 我还没有时间深入研究 ecsy 的底层设计,但它看起来无论如何都很酷。
  • Perl:

    • Game::Entities: 一个受 EnTT 启发的用于 ECS 设计的简单实体注册表 (entity registry)。
  • Raku:

    • Game::Entities: 一个受 EnTT 启发的用于 ECS 设计的简单实体注册表。
  • Rust:

    • Shipyard: 它借鉴了 EnTT 的一些想法,并提供了一个基于稀疏集且具有分组 (grouping) 功能的 ECS。
    • Sparsey: 用 Rust 编写的基于稀疏集的 ECS。
    • Specs: 一个主要基于分层 bitset 的并行 ECS,允许根据需要选择不同类型的存储。
  • Zig

    • zig-ecs: EnTTZig 化 版本。