Similar projects
Table of Contents
Introduction
There are many projects similar to EnTT, both open source and not.
Some even borrowed some ideas from this library and expressed them in different
languages.
Others developed different architectures from scratch and therefore offer
alternative solutions with their pros and cons.
If you know of other similar projects out there, feel free to open an issue or a
PR, and I will be glad to add them to this page.
I hope the following lists can grow much more in the future.
Similar projects
Below an incomplete list of similar projects that I have come across so
far.
If some terms or designs are not clear, I recommend referring to the
ECS Back and Forth series for all the
details.
C:
- destral_ecs: a single-file ECS based
on sparse sets.
- Diana: an ECS that uses sparse sets to
keep track of entities in systems.
- Flecs: a multithreaded archetype
ECS based on semi-contiguous arrays rather than chunks.
- lent: the Donald Trump of the ECS libraries.
C++:
- decs: a chunk-based archetype ECS.
- ecst: a multithreaded compile-time
ECS that uses sparse sets to keep track of entities in systems.
- EntityX: a bitset based ECS that
uses a single large matrix of components indexed with entities.
- Gaia-ECS: a chunk-based
archetype ECS.
- Polypropylene: a hybrid
solution between an ECS and dynamic mixins.
C#
- Arch: a simple, fast and unity entities
inspired archetype ECS with optional multithreading.
- Entitas: the ECS framework for
C# and Unity, where reactive systems were invented.
- Fennecs: the little archetype ECS that
loves you back.
- Friflo ECS: an archetype ECS
with focus on performance and minimal GC allocations.
- LeoECS: simple lightweight C# Entity
Component System framework.
- Massive ECS: sparse set based ECS
featuring rollbacks.
- Svelto.ECS: a very interesting
platform-agnostic and table-based ECS framework.
Go:
- gecs: a sparse sets based ECS inspired
by
EnTT.
Javascript:
- \@javelin/ecs:
an archetype ECS in TypeScript.
- ecsy: I have not had the time to
investigate the underlying design of
ecsy but it looks cool anyway.
Perl:
- Game::Entities: a simple
entity registry for ECS designs inspired by
EnTT.
Raku:
- Game::Entities: a simple
entity registry for ECS designs inspired by
EnTT.
Rust:
- Shipyard: it borrows some ideas from
EnTT and offers a sparse sets based ECS with grouping functionalities.
- Sparsey: sparse set based ECS
written in Rust.
- Specs: a parallel ECS based mainly on
hierarchical bitsets that allows different types of storage as needed.
Zig