benefits - junkdog/artemis-odb GitHub Wiki
Benefits of ECS/odb
- Composition over inheritance
- Mix-and match individual parts.
- Avoids long chain of dependence.
- Data driven
- less engineers required.
- Runtime composition.
- Separation between data and logic.
- Suits serialization and editors..
- ECS paradigm helps:
- Brevity
- Readability
- Clear definition of purpose.
- Extensibility
- Maintainability
- Performance (ODB)
- Optimal use of CPU cache.
- Various tricks for better performance.
- Cheap to find all entities matching a certain composition.
- Other benefits
- Modular: helps testing, debugging, profiling.
- Lifecycle management.
- Agile; suits iterative development.
- Emergent scope (indie games, game jams!)
Disadvantages of ECS
- Big paradigm shift
- Easy to learn, hard to master.
- Analysis paralysis!
- Architecture requires more thought.
- Not always clear which problems it can and cannot solve.
- Tricky to pick the right level of abstraction and encapsulation for your design.
- Risk of chasing your tail a lot.
- Engine dependence
- Hard to decouple ECS from systems to get pure unit tests,
- Framework gotcha’s.
- Level of abstraction
- Data driven approach can obscure flow of execution.
- Couples tightly with lifecycle.