This document provides an overview of the architecture diagrams of the server-sided ECS.
Component Hierarchy
The Component Hierarchy
diagram illustrates the various components used in the game, including general, specific, player-specific, monster-specific, and missile-specific components. Each component defines attributes and behaviors for different entities in the game.
Key Components:
- General Components: Common attributes like
Position
, Velocity
, and Collider
.
- Specific Components: Entity-specific properties such as
Weapon
, Health
, and PowerUp
.
- Enums: Enumerations for types, behaviors, teams, and loot drops.

ECS Architecture
The ECS Architecture
diagram outlines the Entity-Component-System (ECS) structure used for managing game entities and logic. It includes the following:
- Registry: Handles entities and their components, also contains the logic that processes components to implement gameplay features.
- Entity: Unique identifiers containing components.
- Components: Data units associated with entities.
- Component Container: Data structure to hold a
Component
type for all entities.
- Zipper & IndexedZipper: Data iterators to help iterate over several
Component Containers

Game Manager
The Game Manager
diagram contains:
- Game: Runs the game systems according to the deltaTime and receives events from the systems.
- EventDispatcher: Dispatches the events to the
Game
.
- Queue: Queues the events received by the server on a thread safe queue.
- GameMessage: Data structure that holds the event's information.

Systems
The Systems
diagram contains:
- Systems: Setup functions for components and systems.
- **____System**: *Blank*System is a system that runs every game update, checking on various components to modify the state of the game (e.g. movement, shooting, collision...)