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 1.13 GNU Library General Public License. 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:
-
Windows (Windows 9x/NT/ME/2000/XP)
-
Unix (Linux, FreeBSD, etc.)
-
MacOS/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.
-
Geometrical utility library with stuff like 2D and 3D vectors,
matrices, transforms, quaternions, kdtree, axis aligned and oriented bounding
box routines, rectangle subdivision, .... See section 6.4 Geometry Library (
csGeom
).
-
General utility library with stuff like templated arrays, smart pointer,
hashmap, object registry, plugin manager, radix sort, bit array, optimized
allocators, strings, .... See section 6.2 Utility Library (
csUtil
).
-
System library for making abstraction of system dependent stuff like
threads, getting system environment, unicode support, endian support,
processor capabilities, .... See section 6.1 System Library (
csSys
).
-
Higher level tool library containing things like some example procedural
textures (plasma, fire, and water), full screen effects, collider support,
texture generation tools, ....
-
Graphics library with simple utilities to do mipmapping, color quantization,
calculation of color gradients, simple bumpmapping, ....
-
2D and 3D polygons
-
Shared Class Facility SCF. See section 6.3 Shared Class Facility (SCF), See section 5.1 Developing a Crystal Space Application.
-
Smart Pointers. See section 5.9.1 Correctly Using Smart Pointers.
-
Flexible plug-in system. See section 6.3 Shared Class Facility (SCF), See section 5.9.19 Create Your Own Plugin.
-
Virtual file system and transparent support for ZIP files. See section 7.2 Virtual File System (VFS).
-
Configuration files. See section 3.2 Configuration File.
-
Command-line parsing. See section 5.1 Developing a Crystal Space Application.
-
Event system.
-
Full screen effects (fading, whiteout, etc).
-
Procedural textures. See section 7.3.1 Procedural Texture System, See section 7.6.6 Texture Mapping.
-
Level of Detail. See section 7.6.11 Level of Detail.
-
Animated 3D models (3D sprites). See section 7.11 Animation.
-
2D animations.
-
MD3 to Crystal Space convertor. See section 5.6
md32spr
Tutorial.
-
CAL3D to Crystal Space exporter. See section 5.7
caltocs
Tutorial.
-
Crystal Space native windowing system. See section 7.13 Alternate Windowing System (AWS), See section 6.5 Crystal Space Windowing System (CSWS).
-
2D canvases (OpenGL, DirectDraw, X11, CoreGraphics, Cocoa, null, memory, line)
-
3D renderers (OpenGL, software, null, line). See section 7.3 Graphics Drivers.
-
Playing AVI streams (RLE, DivX 4, OpenDivX) on a texture.
-
Various image loaders (BMP, GIF, JPG, PNG, SGI,
TGA, WAL).
-
Portals and sectors. See section 7.6.2 Portal Engine.
-
Lighting (static, pseudo-dynamic, dynamic, halos, shadows, radiosity).
See section 7.6.3 Lighting, See section 5.9.8 Pseudo-dynamic Lights.
-
Bezier curves.
-
Visibility culling based on kd-tree with coverage buffers (Dynavis).
See section 7.6.7 Visibility Culling In Detail.
-
Multiple cameras. See section 5.9.6 Camera Movement.
-
Textures, materials, and shaders. See section 7.6.6 Texture Mapping.
-
Optional isometric engine.
-
Sound drivers (CoreAudio, OSS, and WaveOut). See section 7.4 Sound Drivers.
-
Sound renderers (software, DirectSound 3D, EAX, aRts).
See section 7.4 Sound Drivers.
-
Sound loaders (WAV, AU, IFF, AIFF, MOD, MP3,
OGG). See section 7.4 Sound Drivers.
-
Thing and other mesh objects. See section 7.9 Mesh Object Plug-In System, See section 7.9.18 Thing Mesh Object,
See section 5.9.5 Creating a Thing Mesh.
-
2D and 3D sprites. See section 7.9.5 Sprite3D Mesh Object, See section 7.9.4 Sprite2D Mesh Object.
-
Terrain engines. See section 7.9.17 Terrain Mesh Object.
-
Metaballs. See section 7.9.19 Metaball Mesh Object.
-
Particle systems (fire, explosions, rain, snow, spirals, fountain).
See section 7.9.9 Particle Systems in General.
-
Haze mesh (a bit like volumetric light). See section 7.9.16 Haze Mesh Object.
-
Pull-down console that you can integrate in your own games.
See section 3.2.5 Console Configuration.
-
Network sockets. See section 7.5 Network Drivers.
-
Collision detection (using RAPID or OPCODE).
See section 5.9.2 Doing Collision Detection.
-
Powerful sequence manager to control movement, animation and other
features in a world. See section 7.6.12 Sequence Manager.
-
Bitmapped and vector fonts (freefont). See section 5.9.21 Using a Custom Font.
-
Map file loader and converters. See section 7.8 Format of Map File (XML),
See section 5.4 Simple Tutorial 3: Map Loading, See section 7.8.5 Old Format of Map File.
-
Scripting engine (python, perl, ...). See section 7.10 Scripting Languages.
-
Skeletal animation. See section 7.9.5 Sprite3D Mesh Object.
-
Object movement. See section 5.9.4 Mesh Movement.
-
Movie Recording plugin. See section 5.9.22 Recording Movies.
-
Debugging system
This document was generated using
texi2html