Skip to content
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.
Clone this wiki locally