Toolbox

Contents

Introduction

Crystal Space is primarily a Software Development Kit, a middleware for developing cross-platform 3D applications (there is a strong focus on games in particular, but Crystal Space itself is not limited to that).

Features

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’ (roughly, 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.

Platforms

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. Also see the list of reportedly working platforms.

Languages

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.

Documentation

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.

Companions

Crystal Entity Layer

CelStart

CELstart is a CEL-based environment for self-contained game packages, allowing easy game creation via scripting, thereby easing the development process for those less proficient with C++. The package nature of games also make distribution easy. Read more.

Support

Check the Community page for the various options of community-provided support.

Contributing

If you want to contribute something, be it a new feature, a bug fix or just a bug report, see the Contributing page.