Entity-Component-System shall describe the way whole product is aimed to be used.
Entity
Entity shall represent an identifiable object within the system.
Entity shall have interface to check/modify components associated with object.
Component
Component shall represent a known collection of data. For example position can be represented by a set of coordinates that collectively can be called Position Component.
There shall be a configurable number of components.
Built-in components include but are not limited to:
- Timer processing
- Entity Lifetime control
- Position
- Render-related information
- Physics-related information
Users shall be able to add their own components and use those in user-developed systems.
System
System shall represent an isolated processing unit that works on entities that have required Components with them.
There shall be a configurable number of systems.
Build-in systems include but are not limited to:
- Time flow control
- Timers
- Entity Lifetime
- Render (w/ Unicorn adapter)
- Physics (w/ Pegasus adapter)
- Sound (w/ Tulpar adapter)
Users shall be able to develop and integrate their own systems.
Miscellaneous
It is recommended that entities exist only in relation to some collection of entities (that can be referred to as a World of Entities). Such approach allows encapsulating data storage and data processing of Entity-related functionality inside the World object and Entity becomes simply an ID for the object.
Entity-Component-System shall describe the way whole product is aimed to be used.
Entity
Entity shall represent an identifiable object within the system.
Entity shall have interface to check/modify components associated with object.
Component
Component shall represent a known collection of data. For example position can be represented by a set of coordinates that collectively can be called
Position Component.There shall be a configurable number of components.
Built-in components include but are not limited to:
Users shall be able to add their own components and use those in user-developed systems.
System
System shall represent an isolated processing unit that works on entities that have required Components with them.
There shall be a configurable number of systems.
Build-in systems include but are not limited to:
Users shall be able to develop and integrate their own systems.
Miscellaneous
It is recommended that entities exist only in relation to some collection of entities (that can be referred to as a
World of Entities). Such approach allows encapsulating data storage and data processing of Entity-related functionality inside theWorldobject andEntitybecomes simply an ID for the object.