View Source ECSx (ECSx v0.3.0)
ECSx is an Entity-Component-System (ECS) framework for Elixir.
In ECS:
- Every game object is an Entity, represented by a unique ID.
- The data which comprises an Entity is split among many Components.
- Game logic is split into Systems, which update the Components every server tick.
Under the hood, ECSx uses Erlang Term Storage (ETS) to store active Components in memory. A single GenServer manages the ETS tables to ensure strict serializability and customize the run order for Systems.