Units described in this section of the manual are optional, and independent from the rest of the engine. They implement a common logic typical to 3D games.

The units described here are in the CGE source code subdirectory src/game/, they are clearly separated from the rest of CGE code. Using these units is optional. You can implement a perfect 3D game without them (you only need to use scenes, and the scene manager already gives you flexible camera and navigation features) and have full flexibility of a general 3D engine. Using these units makes sense if your game concepts fit within typical concepts of the 3D first-person shooter games, described below.

The features provided are:

  • CastlePlayer unit: Single player management. Player has hit points, may collect items, may use weapons (short-range, immediate shooting, missile shooting), may be swimming, may have footsteps sound depending on the terrain.

  • CastleCreatures unit: Creatures with various AI (artificial intelligence). AI ranges from smart walk-attack-flee, to a trivial "missile" (fly along a direction, explode on hit) AI.

  • CastleItems unit: Items that are pickable, may lie on the level, may be in player's inventory, have icons.

  • CastleLevels unit: Levels allow to load a 3D scene with placeholders to define creatures and items, to define water volume, to define move limit for player etc.

  • And utilities for the above units: CastleResources, CastleGameNotifications, CastleDebugTransform,