lilith3d

 

Engine

Documentation

Notes

Welcome to the Lilith Tutorials!

There are sequence of tutorials, each building on the previous, that walks you through the basics of the Lilith3D engine. By the end, you should be well on your way to creating your own game.

The tutorials describe the creation of a world where you can shape the land, summon meteors, place buildings, and fly the camera around.

Before Starting the Tutorials

Get the engine building. See the build section.

The tutorial are all in the "tutorial" sub-directory of lilith. Only Visual Studio 2005 project files are provided: everything is contained in "tutorial.sln". The files are numbered to correspond with the documentation: tutorial1.cpp, tutorial2.cpp, etc. (There is also a tutorialMaster.cpp: ignore this, it generates the others and is hard to read.)

Using the Tutorials

Each tutorial starts with bullet points covered in the tutorial, and these are repeated in the table of contents below.

Headings that start with the "Tutorial #" syntax, for example:

Tutorial 1: Initialize SDL and L3Init

Correspond to a comment in the code. You can look in the code at tutorial1.cpp, find that comment, and it corresponds to the heading and text in tutorial1.html. The HTML tutorials focus on explaining the code, not code snippets, so it is good to go through the tutorials with your .cpp editor open and handy.

Contents

Tutorial 1: Turn It On

  • Boiler plate code
  • Required assets
  • Memory model of the high level pieces

Tutorial 2: Moving Around

  • World Definition
  • Loading terrains
  • Camera rotation and moving
  • Rendering modes

Tutorial 3: Meteor Strike!

  • Particle systems
  • Changing world heights
  • Publisher / Listener
  • More on mouse input
  • Other intersection functions

Tutorial 4: Weather

  • Weather

Tutorial 5: Decals

  • Decal usage
  • Introduction to the Mesh class

Tutorial 6: Sequences and TerrainMorphs

  • Sequence model
  • Terrain Morphing

Tutorial 7: Models and Meshes

  • Creating models
  • Mesh
  • StaticMesh
  • Reacting to Terrain Changes