🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.3 KiB

  1. # Similar projects
  2. There are many projects similar to `EnTT`, both open source and not.<br/>
  3. Some even borrowed some ideas from this library and expressed them in different
  4. languages.<br/>
  5. Others developed different architectures from scratch and therefore offer
  6. alternative solutions with their pros and cons.
  7. Below an incomplete list of those that I've come across so far.<br/>
  8. If some terms or designs aren't clear, I recommend referring to the
  9. [_ECS Back and Forth_](https://skypjack.github.io/tags/#ecs) series for all the
  10. details.
  11. I hope this list can grow much more in the future:
  12. * C:
  13. * [destral_ecs](https://github.com/roig/destral_ecs): a single-file ECS based
  14. on sparse sets.
  15. * [Diana](https://github.com/discoloda/Diana): an ECS that uses sparse sets to
  16. keep track of entities in systems.
  17. * [Flecs](https://github.com/SanderMertens/flecs): a multithreaded archetype
  18. ECS based on semi-contiguous arrays rather than chunks.
  19. * [lent](https://github.com/nem0/lent): the Donald Trump of the ECS libraries.
  20. * C++:
  21. * [decs](https://github.com/vblanco20-1/decs): a chunk based archetype ECS.
  22. * [ecst](https://github.com/SuperV1234/ecst): a multithreaded compile-time
  23. ECS that uses sparse sets to keep track of entities in systems.
  24. * [EntityX](https://github.com/alecthomas/entityx): a bitset based ECS that
  25. uses a single large matrix of components indexed with entities.
  26. * [Gaia-ECS](https://github.com/richardbiely/gaia-ecs): a chunk based
  27. archetype ECS.
  28. * [Polypropylene](https://github.com/pmbittner/Polypropylene): a hybrid
  29. solution between an ECS and dynamic mixins.
  30. * C#
  31. * [Entitas](https://github.com/sschmid/Entitas-CSharp): the ECS framework for
  32. C# and Unity, where _reactive systems_ were invented.
  33. * [LeoECS](https://github.com/Leopotam/ecs): simple lightweight C# Entity
  34. Component System framework.
  35. * [Svelto.ECS](https://github.com/sebas77/Svelto.ECS): a very interesting
  36. platform agnostic and table based ECS framework.
  37. * Go:
  38. * [gecs](https://github.com/tutumagi/gecs): a sparse sets based ECS inspired
  39. by `EnTT`.
  40. * Javascript:
  41. * [\@javelin/ecs](https://github.com/3mcd/javelin/tree/master/packages/ecs):
  42. an archetype ECS in TypeScript.
  43. * [ecsy](https://github.com/MozillaReality/ecsy): I haven't had the time to
  44. investigate the underlying design of `ecsy` but it looks cool anyway.
  45. * Perl:
  46. * [Game::Entities](https://gitlab.com/jjatria/perl-game-entities): a simple
  47. entity registry for ECS designs inspired by `EnTT`.
  48. * Raku:
  49. * [Game::Entities](https://gitlab.com/jjatria/raku-game-entities): a simple
  50. entity registry for ECS designs inspired by `EnTT`.
  51. * Rust:
  52. * [Legion](https://github.com/TomGillen/legion): a chunk based archetype ECS.
  53. * [Shipyard](https://github.com/leudz/shipyard): it borrows some ideas from
  54. `EnTT` and offers a sparse sets based ECS with grouping functionalities.
  55. * [Sparsey](https://github.com/LechintanTudor/sparsey): sparse set based ECS
  56. written in Rust.
  57. * [Specs](https://github.com/amethyst/specs): a parallel ECS based mainly on
  58. hierarchical bitsets that allows different types of storage as needed.
  59. * Zig
  60. * [zig-ecs](https://github.com/prime31/zig-ecs): a _zig-ification_ of `EnTT`.
  61. If you know of other resources out there that can be of interest for the reader,
  62. feel free to open an issue or a PR and I'll be glad to add them to this page.