Castle Game Engine

1e33eba3-aa7c-433d-aa0b-0ad7185e2a5d

Website:
http://castle-engine.sour...

Developer:
Michalis Kamburelis

Launched:
Jan 26, 2013

Status:
Active

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

Languages Written In:
Delphi, Pascal

Languages Supported:
Delphi, Pascal

Graphics APIs:
OpenGL

Rating:
Not reviewed yet

Editor:
3755296d77415d71e61d25953beb2b99 kambi

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.

Supported Features

Lighting

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

Shadows

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.

Texturing

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.

Shaders

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.

Meshes

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.

Animation

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).

Terrain

Engine examples show a simple terrain generator.

Physics

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.

Sound

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.

Video

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).

UI

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

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

Input

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.

Licensing

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 Jan 02, 2014 at 01:25