# Tutorial

This tutorial will show you how to perform some basic and advanced tasks with the Rico3D Game Engine and the adventure framework that is set on top of it.

## Rico3D Game Engine

How to...

1. Create the basic structure of a new 3d application
2. Add a skybox
3. Add a ground plane
4. Add a heightmap terrain
5. Add different types of OpenGL lights
6. Add (animated) meshes from 3d model files
7. Perform rotations, scalings and translations on every kind of mesh
8. Assign an environment map (sphere map or cube map) to a mesh
9. Use the mesh container to render a lot of meshes (with shadows)
10. Add a first person camera control
11. Process user defined mouse and keyboard actions
12. Check collisions between 3d models
13. Check if the mouse is located over a 3d model

## Adventure Framework

### The ".room" XML file for rooms

1. Specification of the basic structure of an empty room
2. Specification of lights in a room file
3. Specification of camera perspectives in a room file
4. Specification of a ground plane
5. Specification of (animated) 3d model props
6. Specification of items
7. Specification of Non-Player-Characters (NPCs)
8. Specification of virtual hotspots
9. Specification of trigger areas
10. Specification of a room's entry points

### The ".con" conversation file

1. Example for a typical conversation file

### The ".bsh" BeanShell script file for a room

1. Basic script file methods for a room with an item, an NPC, a virtual hotspot and two triggers

### The ".chp" XML file for a chapter

1. Example of an usual chapter file

## The Rico Engine World Editor

### Video-Tutorials

The videos have been recorded with CamStudio and were encoded with the "Microsoft MPEG-4 Video Codec V2". Try to install that codec on your machine, if you can't play the video files.

1. Add a ground plane and a basic light to the scene
2. Import a prop from a 3D model file
3. Import an NPC from a 3D model file
4. Import an item from a 3D model file
5. Insert hotspots
6. Insert triggers
7. Manipulate the path grid
8. Create and assign script file
9. Save room with relative file pathes
10. Add different camera perspectives
11. Create and save a recorded camera flight