Crystal Space is primarily a Software Development Kit, a middleware for developing 3D applications. There is a strong focus on games in particular, but Crystal Space itself is not limited to that. Notable features include strong cross-platform support, numerous utilities, and bindings for multiple languages.
Development-relevant features include
- basic helper classes such as e.g. containers,
- abstraction of platform-specific details, often requiring none to very little platform-specific code in client applications,
- a plugin system, for extensibility, customizability and versatibility, and even
- a custom build system, that can also be used for client applications and provides conveniences such as generation of Visual C++ projects.
While the “heart” of Crystal Space are the ‘engine’ and ‘renderer’, essentially providing management of what should be rendered, and actual rendering, there are also helper plugins providing and abstracting file input/output, audio output, physics, input from joysticks, and GUIs.
However, it does not provide any game-specific logic, such as entity management. For this look at Crystal Space's companion project CEL.
Crystal Space is a cross-platform SDK and is known to work on all current major platforms - Windows, Linux, MacOS/X operating systems and x86, AMD64, PowerPC processors.
Crystal Space itself is written in C++ - this being Crystal Space's “native” language it's also recommended when all features should be exhausted to their fullest. Nevertheless, bindings are also available for Python (currently the best supported), Perl and Java.
Developer-relevant documentation can be found in the User's Manual. It contains information on how to build Crystal Space from source (“Building and Installing”), tutorials, HOWTOs, descriptions of SDK components (all in “Using Crystal Space”) as well as internal details (“Internal Project Structure”). The section “Working with Engine Content”, while being aimed at artists, also contains technicalities that are relevant to developers that also deal with artwork.
A reference of the entire Crystal Space API, the Public API Reference, is available as well.
The Documentation page contains these documentations for other Crystal Space versions, as well as online and offline variants.
Frequently asked questions are answered in the FAQ.
You can find programming and other tutorials in the Tutorials section.
- Jorrit Tyberghein, Eric Sunshine, Frank Richter, Mike Gist, Christian Van Brussel, Developing video games and virtual environments with the Crystal Space engine, DEnG-VE workshop, EICS conference, 2010: Image:CrystalSpace-DEnG-VE.pdf
Crystal Entity Layer
|CEL (Crystal Entity Layer) is a companion to Crystal Space, adding entity management and thus providing a game engine. Read more.|
|CELstart is a CEL-based environment for self-contained game packages, allowing easy game creation via scripting, thereby making the development process easier for those less proficient with C++. The package nature of games also make distribution simple. Read more.|
|Crystal Core is the Crystal Space demo game. It is an single player shooter/quest based game using CELstart technology. Read more.|
Check the Community page for the various options of community-provided support.
If you want to contribute something, be it a new feature, a bug fix or just a bug report, see the Contributing page.