Units described here are deprecated.

  • Most of their features can be achieved easily (and with much more flexibility) by using viewport and scenes directly. See our plans for detailed reasoning.

  • In particular, using viewport and scenes directly allows to design your levels using our visual editor, and benefit from all the features we have (composing level from a number of scenes and primitives, assigning skybox) and will have (placing lights, editing materials) in the CGE editor.

  • The most prominent reason to keep still using these units is that CastleCreatures gives you "ready creatures AI (artificial intelligence)". We don't have an equivalent of if yet in non-deprecated units... but we work on it. We will expose flexible creature AI as TCastleBehavior descendant class called TCastleMoveAttack.

Units described in this section implement a common logic typical to 3D games.

Using these units is optional. You can implement a perfect 3D game without them (just use viewport and scenes, the viewport 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.