You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Michał Majczak edited this page Oct 31, 2018
·
3 revisions
Welcome to the PolyEngine wiki!
PolyEngine is a C++ based, enthusiasts driven, multiplatform, low dependancy, 2D/3D games engine.
Engine architecture is centered around very strict, modified version of the ECS pattern (Entity - Component - System), where:
Entities represent independant objects. They are just component containers and are not visible outside the very core of the engine.
Components represent entity state of given gameplay system and have no engine/gameplay logic. There are entity components and scene components.
Scene contains all entities with their components and scene components that are currently simulated by the engine.
Phases are essentially stateless systems, represented as classes that have OnUpdate method, which recives scene as an argument. Order in which phases are executed is explicit and unmutable. For example: rendering system iterates all mesh components in a given world and renders them to scene.
All communication between systems is possible only through components state. There is no event mechanism anywhere in engine. This restriction, although very strict, provides a way to keep system logic decoupled.