Entity: An entity represents a general-purpose object. In a game engine context, for example, every coarse game object is represented as an entity. Usually, it only consists of a unique id. Implementations typically use a plain integer for this.[1]
Component: A component labels an entity as possessing a particular aspect, and holds the data needed to model that aspect. For example, every game object that can take damage might have a Health component associated with its entity. Implementations typically use structs, classes, or associative arrays.[1]
System: A system is a process which acts on all entities with the desired components. For example a physics system may query for entities having mass, velocity and position components, and iterate over the results doing physics calculations on the sets of components for each entity.
The behavior of an entity can be changed at runtime by systems that add, remove or modify components. This eliminates the ambiguity problems of deep and wide inheritance hierarchies often found in Object Oriented Programming techniques that are difficult to understand, maintain, and extend. Common ECS approaches are highly compatible with, and are often combined with, data-oriented design techniques. Data for all instances of a component are commonly stored together in physical memory, enabling efficient memory access for systems which operate over many entities.
en.wikipedia.org | Entity component system - Wikipedia
Filed under:
Related Notes
- Direct manipulation of data - something like sketch pad - where you...from youtube.com
- the smaller the interface, is the more useful it is [[See also [dee...from The Go Programming Language
- errors are values The Go Programming Language | Gopherfest 2015 |...from The Go Programming Language
- don't communicate by sharing memory share memory by communicat...from The Go Programming Language
- General notes: > Instead of writing code, directly manipulate da...from youtube.com
- Pike's rules 1 and 2 restate Tony Hoare's famous maxim &quo...from University of Texas in Austin
- Windows 95 was 30MB. Today we have web pages heavier than that! Win...from Nikita Prokopov
- When we build systems that avoid coordinating, we end up building c...from marcbrooker@gmail.com (Marc Brooker)