Crystal Space
Crystal Space is a free 3D game toolkit. It can be used for a
variety of 3D visualization tasks. Many people will probably be
interested in using Crystal Space as the basis of a 3D game, for which
it is well suited.
It is divided in a main package containing an engine, a
development package containing development related utilities, a
documentation
package containing extended HTML information.
It can optionally use OpenGL, SDL, X11and SVGALib. It can also
use assembler routines using NASM and MMX extensions.
Features include:
- Generic
- Highly platform independent with good platform
abstraction
- Modularized using a lightweight component framework,
SCF, based upon the COM model
- Self contained so that many modules requires no or few
external dependencies
- Written in standard C++ using very few non*standard
extensions
- Comprehensive and competent
- Contains modules for 2d and 3d graphics, sound,
collision detection and dynamics via ODE and bullet as well as support
modules for filesystem abstraction, xml loading etc
- Graphics subsystem:
- Generic renderer abstraction with main
implementation being OpenGL based
- Supports hardware accelerated rendering on all
supported platforms and cards from all well known vendors
- OpenGL renderer uses acceleration techniques such
as vertex buffers in AGP or VRAM and asyncronious uploads
- Shader centric design with shaders defined in xml
markup and shader programs implemented using Cg, assembly language or
fixed function operations
- Complicated shaders can be constructed using a
meta syntax as composed by simpler modules that gets combined on load
- Library of common shaders such as normal mapping,
parallax (virtual displacement) mapping and hardware skinning
- Contains a software renderer with scaled down
features for platforms without OpenGL and/or debugging
- Mesh objects:
- Plugin based mesh object system
- Generic triangle based mesh with support for frame
and bone based animation
- Terrain mesh with fast block based LOD system
- Configurable and extensible particle system mesh
- General system for static LOD on all types of
meshes
- Bone based animation mesh using the cal3d library
- Collision detection and dynamics:
- Provides bindings for ODE and bullet dynamics
systems
- Automatic setup of collision detection meshes and
syncronization of position and orientation of meshes
- Simplified collision detection when you don't need
the full dynamics simulation
- Sound system:
- 2D and 3D sound rendering via DirectSound, Alsa,
OSS and CoreAudio
- Provides both one*time playing of effects and
streaming playing in the background for music
- Other:
- Filesystem abstraction layer, VFS, that handles
both physical
files on disk and files within ZIP files, giving virtual layout
independent from platform and physical layout
- Abstracted configuration layer with support for
settings in configuration file, system dependent storage such as the
registry and command line
- Compatible
- Custom model and scene file format with exporters for
Blender and 3d studio max and model importers for common file formats
such as 3ds and md2
- Supports all common texture file formats including
dds, jpg, png as well as some more exotic ones such as mng (animated
texture format)
- Sound loaders for wav and ogg formats
- All subsystems easily extendable for new file formats

Return
to Games Home Page | Return
to Game Engines Home Page
Last Updated Saturday, May 19 2012 @ 10:25 AM EDT |