Sun Shadow Games
News
Current Projects
Programs
Join Us
Screen Shots
Links
Crystal Space Tutorial Info
Crystal Space Tutorial

This Crystal Space Tutorial represents an effort by the CS community to make the engine's learning curve a bit less steep. Anyone can contribute, and individuals who feel that they have legitimate topics to add to the list are encouraged to make suggestions for future additions to the tutorial. As best I understand the law, the copyright goes without saying, literally.

The following topics are to be included in the Crystal Space Tutorial. Topics in white do not have an author yet, whereas topics in green are presently being written.Topics underlined in blue are written, and the underlined text is the link to that section. If you have finished writing a topic or would like to commit yourself to a topic, e-mail me.



0. Readying CS for use
0.1 Making sure you can compile CS
0.2 Making sure you're editing the correct file
0.3 Sprite introduction
0.4 Re-scaling the sprite
0.5 Changing the sprite's starting position
0.6 Adding another sprite
0.7 Changing the sprite's texture
...
1. Set up a sector
1.1 Setting up wall textures
1.2 Setting up lights on textures (Q:for mesh textures (walls) and sprite textures its done the same? A: i dont know)
1.3 Connecting two sectors with a portal (portal technique)
1.4 Loading a sector
1.5 Setting wall colliders
1.6 Setting player (camera) colliders
1.7 Using CollisionPair struct to keep players on sectors (sliding on wall, maybe triggering actions for player sprite like for Player climbing on wall?
1.8 Freelook with the mouse
1.9 Loading from a config file
1.10 Split screen mode
...
2. Setting up sprites
2.1 Creating a sprite
2.2 Loading a sprite
2.3 Moving a sprite in a sector
2.4 Parenting sprites
2.5 Using keyboard input to move a sprite
2.6 Simple third person sprite movement
2.7 Moving a sprite between sectors (i.e: through portals)
2.8 Animating sprites
2.9 Setting up colliders for sprites
2.10 Using the colliders for sprites
2.11 Finding distance between two sprites (Pythagorean theorum)
2.12 Dynamic lighting on sprites and scene polygons (important for 3.3 skies, especially in a dynamic day/night level)
2.13 Halos about lights
2.14 Lens flares
...
3. Advanced stuff about textures
3.1 animating textures
3.2 procedural textures (i.e: rendering to a texture)
3.3 skies
...
4. non-portal techniques on CS (are there any?)
...
5. BSP-trees on CS (how CS handle/use them?)
...
6. All about terrains
...
7. Using AWS for setting dialogs
...
8. miscellaneous
8.1 2D objects in 3D space (polygon soup?)
8.2 2D objects on top of the screen (Pixmaps)
8.3 Fog
8.4 Setting up particle systems
8.5 creating a moving box about the player for rain/snow to make it look like the entire world is experiencing rain (at least that's my best guess at how to make rain/snow work)
...
9. All about Physics
9.1 Gravity
9.2 taking physics laws to a sprite
...
10. Sound & music
...
11. Networking
...
12. Scripting


Example Programs

Along with tutorials, it can also be of value to see other peoples' code and copy it. The first resource I recommend is the set of example programs included with Crystal Space, but these are [at present, "this is"] also [a] useful example program[s].

This is an example of loading a map from file, loading sprites from file, moving sprites in the third person, and some collision detection (collision detection presently does not allow you to walk through walls).