Skip to content

nfCore Systems

Michał Witanowski edited this page Nov 19, 2015 · 4 revisions

Systems

System is an object that performs specific actions on entities with appropriate components attached. It uses Entity Manager to iterate through and access component tuples. There are following systems specified:

TransformSystems

Responsible for updating entity transform (position and orientation) and managing parent-child structure.

Used components: Transform.

PhysicsSystems

Responsible for physics simulation (thanks to Bullet Physics) and generation of collision events.

Used components: Transform, Body, Collidable, ForceField.

RendererSystems

Responsible for handling all renderable components and communicating with high level renderer.

Used components: Transform, Mesh, Light, Camera, Body.

EventSystems (Not implemented)

Responsible for handling, filtering and dispatching events.

Supported events:

  • BodyComponent collision,
  • TriggerComponent activation (an entity with TransformComponent enters/leaves, BodyComponent's shape collides with trigger area),
  • Scene Segment switch.

SoundSystems (Not implemented)

Responsible for audio playback. Implements internal in-game mixer:

  • inputs can be: sound stream, SoundListenerComponent,
  • outputs can be: speakers, SoundSource,
  • simple effects: filter/equalizer, delay, reverb, etc.

Simulates sound propagation (occlusion, Doppler effect, etc.).

Used components: Transform, SoundSource, SoundListener, Body.

ParticleSystems (Not implemented)

Responsible for spawning and managing all particles. Also, prepares particle geometry for rendering.

Used components: Transform, Emitter.

SegmentSystems (Not implemented)

Responsible for scene segments management:

  • monitoring camera positions,
  • loading new segments / unloading not needed segments,
  • translating all entities in case of scene segment switch.

Used components: Transform, Camera, SceneSegment.

Clone this wiki locally