Tutorial guide

The tutorials are designed to stand on their own, but working through them in the order that they appear is recommended. Specifically, the render loop tutorial goes through the basics of projects and setting up a compiler options XML file. Thereafter the tutorials only include a list of steps for setting up the project. (Both IntelliDoc and the compiler use the options XML file. Ginjo-Builder looks for an XML file that has the same name as the top level tree node in the project tree. The XML file specifies the startup function as well as other compiler options. A project cannot be run without an XML file.) The presented code files and media files are installed along with Ginjo-Builder and can be accessed from the 'Project' window that is shown when the editor starts:

The tutorials are deliberately very short and concentrate on accomplishing a single task. For example, the lights tutorial covers the various types of lighting, but lighting is not used in any other tutorial. As such you will regularly see the following type of code for setting the Lighting material flag of a model or material:

Warrior.SetMaterialFlag(gb.video.MaterialFlag.Lighting, false)

The cameras tutorial introduces the FPS and Maya cameras, which handle user input internally. The Maya camera is used in subsequent tutorials to allow for basic input response: It is controlled by holding down a mouse button while moving the mouse. Hold down the right mouse button to move sideways/up/down; hold down the left mouse button to rotate; hold down the center mouse button (or mouse wheel) and move your mouse to zoom in and out. User input and event handling is covered in the mouse & keyboard tutorial. Combining it with the frame rate independent updates introduced in the movement/animators tutorial is straight forward.

Note that error checking is omitted for the most part in order to reduce code length. However, in production code you should check the return values of functions.

Render loop
Describes how to create a project and compiler options XML file. Describes how to initialize the Irrlicht 3D engine, load a model, add a camera and create a render loop.
Mouse & Keyboard
Shows how to create an event handler and process input events.
Shows how to import .NET libraries and play sound using System.Windows.Media.MediaPlayer
Describes how to use cameras and introduces the built-in FPS and Maya cameras. Shows how to resize the window and handle aspect ratio changes. Camera's field of view and view frustum are also introduced.
Shows how to use global illumination (ambient lighting) and how to modify the lighting properties of materials. Introduces the three types of lighting in Irrlicht: Video.LightType.Point, Video.LightType.Directional and Video.LightType.Spot
Terrain (Heightmap)
Shows how to create a terrain based on a heightmap using GB.Scene.TerrainSceneNode and how to apply textures to the terrain.
Manual terrain
Shows how to apply and scale a material to scene nodes created using GB.Scene.SceneManager.GeometryCreator
A Skybox/Skydome creates the illusion of a large game world by creating a cuboid or sphere background around the camera.
Shows how to create frame rate independent movement, as well as automating movement using animators.
SetFrameLoop animation
Shows how to control a model's built-in animations using the GB.Scene.AnimatedMeshSceneNode.SetFrameLoop function.
Skeletal animation
Shows the basics of moving a model's built-in skeleton.
Particle systems
Particle systems are used to replicate the seemingly random nature of "fuzzy" phenomena such as explosions, rain, smoke or fire.
Ring of Fire
Builds on the particle systems tutorial and creates a ring of fire around a model.