This document is about: QUANTUM 2
SWITCH TO

Systems and Components


Available in the Gaming Circle and Industries Circle
Circle

Overview

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

MapGenerator

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.

Gameplay

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.

Water

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

Triggers

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.

Player

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

Agent

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

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

Movement

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

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.

Projectile

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

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