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.

回到首頁
 

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.

To Document Top