Forráskód Böngészése

doc: added similar projects (close #443)

Michele Caini 6 éve
szülő
commit
0141dc519c
3 módosított fájl, 44 hozzáadás és 1 törlés
  1. 1 1
      TODO
  2. 1 0
      docs/CMakeLists.txt
  3. 42 0
      docs/md/references.md

+ 1 - 1
TODO

@@ -18,7 +18,7 @@
 
 Next:
 * replace observer class with observer functions
-* patch rather than replace, emplace rather then assign (when we have args... ofc)
+* get(cmp, entity) -> void *, set(cmp, entity, void *)
 
 * WIP:
  - deprecate snapshot, loader, ...

+ 1 - 0
docs/CMakeLists.txt

@@ -24,6 +24,7 @@ add_custom_target(
         md/locator.md
         md/meta.md
         md/process.md
+        md/references.md
         md/resource.md
         md/signal.md
         doxy.in

+ 42 - 0
docs/md/references.md

@@ -0,0 +1,42 @@
+# Similar projects
+
+There are many projects similar to `EnTT`, both open source and not.<br/>
+Some even borrowed some ideas from this library and expressed them in different
+languages.<br/>
+Others developed different architectures from scratch and therefore offer
+alternative solutions with their pros and cons.
+
+Below an incomplete list of those that I've come across so far.<br/>
+If some terms or designs aren't clear, I recommend referring to the
+[_ECS Back and Forth_](https://skypjack.github.io/tags/#ecs) series for all the
+details.
+
+I hope this list can grow much more in the future:
+
+* C:
+  * [Diana](https://github.com/discoloda/Diana): an ECS that uses sparse sets to
+    keep track of entities in systems.
+  * [Flecs](https://github.com/SanderMertens/flecs): a multithreaded archetype
+    ECS based on semi-contiguous arrays rather than chunks.
+  * [lent](https://github.com/nem0/lent): the Donald Trump of the ECS libraries.
+
+* C++:
+  * [decs](https://github.com/vblanco20-1/decs): a chunk based archetype ECS.
+  * [ecst](https://github.com/SuperV1234/ecst): a multithreaded compile-time
+    ECS that uses sparse sets to keep track of entities in systems.
+  * [EntityX](https://github.com/alecthomas/entityx): a bitset based ECS that
+    uses a single large matrix of components indexed with entities.
+
+* Javascript:
+  * [ecsy](https://github.com/MozillaReality/ecsy): I haven't had the time to
+    investigate the underlying design of `ecsy` but it looks cool anyway.
+
+* Rust:
+  * [Legion](https://github.com/TomGillen/legion): a chunk based archetype ECS.
+  * [Shipyard](https://github.com/leudz/shipyard): it borrows some ideas from
+    `EnTT` and offers a sparse-sets based ECS with grouping functionalities.
+  * [Specs](https://github.com/amethyst/specs): a parallel ECS based mainly on
+    hierarchical bitsets that allows different types of storage as needed.
+
+If you know of other resources out there that can be of interest for the reader,
+feel free to open an issue or a PR and I'll be glad to add them to this page.