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

Systems and Components

Overview

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

Back To Top
 

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.

Back To Top
 

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.

Back To Top
 

Water

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

Back To Top
 

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.

Back To Top
 

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

Back To Top
 

Agent

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

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

Back To Top
 

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

Back To Top
 

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.

Back To Top
 

Projectile

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

  • Guided;
  • Gravity;
  • Limited lifetime.

To Document Top