This document is about: QUANTUM 2
SWITCH TO

Components

There are 2 types of entity components:

  1. A Quantum entity component is defined in the DSL and dictates behavior of a specific entity in the Quantum simulation - for example Movement.
  2. A Unity entity component is inherited from EntityComponent and defines behavior of a specific entity in Unity - for example EntityComponentMovement.

From a game designer perspective, an entity prototype is made of a game object with a specific set of EntityComponent components. Many EntityComponent components imply the existence of a Quantum component in simulation (EntityComponentAgent => Agent). Though some components are quantum components, this means not all necessarily do.

The FPS Framework supports these variants:

  1. Run-time only Quantum component: adding/removing the Quantum component is driven by the Quantum simulation. This Quantum component doesn’t have corresponding Unity component counterpart and is usually marked with [ExcludeFromPrototype] in DSL. For example: Actor.
  2. Quantum component with an optional Unity component counterpart: adding the Quantum component can be implied at design-time by adding a Unity component or at runtime from Quantum simulation. For example: SpawnPoint - EntityComponentSpawnPoint.
  3. Quantum component with a required Unity component counterpart: adding a Quantum component is conditional on adding Unity component at design-time; usually there are required properties to be set, the run-time addition of a Quantum component can result in undefined behavior in either Unity or Quantum simulation. For example: MovingObject - EntityComponentMovingObject.
  4. Only Unity component: there is no Quantum component counterpart. This component is just for Unity visualization purposes. For example: EntityComponentCharacter.
Back to top