Login using Name and Password at the top of the page to be able to download all the files.

Suggested video viewing order

Download OpenGL Game Engine Video Tutorials

This section will teach you to create a first person shooter game engine from scratch using OpenGL and C++. Topics covered include window management, game timing, scene management, 3D model loading, and graphical user interfaces. You can purchase the complete series in the store. A simplified flow chart of the game engine is available here.
148 Files45 hr 56 min
0

Introduction

Free
0
0.7
1 min
A brief description of the Game Development series of videos. If you are going to be using Visual C++ 2005/2008 Express, you should download VMK 45 to see the differences between compilers that you will encounter.
1

Creating the FPS Game Engine project

Free
0
7.9
18 min
This video shows how to create the C++ project using Microsoft Visual Studio 2003. The WinMain is created in this video.
2

Error Handler class

Free
0
8.6
17 min
A class is created to handle all errors that may be generated in the game engine. All errors can be written to a file and displayed to the screen.
3a

GameOGL class setup

Free
0
5.6
14 min
This class is used to handle all OpenGL code in the game engine. This video is the first of a 3 part series. This video introduces the functions and variables which the class will be using.
3b

GameOGL class code Part 1/2

Free
0
6.7
21 min
This class is used to handle all OpenGL code in the game engine. This video is the second of a 3 part series. This video covers the first half of the functions contained in the OpenGL class.
3c

GameOGL class code Part 2/2

Free
0
15.1
20 min
This class is used to handle all OpenGL code in the game engine. This video is the last of a 3 part series. This video covers the second half of the functions contained in the OpenGL class.
4

Creating a Vertex and Triangle Class

Free
0
3.1
7 min
Short tutorial showing how to create a vertex and triangle class. These two classes will be used heavily by the engine to render objects on the screen.
5

Scene class

Free
0
23.3
25 min
The scene class is used to lay the foundation down for the scene graph that we will be making. The scene class is used to store all the objects in the game world.
6

Scene Construction

Free
0
10.5
15 min
Added color information to the Triangle class from VMK 4 and made modifications to the engine. Created a simple 3D scene to be used in the next few VMK's.
7

Vector3 class

Free
0
5.6
12 min
3D vector class is created in this video using inline function calls. This class will be used heavily in the game engine.
8

Camera class

Free
0
7.5
21 min
The camera class enables you to view the 3D scene from different positions.
9

Keyboard Control

Free
0
6.6
15 min
This VMK shows you how to add keyboard controls to your scene so that you can move around in the 3D world.
10

Mouse Control

Free
0
7.7
14 min
This VMK shows you how to handle the mouse input to allow you to look around in the 3D world.
11

Player class

Free
0
6.3
13 min
Create the Player class by inheriting from the Camera class. With the Player class you will be able to do things you could not do with just the Camera. Mouse invert capability is also added.
12

Adding Jump Ability

Free
0
5.8
12 min
This video shows how to add the ability to jump to the player class. Jumping is a key press type event.
13

Adding Crouch Ability

Free
0
5.6
13 min
This video shows how to add the ability to crouch to the player class. Crouching is a key press-and-hold type event.
14

Creating a House Object

Free
0
10.9
22 min
A design of a house is illustrated and the steps are taken to incorporate the house into the 3D scene. This video prepares you for handling complex objects in 3D.
15

Transparency

Free
0
16.4
32 min
The ColorOGL structure is re-written to include an alpha component used to make things appear transparent. All render functions are moved out of the GameOGL class and the depth buffer is also discussed.
16a

Library Projects Part 1/2

Free
0
13.2
20 min
The game engine project code is cleaned up in this VMK and broken up into libraries. The 3 new library projects that are created are MathLib, ObjectLib and SceneLib. Libraries make the code more modular so that it can be reused. This VMK has been split into two parts, this is the first section.
16b

Library Projects Part 2/2

Free
0
16.5
20 min
The game engine project code is cleaned up in this VMK and broken up into libraries. The 3 new library projects that are created are MathLib, ObjectLib and SceneLib. Libraries make the code more modular so that it can be reused. This VMK has been split into two parts, this is the second section
17

Flat Grid class

Free
0
23.0
23 min
This class is used to create a flat surface in 3D that can have any size and resolution.
18a

NodeLight class

Free
0
5.2
18 min
The NodeLight class is used to hold all the attributes of a light source. This video is the first of a 3 part series.
18b

Three Inherited NodeLight classes

Free
0
7.2
19 min
The NodeLightPoint, NodeLightDirectional and NodeLightSpot classes are created in this VMK. This video is the second of a 3 part series.
18c

Testing Light Sources Part 1/2

Free
0
15.9
24 min
The Scene class is modified to allow us to render all light sources placed into a scene. The Directional light class is corrected and the Spot light class is also modified. This video is the last of a 4 part series. VMK 18C & 18D are actually one VMK split into two parts, this is the first part.
18d

Testing Light Sources Part 2/2

Free
0
15.5
15 min
The Scene class is modified to allow us to render all light sources placed into a scene. The Directional light class is corrected and the Spot light class is also modified. This video is the last of a 4 part series. VMK 18C & 18D are actually one VMK split into two parts, this is the second part.
19a

NodeTexture class

Free
0
22.7
32 min
The NodeTexture class is created and a function to load a TGA file into memory is created. This video is the first of a 3 part series. The TGA file spec can be downloaded here.
19b

Adding NodeTexture to Scene

Free
0
18.5
34 min
The Scene class is modified to take into consideration textures that may be loaded into the game engine. This video is the second of a 3 part series.
19c

Texture Mapping Part 1/3

Free
0
15.4
15 min
In this VMK I show you how to modify the Triangle, FlatGrid and House class so that you can apply textures on each of these objects. The Vertex2 class is also created. This VMK has been split up into 3 parts.
19d

Texture Mapping Part 2/3

Free
0
25.5
9 min
In this VMK I show you how to modify the Triangle, FlatGrid and House class so that you can apply textures on each of these objects. The Vertex2 class is also created. This VMK has been split up into 3 parts.
19e

Texture Mapping Part 3/3

Free
0
21.3
8 min
In this VMK I show you how to modify the Triangle, FlatGrid and House class so that you can apply textures on each of these objects. The Vertex2 class is also created. This VMK has been split up into 3 parts.
19f

Corrections

Free
0
11.8
11 min
I found a bug in the Scene class code when using the std::map. This video shows you how to correct the bug by replacing std::map with std::vector.
20a

Font class

20.1 MB
20.1
20.1
28 min
The Font class is created which allows you to print text to the screen. This video is the first of a 3 part series.
You must login to
download this file
20b

Mono Spaced Font Part 1/2

17.7 MB
17.7
17.7
15 min
I show you how to use the Font class created in the previous VMK to display mono spaced font on the screen. A number of bug fixes in the engine were also corrected.
You must login to
download this file
20c

Mono Spaced Font Part 2/2

17.9 MB
17.9
17.9
10 min
I show you how to use the Font class created in the previous VMK to display mono spaced font on the screen. A number of bug fixes in the engine were also corrected.
You must login to
download this file
20d

Proportional Font Part 1/3

35.8 MB
35.8
35.8
11 min
Modifications are made to the Font class to allow proportional font to be used in the game engine. Monospaced font is adjusted to correct for dangling characters. Tips on using fonts are shown at the end of the VMK.
You must login to
download this file
20e

Proportional Font Part 2/3

23.9 MB
23.9
23.9
9 min
Modifications are made to the Font class to allow proportional font to be used in the game engine. Monospaced font is adjusted to correct for dangling characters. Tips on using fonts are shown at the end of the VMK.
You must login to
download this file
20f

Proportional Font Part 3/3

33.0 MB
33.0
33.0
11 min
Modifications are made to the Font class to allow proportional font to be used in the game engine. Monospaced font is adjusted to correct for dangling characters. Tips on using fonts are shown at the end of the VMK. Also check out Font Image Generator to simplify the process of creating the needed TGA files.
You must login to
download this file
21a

Scene Graph Introduction

19.7 MB
19.7
19.7
22 min
This video introduces the concepts used in the scene graph that we will be developing in the following videos. The existing Node classes are renamed to prepare for the new Node types.
You must login to
download this file
21b

Adjust Player Class

21.2 MB
21.2
21.2
19 min
The Player class is moved out of the GameOGL class and put into the Scene class.
You must login to
download this file
21c

Node Class

12.6 MB
12.6
12.6
17 min
The Node class is created in this video. All scene graph nodes will inherit from this class. The pointer structure used to link all the nodes together is also explained.
You must login to
download this file
21d

Node Transform Class

14.5 MB
14.5
14.5
28 min
Building off the Node class, the Node Transform class is created and the special math formula to getting the scene graph working is shown.
You must login to
download this file
21e

Shape and Geometry Classes

10.1 MB
10.1
10.1
16 min
Building off the Node class, the bare bones of the Node Shape class is created followed by the Geometry class. More details will be added to the Node Shape class later after we get items rendered on the screen using the new scene graph system.
You must login to
download this file
21f

Two Geometries

18.1 MB
18.1
18.1
17 min
The Flat Grid class is converted to use the new scene graph system, and the GeometryBox class is also created.
You must login to
download this file
21g

Rendering the Scene Graph Part 1/4

21.4 MB
21.4
21.4
15 min
The Scene class is modified to allow us to use the scene graph that we have been developing. A box and flat grid is rendered to the screen and I show you how to control items dynamically in the scene graph.
You must login to
download this file
21h

Rendering the Scene Graph Part 2/4

23.2 MB
23.2
23.2
15 min
The Scene class is modified to allow us to use the scene graph that we have been developing. A box and flat grid is rendered to the screen and I show you how to control items dynamically in the scene graph.
You must login to
download this file
21i

Rendering the Scene Graph Part 3/4

27.1 MB
27.1
27.1
15 min
The Scene class is modified to allow us to use the scene graph that we have been developing. A box and flat grid is rendered to the screen and I show you how to control items dynamically in the scene graph.
You must login to
download this file
21j

Rendering the Scene Graph Part 4/4

13.8 MB
13.8
13.8
9 min
The Scene class is modified to allow us to use the scene graph that we have been developing. A box and flat grid is rendered to the screen and I show you how to control items dynamically in the scene graph.
You must login to
download this file
21k

Corrections

9.0 MB
9.0
9.0
4 min
This video shows how to correct two bugs the I found. One bug is in the NodeTransform class, and the other bug is in the Node class.
You must login to
download this file
22a

Headlight Part 1/3

29.7 MB
29.7
29.7
15 min
A headlight is added to the player so that as they move in the scene, a light source follows their position and points in the direction that they look. This VMK has been split into three, this VMK is the first part.
You must login to
download this file
22b

Headlight Part 2/3

29.9 MB
29.9
29.9
15 min
A headlight is added to the player so that as they move in the scene, a light source follows their position and points in the direction that they look. This VMK has been split into three, this VMK is the second part.
You must login to
download this file
22c

Headlight Part 3/3

28.5 MB
28.5
28.5
12 min
A headlight is added to the player so that as they move in the scene, a light source follows their position and points in the direction that they look. This VMK has been split into three, this VMK is the last part.
You must login to
download this file
23a

Material Class Part 1/2

19.6 MB
19.6
19.6
10 min
The material class is developed in this video. A visual explanation of the different parameters within the material class is also shown.
You must login to
download this file
23b

Material Class Part 2/2

28.0 MB
28.0
28.0
8 min
The material class is developed in this video. A visual explanation of the different parameters within the material class is also shown.
You must login to
download this file
23c

Using Materials Part 1/6

26.8 MB
26.8
26.8
10 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the first section.
You must login to
download this file
23d

Using Materials Part 2/6

21.6 MB
21.6
21.6
5 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the second section.
You must login to
download this file
23e

Using Materials Part 3/6

36.9 MB
36.9
36.9
10 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the third section.
You must login to
download this file
23f

Using Materials Part 4/6

22.6 MB
22.6
22.6
5 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the fourth section.
You must login to
download this file
23g

Using Materials Part 5/6

25.1 MB
25.1
25.1
10 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the fifth section.
You must login to
download this file
23h

Using Materials Part 6/6

23.1 MB
23.1
23.1
4 min
The scene class is modified to support materials allowing us to change the color and appearance of objects in the scene. This VMK has been split into six parts, this is the last section.
You must login to
download this file
24a

Texturing Box Geometry Part 1/3

18.7 MB
18.7
18.7
15 min
Textures are re-introduced into the scene graph. The previously developed Texture class is updated and I show you how to apply a texture to the box geometry. This VMK has been split into three parts, this is the first section.
You must login to
download this file
24b

Texturing Box Geometry Part 2/3

21.4 MB
21.4
21.4
10 min
The texture mapping on the box geometry is modified so that we can have four images on the different faces of the box. This VMK has been split into three parts, this is the third section.
You must login to
download this file
24c

Texturing Box Geometry Part 3/3

27.4 MB
27.4
27.4
6 min
The texture mapping on the box geometry is modified so that we can have four images on the different faces of the box. This VMK has been split into three parts, this is the last section.
You must login to
download this file
24d

Texture Quality & Mip Map Part 1/2

21.7 MB
21.7
21.7
15 min
A quality factor is added to the texture class so that you can optimize your images for either performance or quality. Automatic mip mapping is also added.
You must login to
download this file
24e

Texture Quality & Mip Map Part 2/2

21.3 MB
21.3
21.3
9 min
A quality factor is added to the texture class so that you can optimize your images for either performance or quality. Automatic mip mapping is also added.
You must login to
download this file
24f

Textures and Alpha Channel

26.3 MB
26.3
26.3
11 min
Support for the alpha channel in texture files is re-established in this video. Now you can make doors with windows and chain link fences all out of one textured object with ease.
You must login to
download this file
25a

Texture Transforms Part 1/2

29.3 MB
29.3
29.3
20 min
The Texture Transform class is created in the video. With this new class you can animate textures by moving, rotating and scaling them on top of geometry. This VMK has been split into two parts, this VMK is the first half.
You must login to
download this file
25b

Texture Transforms Part 2/2

29.7 MB
29.7
29.7
13 min
The Texture Transform class is created in the video. With this new class you can animate textures by moving, rotating and scaling them on top of geometry. This VMK has been split into two parts, this VMK is the second half.
You must login to
download this file
26

Visibility

24.6 MB
24.6
24.6
15 min
In this video I show you how to modify the scene graph structure so that you can easily make things invisible/visible by changing one parameter.
You must login to
download this file
27a

Two Render Passes Part 1/2

19.5 MB
19.5
19.5
20 min
The problem with objects disappearing when rendering transparencies is fixed in this video by introducing two render passes. This VMK has been split into two parts, this VMK is the first half.
You must login to
download this file
27b

Two Render Passes Part 2/2

22.4 MB
22.4
22.4
25 min
The problem with objects disappearing when rendering transparencies is fixed in this video by introducing two render passes. This VMK has been split into two parts, this VMK is the second half.
You must login to
download this file
28

Infinite Plane Class

15.6 MB
15.6
15.6
24 min
This video shows you how to create a class to represent a 3D plane mathematically. The plane can be defined by a normal and a point, or by passing three points to the constructor. To get the plane class working, a number of modifications to the Vector3 class had to be made.
You must login to
download this file
29a

Cylinder Class Part 1/2

15.1 MB
15.1
15.1
25 min
A new geometry is added to the game engine (The Cylinder). In this two part video I show you how to create all the vertices and normals that are used to define a cylinder having anywhere between 3 to 20 sides. This VMK has been split into two parts, this VMK is the first half.
You must login to
download this file
29b

Cylinder Class Part 2/2

16.2 MB
16.2
16.2
21 min
A new geometry is added to the game engine (The Cylinder). In this two part video I show you how to create all the vertices and normals that are used to define a cylinder having anywhere between 3 to 20 sides. This VMK has been split into two parts, this VMK is the second half.
You must login to
download this file
29c

Smooth Shaded Cylinder

18.7 MB
18.7
18.7
21 min
I show you how to calculate normals for the edges of the cylinder rather than the faces of the cylinder. The result gives you a smoother looking cylinder.
You must login to
download this file
29d

Texturing the Cylinder

26.5 MB
26.5
26.5
25 min
Texture coordinates are added to the cylinder class so that you can apply any texture you like.
You must login to
download this file
29e

Rolling Cylinder

16.5 MB
16.5
16.5
17 min
I show you how to make cylinders roll on flat surfaces in this VMK. I also present a challenge to you in this video. The last part of the VMK describes and fixes a problem with GL_BLEND the was found in the code.
You must login to
download this file
30

Node Light Class

24.8 MB
24.8
24.8
29 min
This new class lets you attached light sources to transform nodes in the scenegraph. This ability allows you to easily control the position & orientation of the light source when it is attached to an object in the scene. ie Headlights of a moving car.
You must login to
download this file
31a

Introduction to Parsing Text Files

16.1 MB
16.1
16.1
26 min
In this VMK I outline how the text parser will work and what are the keywords associated with the parser. In the next video we begin to program the code.
You must login to
download this file
31b

Parser Project Part 1/3

15.2 MB
15.2
15.2
25 min
The *.lvl file parser is created in this VMK. A lot of string/text manipulation is used to identify keywords and options in the file and the results are displayed on the screen. This is part 1 of 3.
You must login to
download this file
31c

Parser Project Part 2/3

18.4 MB
18.4
18.4
20 min
The *.lvl file parser is created in this VMK. A lot of string/text manipulation is used to identify keywords and options in the file and the results are displayed on the screen. This is part 2 of 3.
You must login to
download this file
31d

Parser Project Part 3/3

19.9 MB
19.9
19.9
22 min
The *.lvl file parser is created in this VMK. A lot of string/text manipulation is used to identify keywords and options in the file and the results are displayed on the screen. This is part 3 of 3.
You must login to
download this file
31e

Porting Parser into Engine Part 1/4

26.6 MB
26.6
26.6
35 min
This long VMK (almost 2hrs) goes through the task of parsing the *.lvl file and creating all the required elements in the scenegraph. Due to the length of the VMK, it has been broken up into 4 pieces.
You must login to
download this file
31f

Porting Parser into Engine Part 2/4

24.1 MB
24.1
24.1
25 min
Still parsing the *.lvl file and creating all the required elements in the scenegraph.
You must login to
download this file
31g

Porting Parser into Engine Part 3/4

23.2 MB
23.2
23.2
25 min
The finishing touches are done to the *.lvl parser in this VMK and code clean up begins.
You must login to
download this file
31h

Porting Parser into Engine Part 4/4

24.1 MB
24.1
24.1
26 min
A bunch of bug fixes are shown in this VMK that have been collected over the period of the last few VMK's. Make sure you watch this video before continuing on to the next VMK.
You must login to
download this file
32a

Caligari File Format Spec Part 1/2

16.7 MB
16.7
16.7
25 min
I will be creating a parser to read in 3D files saved in the Caligari binary file format (*.COB or *.SCN). This video explains the Caligari file format which will be read in by the parser.
You must login to
download this file
32b

Caligari File Format Spec Part 2/2

17.8 MB
17.8
17.8
18 min
I will be creating a parser to read in 3D files saved in the Caligari binary file format (*.COB or *.SCN). This video explains the Caligari file format which will be read in by the parser.
You must login to
download this file
32c

Caligari Parser Project Part 1/3

21.8 MB
21.8
21.8
30 min
In this VMK I show you how to parse the PolH, Mat1 and ShBx chunks contained in Caligari COB and SCN files. Data that we are interested in is saved into variables and displayed to the screen.
You must login to
download this file
32d

Caligari Parser Project Part 2/3

22.0 MB
22.0
22.0
25 min
In this VMK I show you how to parse the PolH, Mat1 and ShBx chunks contained in Caligari COB and SCN files. Data that we are interested in is saved into variables and displayed to the screen.
You must login to
download this file
32e

Caligari Parser Project Part 3/3

20.1 MB
20.1
20.1
22 min
In this VMK I show you how to parse the PolH, Mat1 and ShBx chunks contained in Caligari COB and SCN files. Data that we are interested in is saved into variables and displayed to the screen.
You must login to
download this file
32f

Caligari File Class Part 1/2

10.8 MB
10.8
10.8
20 min
A new class is created inside the game engine that is used to handle all the work to be done to read in Caligari files into memory.
You must login to
download this file
32g

Caligari File Class Part 2/2

18.3 MB
18.3
18.3
20 min
A new class is created inside the game engine that is used to handle all the work to be done to read in Caligari files into memory.
You must login to
download this file
32h

CaligariMat1 Class

5.9 MB
5.9
5.9
10 min
I show you how to implement the CaligariMat1 class used to store all the Material chunk data in memory.
You must login to
download this file
32i

CaligariShBx Class

16.3 MB
16.3
16.3
27 min
I show you how to implement the CaligariShBx class used to store all the Shader chunk data in memory. I move back and forth between the parser project finished in VMK32E so make sure you have this program running before viewing this VMK.
You must login to
download this file
32j

CaligariPolH Class

15.6 MB
15.6
15.6
24 min
I show you how to implement the CaligariPolH class used to store all the Polygon chunk data in memory. We also need a new Vector2 and GeometryCompiled class so I show you how to add these as well.
You must login to
download this file
32k

Rendering Caligari Files Part 1/3

22.7 MB
22.7
22.7
30 min
I show you how to render a Caligari file in this video using the GeometryCompiled class.
You must login to
download this file
32l

Rendering Caligari Files Part 2/3

18.3 MB
18.3
18.3
25 min
I show you how to render a Caligari file in this video using the GeometryCompiled class.
You must login to
download this file
32m

Rendering Caligari Files Part 3/3

20.9 MB
20.9
20.9
16 min
I show you how to render a Caligari file in this video using the GeometryCompiled class.
You must login to
download this file
32n

Smooth Normals Part 1/2

12.9 MB
12.9
12.9
15 min
This VMK shows you how to calculate the normals for all loaded Caligari files so that curved surfaces look smooth. The Vector3 class is also updated.
You must login to
download this file
32o

Smooth Normals Part 2/2

13.5 MB
13.5
13.5
13 min
This VMK shows you how to calculate the normals for all loaded Caligari files so that curved surfaces look smooth. The Vector3 class is also updated.
You must login to
download this file
33a

Scenegraph Logger Part 1/2

17.8 MB
17.8
17.8
20 min
This VMK shows you how to modify the Font, Material, Light, Texture, TextureTransform, Geometry, GeometryBox, GeometryCylinder, GeometryFlatGrid, GeometryCompiled, Node, NodeShape, NodeLight and NodeTransform classes so that all the scenegraph data can be output to the log file for viewing.
You must login to
download this file
33b

Scenegraph Logger Part 2/2

19.1 MB
19.1
19.1
21 min
This VMK shows you how to modify the Font, Material, Light, Texture, TextureTransform, Geometry, GeometryBox, GeometryCylinder, GeometryFlatGrid, GeometryCompiled, Node, NodeShape, NodeLight and NodeTransform classes so that all the scenegraph data can be output to the log file for viewing.
You must login to
download this file
34a

Console Window Part 1/2

21.7 MB
21.7
21.7
25 min
NOTE: Between VMK 34 and VMK 38 I may have introduced some bugs that I didn't notice until VMK38c. If you are having problems compiling your code, watch VMK 38c. I start by cleaning up the structure of the game engine and then I create the UserSettings class that allows us to pass data between the GameOGL class and the Scene class very easily. The ConsoleParam struct is also created which is used to contain all the console window parameters.
You must login to
download this file
34b

Console Window Part 2/2

25.7 MB
25.7
25.7
24 min
I start by cleaning up the structure of the game engine and then I create the UserSettings class that allows us to pass data between the GameOGL class and the Scene class very easily. The ConsoleParam struct is also created which is used to contain all the console window parameters.
You must login to
download this file
34c

Console Text

18.7 MB
18.7
18.7
18 min
I add keyboard control to the console window to enable and disable the FPS output. I also show you how to attach text to the console window so that it scrolls up and down when the TAB key is pressed
You must login to
download this file
34d

Echo Text to Console Window

14.3 MB
14.3
14.3
21 min
Key presses on the keyboard are now echoed to the console window to show what is being typed.
You must login to
download this file
34e

Parse Console Input Text

16.8 MB
16.8
16.8
16 min
Keyboard input into the console window is now parsed. I show you how to implement a few keywords like fps, save, quit and position.
You must login to
download this file
34f

Texturing the Console Window

9.1 MB
9.1
9.1
9 min
A small modification is made to the ConsoleRender function so that the yellow rectangle, used as the background of the console window, is replaced with a texture.
You must login to
download this file
35a

Intro Splash Screen Part 1/2

18.6 MB
18.6
18.6
20 min
In this two part VMK, I start off by showing you how to clean up the game engine code so that we can easily change the game state using either the GameOGL class or the Scene class. The game's timing is updated and then I show you how to add a splash screen to the beginning of the game.
You must login to
download this file
35b

Intro Splash Screen Part 2/2

17.3 MB
17.3
17.3
21 min
In this two part VMK, I start off by showing you how to clean up the game engine code so that we can easily change the game state using either the GameOGL class or the Scene class. The game's timing is updated and then I show you how to add a splash screen to the beginning of the game.
You must login to
download this file
35c

Animating the Splash Screen

7.1 MB
7.1
7.1
11 min
The ShowIntro() function is updated in this VMK so that the splash screen can change with the passing of time. I show you how to make a fade effect and I give you ideas of what other kinds of effects you can now do.
You must login to
download this file
36

Handling Command Line Input

10.9 MB
10.9
10.9
16 min
I show you how to handle command line input passed into your game from the command console. I also show you how to do the same thing within visual studio. We use this functionality to bypass the splash screen during development.
You must login to
download this file
37a

Mouse Input version 2

14.5 MB
14.5
14.5
18 min
Mouse input control is reworked in this video so that all mouse activity is handled via windows messages.
You must login to
download this file
37b

Display Mouse XY Coordinates

10.0 MB
10.0
10.0
11 min
The ability to display the current mouse X,Y co-ordinate location is added to the console window. Note that at the end of the video I say that you can not see the mouse cursor, however if you watch the video you will actually see the cursor. This is because of the video recording software that I am using. When you run this program on your computer, you will not see the cursor on the screen when you move the mouse over top of your own window.
You must login to
download this file
37c

Custom Mouse Cursor

13.9 MB
13.9
13.9
15 min
I add a custom mouse cursor to the game engine in this VMK. Note that in the video, you will see the default windows mouse cursor and the custom mouse cursor rendered, however this is only an artifact from my video recording software. When you actually do this on your own computer, you will only see the custom cursor rendering on the screen.
You must login to
download this file
38a

GUI and Game Flow

3.9 MB
3.9
3.9
7 min
A flow chart is presented at the beginning showing how the game that we are working on is going to work. All the GUI elements that we will be building are demonstrated so that you can get a feel for how they are going to work once this mini-series is complete.
You must login to
download this file
38b

GUI Control

9.8 MB
9.8
9.8
15 min
All GUI elements will be derived from the GUIControl class that we develop in this VMK
You must login to
download this file
38c

Clean Build

2.7 MB
2.7
2.7
4 min
Sometime between VMK34 and VMK38 (I think) I have introduced a bug into the build. This short video shows you how to fix it. You should do a clean build of your solution every now and again, just to make sure Visual C++ is using the correct version of your code when it compiles.
You must login to
download this file
38d

GUI Button

12.4 MB
12.4
12.4
19 min
The first GUI element we create is the Button. The class definition is shown in this VMK
You must login to
download this file
38e

Using GUI Button Class Part 1/2

12.4 MB
12.4
12.4
15 min
This video shows you how to use the GUIButton class that we created in the previous VMK.
You must login to
download this file
38f

Using GUI Button Class Part 2/2

18.0 MB
18.0
18.0
19 min
This video shows you how to use the GUIButton class that we created in the previous VMK.
You must login to
download this file
38g

GUI Radio

6.6 MB
6.6
6.6
12 min
The next GUI element we create is the Radio Button Group. This class allows you to add GUI Buttons to it that work together as a radio set.
You must login to
download this file
38h

Using GUI Radio Class

7.6 MB
7.6
7.6
7 min
I use the GUI Radio class developed in the previous VMK to get some radio buttons working on the screen.
You must login to
download this file
38i

GUI Slider

19.6 MB
19.6
19.6
29 min
This VMK shows you how to implement the GUISlider class used to create sliders. The sliders can be continuous or notched and range over any values that you would like
You must login to
download this file
38j

Using the GUI Slider

18.8 MB
18.8
18.8
22 min
The GUISlider class created in the previous VMK is demonstrated in this video. You get to see the continuous and notched behaviour in action. At the very end of the VMK, I also show you how to fix the game engine so that it doesn't return strange return values.
You must login to
download this file
38k

GUI Text

12.0 MB
12.0
12.0
19 min
Using the Font class, I create a GUIText class. I also show you how to change some existing code that uses vsprintf in the ErrorHandler and Scene class's. Some changes to the Font class also had to be made.
You must login to
download this file
38l

Using GUI Text

6.8 MB
6.8
6.8
10 min
The GUIText class created in the previous VMK is used to render text on the screen.
You must login to
download this file
39a

Implementing GS_MENU Screen

19.2 MB
19.2
19.2
24 min
I implement the functional GS_MENU state in the game. I include all the functionality to start a new game (goes to GS_LOADING -> GS_PLAY), go to the options menu (GS_OPTIONS) and you can now quit the game from the main menu.
You must login to
download this file
39b

GS_OPTIONS Screen

12.2 MB
12.2
12.2
14 min
In this video I layout the GS_OPTIONS screen. The functionality of all the controls will come in the next VMK.
You must login to
download this file
39c

Update UserSettings Class Pt 1/3

14.0 MB
14.0
14.0
20 min
There are a number of small changes that need to be made all over the code to get all the GUI controls in the GS_OPTIONS screen to work properly. Most of the changes are linked to the UserSettings class, but we do need to make changes inside GameOGL, Scene, Player and more. I also show you how to load and save data (using fstream) from/to a file so that we can keep track of the users preferences.
You must login to
download this file
39d

Update UserSettings Class Pt 2/3

23.0 MB
23.0
23.0
20 min
There are a number of small changes that need to be made all over the code to get all the GUI controls in the GS_OPTIONS screen to work properly. Most of the changes are linked to the UserSettings class, but we do need to make changes inside GameOGL, Scene, Player and more. I also show you how to load and save data (using fstream) from/to a file so that we can keep track of the users preferences.
You must login to
download this file
39e

Update UserSettings Class Pt 3/3

21.7 MB
21.7
21.7
21 min
There are a number of small changes that need to be made all over the code to get all the GUI controls in the GS_OPTIONS screen to work properly. Most of the changes are linked to the UserSettings class, but we do need to make changes inside GameOGL, Scene, Player and more. I also show you how to load and save data (using fstream) from/to a file so that we can keep track of the users preferences.
You must login to
download this file
39f

Handling GS_Loading State

16.6 MB
16.6
16.6
20 min
I show you how to split your game engine into two parts. The first part is responsible for loading all the GUI resources, and the second part will load the "first level" that the user will play. I also show you how to fix any strange anomalies when loading 3D models generated from other 3D modeling software.
You must login to
download this file
39g

GS_PAUSE & GS_PAUSE_OPTIONS

21.7 MB
21.7
21.7
24 min
I finish the GUI navigations by adding the GS_PAUSE and GS_PAUSE_OPTION screens in this VMK.
You must login to
download this file
40

GUI Move Command

19.8 MB
19.8
19.8
27 min
In this video tutorial I demonstrate how to implement a new console command that allows you to manipulate the layout of all the GUI controls in real-time using the mouse while the game is running.
You must login to
download this file
41

Game State Navigation System

29.2 MB
29.2
29.2
36 min
I demonstrate how to improve the Game State Navigation System. The improved system gives us more flexibility with laying out our menu system. We gain the ability to visit the same Game State from different directions, something that can't be done with the current implementation.
You must login to
download this file
42a

Update GUISlider Class

13.9 MB
13.9
13.9
14 min
In this video I shows how to improve the GUISlider class so that we can use it in the next VMK to start creating the GUIList class.
You must login to
download this file
42b

Create GUIList Part 1/2

19.0 MB
19.0
19.0
 
I show the internal workings of the GUIList control. This general list box lets you list rows of data in the control. If the number of rows is more than what can be seen on the screen, a scrollbar will appear allowing you to scroll up and down through the list of items. Each row of data can have multiple columns, and each column can have its own font and color.
You must login to
download this file
42c

Create GUIList Part 2/2

17.4 MB
17.4
17.4
53 min
I show the internal workings of the GUIList control. This general list box lets you list rows of data in the control. If the number of rows is more than what can be seen on the screen, a scrollbar will appear allowing you to scroll up and down through the list of items. Each row of data can have multiple columns, and each column can have its own font and color.
You must login to
download this file
42d

Using GUIList Part 1/2

16.0 MB
16.0
16.0
 
This is part 1 of a 2 part VMK. In this video I add the GUIList control to the game engine and demonstrate how to use it.
You must login to
download this file
42e

Using GUIList Part 2/2

14.2 MB
14.2
14.2
35 min
This is part 2 of a 2 part VMK. In this video I add the GUIList control to the game engine and demonstrate how to use it.
You must login to
download this file
43a

Key Mapping Part 1/2

27.5 MB
27.5
27.5
 
I show how to modify the UserSettings class so that we can dynamically change the key's that are mapped to each of the actions in a game. This is part 1 or a 2 part series.
You must login to
download this file
43b

Key Mapping Part 2/2

26.7 MB
26.7
26.7
1 hr 14 min
I show how to modify the UserSettings class so that we can dynamically change the key's that are mapped to each of the actions in a game. This is part 2 or a 2 part series.
You must login to
download this file
43c

Special Key Presses

25.4 MB
25.4
25.4
34 min
In this video we go into the details of how to handle special keys on the keyboard including F10, F12, Number Pad Enter, Print Screen, Left & Right Shift, Control and Alt Keys. Mouse key presses are also handled the same way as all other key presses from the keyboard.
You must login to
download this file
44a

3rd Person Camera Part 1/2

21.0 MB
21.0
21.0
 
To prepare for the swap over from the 1st person camera to the 3rd person camera controls, we replace the old camera class with a new one that uses the gluLookAt function. part 1 of a 2 part series.
You must login to
download this file
44b

3rd Person Camera Part 2/2

20.0 MB
20.0
20.0
50 min
To prepare for the swap over from the 1st person camera to the 3rd person camera controls, we replace the old camera class with a new one that uses the gluLookAt function. part 2 of a 2 part series.
You must login to
download this file
44c

Adding a Player Model

28.9 MB
28.9
28.9
22 min
We separate the Player class from the Camera class and attached a 3D model of the player to our movement controls. The player is rendered in front of the camera as we move around the world. A little bit of 3D math is involved to figure out where to position our "pivot" point so that when we rotate the camera, our scene/view updates correctly while keeping the 3D model at the correct spot.
You must login to
download this file
45

Working with Visual C++ Express

27.2 MB
27.2
27.2
24 min
I show you how to modify the game engine code so that it will work under Visual C++ 2005/2008 Express Editions.
You must login to
download this file