Crystal Space is an Open Source and portable 3D engine framework which runs on GNU/Linux, Windows, and MacOS/X and is written in C++. Here is a list of some of the most important features:
Support for OpenGL rendering with CG and ARB shaders (both vertex and fragment shaders). Some standard shader features that are included are specular, parallax, bumpmapping, glow, ...
Support for lightmaps or hardware based lighting and shadows.
Powerful terrain engine with support for dynamic LOD, material blending, and scattering.
Skeletal animation system using the CAL3D library or with built-in system.
Physics using ODE library.
3D sound system.
Scripting system with support for Python, Perl, and Java. You can access the full Crystal Space API from those languages.
Powerful plugin system allowing you to make your own extensions to Crystal Space.
Optional visibility culling system based on coverage maps.
Optionally you can use portals to subdivide your maps. Portals can also 'warp space'. By using this trick you can (for example) make mirrors.
Optional software renderer.
Built-in window system based on CEGUI.
Very good support for Blender through the Blender2crystal exporter plugin: http://b2cs.delcorp.org
Good support for 3dsMax.
Lots of other features like procedural textures, font system, various image loaders (jpg, png, mng, tga, ...), XML format, virtual file system, input/output console, ...
Crystal Entity Layer is an Open Source 3D game framework which sits on top of Crystal Space and adds the notion of 'game entities' or 'game objects'. Here is a list of some of the most important features:
Support for dynamic entities with property classes that you can add and remove on the fly. That means the characteristics of an entity can change at runtime at any time you want.
First/third person camera with smooth transitions.
Zone manager to load/unload parts of the world as the player moves.
Quest manager to handle story elements in the game. Quests can be big story elements (like player has to get item X from some NPC and then has to put that item in some magic chest after which some door will magically open) but also smaller things (like push a button to open a door).
Very good support for Python scripting.
CEL can be driven totally with XML. There is an XML scripting language and all features (entities, property classes, ...) can be controlled from within XML files. You can write a full 3D game using only XML.
Various other things like projectiles, timers, spawn points, area triggers, physics, movement system, property system, sound, damage system, ...
Based on Crystal Space and Crystal Entity Layer there is also the CelStart project (http://www.crystalspace3d.org/tikiwiki/tiki-index.php?page=CelStart) which is a scripting game environment. In this environment you can easily make games using only XML or Python scripting. There is no need for even a C++ compiler as this is a binary release.
The 1.0rc1 release of Crystal Space and Crystal Entity Layer is not the full 1.0 release yet. This is a release candidate. That means we are fairly confident it is working fine (we tested it a lot) but we would appreciate your input in case things do go wrong (see the url for reporting bugs below).
You can download the source of Crystal Space and Crystal Entity Layer at the following location (when the full 1.0 is released we will also make binary SDK packages available):
If you have a problem with Crystal Space or Crystal Entity Layer you can do one of the following:
Report the bug at: http://trac.crystalspace3d.org/trac/CS/newticket (for CS) or http://trac.crystalspace3d.org/trac/cel/newticket (for CEL).
Post a message on the forums at: http://community.crystalspace3d.org/forum/index.php
Ask a question on the IRC channel #CrystalSpace (on the irc.freenode.net network)
Post a message on the mailing lists at: http://sourceforge.net/mail/?group_id=649