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.
Copyright Michalis Kamburelis and other Castle Game Engine developers.
Thank you to Paweł Wojciechowicz from Cat-astrophe Games for various graphics.
This documentation is also open-source and you can even redistribute it on open-source terms.