Skip to content
Daan van Yperen edited this page May 26, 2019 · 1 revision

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.
Clone this wiki locally