Castle Game Engine

1e33eba3 aa7c 433d aa0b 0ad7185e2a5d


Michalis Kamburelis

Jan 26, 2013


Supported Platforms:
Windows, Linux, Mac OS X, FreeBSD, iOS, Browser-based, Google Android, Other

Languages Written In:
Delphi, Pascal

Languages Supported:
Delphi, Pascal

Graphics APIs:

Not reviewed yet

00000000000000000000000000000000 kambi

Castle Game Engine is an open-source cross-platform 3D/2D game engine for Object Pascal (FPC/Lazarus). It uses a popular X3D as the main 3D model format, which means that 3D data can be created in any 3D modeling software, and it can be animated, interactive, scripted and so on. Many other 3D/2D formats, like Collada, 3DS, Spine, STL are also supported. Rendering is done using OpenGL, with many eye-candy features like shadows, bump mapping, mirrors, shaders, screen effects. 3D sound is well integrated and trivial to use (using OpenAL under the hood). The engine has a nice object-oriented API to easily make 3D games with creatures, items, levels, players and so on, everything can also be easily extended to any 3D or 2D game types.

Supported Features


Standard OpenGL lighting as well as per-pixel lighting using GLSL.


Shadow maps and shadow volumes work out of the box. Engine examples show also other experimental approaches to shadows, like Precalculated Radiance Transfer and Shadow Fields.


All common features, like multi-texturing and all popular image formats are supported. DDS format is also supported for explicit mipmaps, cubemaps, 3D textures, S3TC compression. Bump mapping, including steep parallax bump mapping with self-shadowing. Mirrors using cube environment mapping and other methods.


Rendering using shaders (GLSL) for everything is available and tested on many GPUs. Custom GLSL shaders may be defined in VRML/X3D. Extensions to VRML/X3D for compositing GLSL shaders allow to create reusable effects in GLSL.


Many 3D formats supported: X3D, VRML, Collada, MD3, 3DS, more. Both reading and writing of X3D is possible, converting other 3D models to X3D is also implemented.

Scene Management

Scene manager with custom viewports. Extensible system of 3D objects, with creatures (with AI), items, player, inventory working out of the box.


Everything can be animated, as standard in VRML/X3D. Interpolation may be done at runtime, or it can be precalculated (to render animated objects as fast as static ones, at the cost of increased memory use). Animations from other formats are also supported, like MD3 and Spine JSON.


Engine examples show a simple terrain generator.


Simple custom physics with gravity. Octress are used for collision detection.

Artificial Intelligence

Creature intelligence works out-of-the-box. Simple walk-attack state intelligence, which can be configured in data files to be more cowardly/offensive, short-range/long-range and so on. It’s possible to extend this intelligence, or define a completely different approach, by overriding appropriate virtual methods. Moving can use sectors/waypoints, to improve moving around in 3D levels.


3D sound using OpenAL. Easy to use: for basic usage, like assigning sounds to creatures, items, footsteps and such, not a single line of code is necessary. Fully controllable from code too, and from VRML/X3D scripting.


Modern OpenGL renderer using shaders and VBOs. Common rendering optimizations are available, like frustum culling. Hardware occlusion query can be easily turned on.

Tools & Editors

3D data can be created in any 3D modeling software (like Blender, 3ds Max and many others), since the engine reads a popular VRML/X3D format (as well as Collada and others). We include a customized Blender exporter too. The engine includes a “build tool” to easily recompile games for desktops, Android, iOS, and web plugin.


OpenGL context can be placed on a Lazarus form, which allows to integrate with all normal GUI toolkits. A TCastleWindow class is also provided, which specializes in creating windows for games where everything is inside a single OpenGL context. Various 2D controls displayed on OpenGL are available, like buttons, on-screen menus and such. Support for fonts, images, movies is included.


Scripting is possible inside VRML/X3D, using a custom CastleScript language.


Besides normal key and mouse (including mouse look) controls, also 3D mouse devices are supported.

Special Effects

Screen-space effects can be defined in GLSL. Screen-space ambient occlusion is available.


License Name Price in $US Source Code Included?
LGPL Free Yes
The core engine is available under an "LGPL with static linking exception", which is basically a relaxed LGPL that allows for static linking with closed-source programs.


This engine hasn't been reviewed yet. Be the first!

Write a Review

Suggest Edits

Last edited Jun 24, 2017 at 15:00