-
Notifications
You must be signed in to change notification settings - Fork 36
Home
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.