Jan 26, 2013
Windows, Linux, Mac OS X, FreeBSD, Other
Languages Written In:
Not reviewed yet
Castle Game Engine is an open-source cross-platform 3D 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 formats, like Collada and 3DS 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.
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 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).
Engine examples show a simple terrain generator.
Simple custom physics with gravity. Octress are used for collision detection.
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.
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).
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.
Screen-space effects can be defined in GLSL. Screen-space ambient occlusion is available.
|License Name||Price in $US||Source Code Included?|
|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!