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,

TODO: In the future these units will be deprecated, as described in our future plans. Reason: Most of these features can be achieved easily (and with more flexibility) by using TCastleScene directly. The most prominent reason to keep using these units now is that CastleCreatures gives you "ready creatures AI (artificial intelligence)". Otherwise, consider using TCastleScene directly.