Skip to content

ECS Overview

Lorenzo Rossi edited this page Oct 7, 2020 · 1 revision

This page assumes you already know enough of the architecture to know what I'm talking about, that means you know what are Systems, Components and Resources.
If you don't, then please read this

Systems

Legend:

  • 💾 Saved
  • 📫 Syncronized

Common components:

  • position 💾 📫
  • transform 💾 📫
  • name 💾 📫
  • note 💾 📫

Background System

Manages background images, their display and their visibility (meaning what pixels have been by players).

Components: background_image 💾 📫

Grid System

Manages grid drawing

Resources: grid 💾 📫

Interaction System

Manages collision between components (more or less) and queries about them (what did I touch?).

Components: interaction

Light System

Renders lights, using visibility polygons

Components: light 💾 📫
Resources: light_settings 💾 📫, local_light_settings 💾

Network System

Actually there are two, one for serialization (HostNetworkSystem) and the other for deserialization (ClientNetworkSystem).
They manage synchronization of the entities and components that request it.

Pin System

Manages pin creation and rendering

Components: pin 💾 📫

Player System

Manages and notifies pins and backgrounds about player visibility.

Components: player 💾 📫, player_visible

Text System

Manages the text layer, a common place for all of the text rendering.

Visibility System

Updates visibility polygon of all of the entities that have a visibility component.

Components: visibility, visibility_blocker

Visibility Aware System

Uses the visibility polygon to notify every entity with a visibility_aware component about who is able to see it.

Components: visibility_aware

Wall System

Manages the creation and rendering of walls.

Components: wall 💾 📫