Type System

  • Each entity is of a specific entity type (see below for common entity types)
    • Example: Player Hanack is a player
  • Each entity inherits and overwrites attributes of the entity type
    • Example: Player Hanack is a player, therefore there is an attribute frags because all _player_s have an attribute named frags
  • An entity type can have a parent entity type
    • Example: projectiles are specialized particles
    • See the type hierarchy below
  • Each entity type has an entity renderer
    • Example: Quad Damage Renderer renders entities of type quad damage
    • Entity renderers are implemented in C++

Entity Types

  • players
  • mapmodels
  • positional trigger (often mode specific)
    • flag
    • base
    • teleporter
    • teleport destination
    • ...
  • pickups (modifies player state or game state)
    • ammo
    • armor
    • health
    • health boost
    • quad damage
    • extra bomb
    • increase bomb damage
    • ...
  • weapons
    • chainsaw
    • pistol
    • chaingun
    • rocket launcher
    • grenade launcher (= projectile emitter + geometry collision particle modifier)
    • rifle
    • bomb launcher
    • ...
  • particles
    • visual effects
      • steam
      • fire
      • flare
      • explosion
        • volumetric expansion of explosions (also using the densitiy attributes)
    • projectiles
      • grenade
      • rocket
      • fog grenade
      • shot line
    • decals
  • particle emitter
  • particle modifier