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 ๐Ÿ’พ ๐Ÿ“ซ

Clone this wiki locally