[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 1.5 Feature List

The first feature to mention here is that Crystal Space is an Open Source project (or a Free Software project, depending on your religion) that is freely available under the GNU Lesser General Public License (GNU LGPL). See section Licenses. This means a number of things for developers, but perhaps most important is that any program you write may freely link to the Crystal Space libraries.

The second important feature of Crystal Space is that it is written to run under a wide variety of hardware and software platforms. As of this writing Crystal Space has been known to run on the following systems. Note that if a system is listed here it does not necessarily mean that it is 100% supported:

- Microsoft® Windows (9x/NT/ME/2000/XP)
- Unix® like Operating Systems (GNU Linux®, FreeBSD®, etc.)
- Apple® Mac OS® X

Here are some of just some of Crystal Space's features in no particular order. Whenever there is some documentation on the subject this is marked after the feature. The most useful documentation comes first.

- Geometric utility library with handy classes such as 2D and 3D vectors, matrices, transforms, quaternions, kdtree, axis aligned and oriented bounding box routines, rectangle subdivision, etc. See section Geometry Library (`csGeom`).
- General utility library with stuff like templated arrays, smart pointers, hash maps, object registry, plugin manager, radix sort, bit array, optimized allocators, strings, command-line parsing, configuration files, and more. See section Utility Library (`csUtil`). See section Basics and Overview. See section Configuration File.
- Higher level tool library containing things like some example procedural textures (plasma, fire, and water), full screen effects, collider support, texture generation tools, etc.
- Graphics utility library with simple tools to compute mipmaps, color quantization, calculation of color gradients, and more.
- Shared Class Facility SCF allowing for proper decoupling of interface and implementation and also allows for dynamically loadable modules It provides a flexible plug-in system which is used extensively by Crystal Space itself but also allows third-party creation of plugins. See section Shared Class Facility (SCF). See section Shared Class Facility (SCF). See section Basics and Overview. See section Create Your Own Plugin.
- Virtual file system and transparent support for ZIP files. This allows cross-platform access to game data files. See section Virtual File System (VFS).
- Flexible and extensible event system.
- Full screen effects (fading, whiteout, etc).
- Level of Detail LOD. See section Level of Detail.
- Various types of mesh objects: bezier curves, polygonal lightmapped objects, triangle meshes, haze mesh (bit like volumetric light), .... See section Mesh Object Plug-In System. See section Thing Mesh Object, See section Creating a Thing Mesh. See section Genmesh Mesh Object. See section Creating a Genmesh Mesh.
- Animated 3D models (3D sprites) using frame based animation. See section Animating your Objects. See section Sprite3D Mesh Object.
- Animated 3D models using a skeletal animation system with good support for hardware skinning.
- Animated Cal3D models using skeletal based animation using the ``sprcal3d'` plugin. See section SpriteCal3D Mesh Object.
- 2D animations.
- Quake MD3 and MDL to Crystal Space convertor. See section `md32spr` Tutorial. Additionally Crystal Space can read MD2 and 3DS models directly.
- Crystal Space native windowing system(s). See section Alternate Windowing System (AWS).
- Cross-platform support for hardware rendering via OpenGL and software rendering as well as a special "null" renderer for applications like game servers. See section The Rendering System.
- Supports various common image formats (BMP, DDS, GIF, JPG, MNG, PNG, TGA).
- Portals and sectors which allow for flexible world creation. See section Portal Engine.
- Visibility culling based on kd-tree with coverage buffers (Dynavis). See section Visibility Culling In Detail.
- Lighting: static, pseudo-dynamic, dynamic, halos, shadows, stencil shadows. See section Lighting. See section Pseudo-dynamic Lights.
- Multiple cameras. See section Camera Movement.
- Powerful material support. Shaders and textures can be assigned arbitrarily to materials allowing great flexibility. Shaders support CG, ARB, and ``fixed function'` language. See section Texture Mapping.
- Procedural textures. See section Procedural Texture System. See section Texture Mapping.
- Cross-platform support for sound rendering. Supports WAV and OGG sounds. See section Sound Plugins.
- Terrain engine with support for texture splatting (blending multiple materials on a terrain) and Level Of Detail LOD. See section Terrain Mesh Object.
- Particle system to make fire, explosions, rain, snow, fountains, and much more. See section Particle Systems in General.
- Collision detection (using OPCODE) or full physics using the ODE or BULLET external libraries. See section Basic Collision Detection. See section Physics using ODE.
- Powerful sequence manager to control movement, animation and other features in a world. See section Sequence Manager.
- Built-in support for TrueType fonts. See section Using a Custom Font.
- Unicode text output.
- XML-based map format. See section Format of Map File (XML), See section Simple Tutorial 3: Map Loading, Collision Detection. See section Old Format of Map File.
- Scripting bindings (Python, Perl, Java). See section Scripting Languages.
- Plugin for integrated movie recording. See section Recording Movies.
- Pull-down console that you can integrate in your own games. See section Console Configuration.
- Debugging systems.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ]

This document was generated using texi2html 1.76.