Available in the Gaming / Industries Circle
quantum | v2 switch to V1  

Systems and Components


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

Back To Top


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.

Back To Top


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.

Back To Top


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

Back To Top


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.

Back To Top


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).

Back To Top


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

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

Back To Top


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).

Back To Top


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.

Back To Top


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

  • Guided;
  • Gravity;
  • Limited lifetime.

To Document Top