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

5.1 Developing a Crystal Space Application

Crystal Space is a package of components and libraries which can all be useful for creating computer games. Although some of the packages are intended more for 3D gaming this is not as such a restriction of the package. Components as the sound driver function just as well in a 2D gaming environment and the networking component can even be used in a text oriented environment. This highlights one of the important characteristics of Crystal Space: the components and libraries are more or less independent of each other. If you don't want networking, then just don't use the networking drivers. If you don't want scripting then don't include that. All packages are designed to be functional on their own or with a minimal number of other packages. There are some dependencies of course. For example, the 3D Engine requires a 3D Rasterizer to display its output. On the other hand, you could very well use the 3D Rasterizer without the 3D Engine.

Although there is a high level of independence, there is also a high level of integration. The components and libraries were also designed to be used together and as such offer a flexible scheme of integration.

If you are interested in developing a program using Crystal Space, then it is important to understand that Crystal Space is not a single monolithic library, but instead consists of several libraries and plug-in modules. This manual uses the term module for both libraries and plug-ins when the distinction between the two is not important.

A plug-in module is similar to a library, but has some advantages over a library. All plug-ins can be accessed in a common fashion. They have a very clear interface, and they can provide this interface even if they are extracted to a DLL. So they are the better solution as long as speed is not the dictator of all decisions as in the math library (access to plug-in functions uses virtual methods). The main difference between the interface of a library and a plug-in is that a library may use SCF, the Shared Class Facility (see section 6.4 Shared Class Facility (SCF)), and C++ classes; plug-ins may only use SCF.

For further information about modules and plug-in drivers, see the sections on Libraries (see section 6. Libraries) and plug-in modules (see section 7. Plug-In Modules and Drivers).

Now that you have learned some basics about the Crystal Space environment, you can try writing your first program.

5.1.1 Basic Crystal Space Concepts  
5.1.2 Minimum Application Requirements  
5.1.3 Compiling the Application  


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

This document was generated using texi2html