[ANN] Ark.jl: archetype-based entity component system (ECS) for games and simulations

ReactiveECS.jl currently uses one huge “table” for all entities, which has the issue of potentially vasting a lot of memory. However, the author @Gesee still seems to be iterating on the architecture, as far as I can tell from what I read on the Julia and Flecs Discord servers. There is also some discussions about that in this forum thread.

Ark.jl uses a classical and proven archetype-based architecture, which uses a separate “table” for all entities with the same set of components. This avoids the mentioned waste of memory, as each table only has the required columns. At the same time, query iteration is way more efficient than in sparse-set ECS, like Overseer.jl. Adding and removing components to/from entities, however, is more costly in archetype-based ECS compared to sparse-set. At least in theory, I have not yet benchmarked Ark against Overseer.

1 Like