This document is about: QUANTUM 2

Systems and Components

Available in the Gaming Circle and Industries Circle


This section covers all main Systems and Components logic present in this game.


This system inherits from SystemSignalsOnly, so it doesn't have any Update logic. It is used to generate the gameplay Map at the start of the simulation, then it injects the new map into frame DB and activates it.


GameplaySystem and GameplayComponent is responsible for the main gameplay loop (WaitingForPlayer, MatchStart, Active, Finished). It is also responsible for checking the winning condition, and for tracking the players’ positions.

GameplaySettings defines a few important configurations, such as:

  • The Player count;
  • The time to wait for missing players;
  • The match start time;
  • The names and prefabs for missing players, which are used after the wait for players times out.


It is used to destroy any agent below the pre-defined Y position.


This system inherits from SystemSignalsOnly and is used only to listen to OnTriggerEnter/Exit signals.
It supports both dynamic and static triggers. Both triggers types share the same behaviors defined by the TriggerBehavior asset. Different behaviors can be implemented by inheriting from the TriggerBehavior class. This sample contains two implementations:

  • SpeedModifier;
  • GadgetPickup.


Represents a connected user. A Player can be a real person or AI (not implemented in this sample).

This keeps track of disabled static triggers for the player (for example, pickups are static triggers which are disabled when picked up by a player).


Gameplay representation of a player. An Agent has multiple states:

  • Alive;
  • Respawning;
  • Invulnerable;
  • Finished.


Movement is responsible for moving the Agent based on its MovementDesires, which are created based on the input, but could also be created from an AI system (not implemented in this sample).

Entities always move forward. It supports jumping with variable height. Its speed can be modified from external sources by applying modifiers (gadgets, speed changing platforms).


Gadgets are picked up from GadgetPickups (added in the map by MapGenerator). It can have different behaviors:

  • Projectile : spawns a projectile (or multiple);
  • SpeedUp : temporary Movement speed change.


Physics based projectiles. Kills Agents upon contact. It can have different behaviors:

  • Guided;
  • Gravity;
  • Limited lifetime.
Back to top