An entity component system (ECS) model is a software architectural pattern way of organizing a program that is oriented around and is easily extensible often used in games.

Rather than an object oriented model which couples state and methods that act on the state, an ECS has an entity (a unique ID), components (data that belongs to at most one entity), and systems (functions that operate on components). This has the advantage of being easy to optimize (systems operate on contiguous data that can parallelized) and can model complex objects without common pitfalls of OOP (e.g. diamond problem of inheritance).

See also:

  • Software Architectural Pattern

    A way of organizing code and abstracting concepts to build a software system often with the goals of robustness, reliability, extensibility, performance, and correctness.