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 Shader Engine Video Tutorials

This is a continuation of the Game Engine and Ghost Toast VMK series. The game engine is rewritten using more advanced C++ features and the renderer is updated to use the core OpenGL v3.x specifications with GLSL shaders.
216 Files40 hr 13 min
0

Introduction

Free
0
27.2
11 min
Intro to the Shader Engine VMK series. A brief description of what to expect to see in this series as we update the Game Engine to use advanced C++ techniques, OpenGL v3.x specifications and shaders!
1p1

Solution Setup Part 1/2

28.0 MB
28.0
28.0
 
In this vmk I compare the differences between the Game Engine and Ghost Toast configuration with the Shader Engine configuration which I will be using.
You must login to
download this file
1p2

Solution Setup Part 2/2

26.1 MB
26.1
26.1
40 min
In this vmk I compare the differences between the Game Engine and Ghost Toast configuration with the Shader Engine configuration which I will be using.
You must login to
download this file
2

Exception Handler

20.4 MB
20.4
20.4
10 min
In this video I setup the class which will be used to handle all thrown exceptions in the Shader Engine. We will update this handler in a few VMK once the file logger is written.
You must login to
download this file
3

Block Process & Threads

16.1 MB
16.1
16.1
9 min
Two classes are created in this VMK which allows us to easily manage multiple launches of the engine, and multiple launches of functions used by different threads.
You must login to
download this file
4

Singleton Class

11.5 MB
11.5
11.5
8 min
The Singleton class is created in this VMK. This class will be used to manage all singleton objects that we create in the engine making sure that only one instance of each type is allowed and the order of contruction is well defined.
You must login to
download this file
5p1

Logger Part 1/2

17.0 MB
17.0
17.0
 
The class used to log information, warnings and error messages is created in this VMK. Initially the logger will display the time and date stamped messages to the screen, but later it will save the messages in an actual log file.
You must login to
download this file
5p2

Logger Part 2/2

14.8 MB
14.8
14.8
20 min
The class used to log information, warnings and error messages is created in this VMK. Initially the logger will display the time and date stamped messages to the screen, but later it will save the messages in an actual log file.
You must login to
download this file
6

TextFileWriter Class

26.5 MB
26.5
26.5
15 min
The file handler framework is started in this VMK. All file manipulation will inherit from one FileHandler class including the TextFileWriter class which is created in this VMK.
You must login to
download this file
7

Log Exceptions

19.5 MB
19.5
19.5
14 min
This video ties some things together so that messages sent to the Logger and all exceptions are automatically saved in the log file created by the TextFileWriter.
You must login to
download this file
8

Make It Better

21.9 MB
21.9
21.9
12 min
In this video I clean up a few bugs in the code and improve the Logger class so that is it a little bit friendlier to use and less error prone.
You must login to
download this file
9

Auto Build Number

21.6 MB
21.6
21.6
11 min
The game project is updated to use the BuildNumberGenerator program in this VMK so that we can keep track of the current build number.
You must login to
download this file
10

Settings Class

20.0 MB
20.0
20.0
12 min
The Settings singleton class is created in this video and it is used to store engine wide settings in the games that we will be making. The Settings object is initialized in _main.cpp
You must login to
download this file
11

Utility Class

26.6 MB
26.6
26.6
16 min
A general utility class is created in this vmk which has functionality in it that allows us to easily convert strings to upper or lower case and also to convert strings to numbers.
You must login to
download this file
12

Input Arguments

23.7 MB
23.7
23.7
16 min
In this video I setup the ability to process input arguments passed into the shader engine so that we can customize how the engine will run without having to recompile each time.
You must login to
download this file
13p1

OpenGL Math Library Part 1/2

18.0 MB
18.0
18.0
 
An OpenGL Math library is added to the shader engine project in this video. The library uses the same syntax as the OpenGL Shader Language (GLSL) which we will be learning shortly so this is a good way to become familiar with programming shaders too.
You must login to
download this file
13p2

OpenGL Math Library Part 2/2

16.2 MB
16.2
16.2
17 min
An OpenGL Math library is added to the shader engine project in this video. The library uses the same syntax as the OpenGL Shader Language (GLSL) which we will be learning shortly so this is a good way to become familiar with programming shaders too.
You must login to
download this file
14

Architecture

12.7 MB
12.7
12.7
7 min
In this video I present a high level architecture overview of the Shader engine as compared to the OpenGL game engine used in the Ghost Toast game.
You must login to
download this file
15p1

Engine and Game Class Part 1/2

24.5 MB
24.5
24.5
 
The base Engine singleton class is created in this video and it will become the focal point of the Shader Engine. An empty Game class is also created to allow us to compile and run the code.
You must login to
download this file
15p2

Engine and Game Class Part 2/2

23.2 MB
23.2
23.2
23 min
The base Engine singleton class is created in this video and it will become the focal point of the Shader Engine. An empty Game class is also created to allow us to compile and run the code.
You must login to
download this file
16

Keyboard Input

24.0 MB
24.0
24.0
13 min
In this video I add the code that lets us handle key presses (and releases) on the keyboard when the game window is in focus. I also add the ability to suppress repeat key presses.
You must login to
download this file
17p1

OpenGL Setup Part 1/2

19.0 MB
19.0
19.0
 
The OpenGL rendering context is prepared in this VMK and the viewport is setup to allow us to start rendering to the window that was created in the previous videos.
You must login to
download this file
17p2

OpenGL Setup Part 2/2

17.4 MB
17.4
17.4
14 min
The OpenGL rendering context is prepared in this VMK and the viewport is setup to allow us to start rendering to the window that was created in the previous videos.
You must login to
download this file
18p1

Render OpenGL v1.0 Part 1/2

15.0 MB
15.0
15.0
 
In this video I introduce how to render things onto the screen using v1.0 of the OpenGL API. This is how things were done in the game engine/Ghost Toast series for the most part.
You must login to
download this file
18p2

Render OpenGL v1.0 Part 2/2

14.4 MB
14.4
14.4
16 min
In this video I introduce how to render things onto the screen using v1.0 of the OpenGL API. This is how things were done in the game engine/Ghost Toast series for the most part.
You must login to
download this file
19p1

Vertex Array Part 1/2

17.0 MB
17.0
17.0
 
In this vmk we explore vertex arrays which are part of the OpenGL v1.1 spec. By the end of the video you will learn how to store data in arrays and pass them all down to OpenGL in one call.
You must login to
download this file
19p2

Vertex Array Part 2/2

16.1 MB
16.1
16.1
18 min
In this vmk we explore vertex arrays which are part of the OpenGL v1.1 spec. By the end of the video you will learn how to store data in arrays and pass them all down to OpenGL in one call.
You must login to
download this file
20p1

Vertex Buffer Objects Part 1/3

23.0 MB
23.0
23.0
 
We use vertex buffer objects which are part of the OpenGL v1.5 spec. By the end of the vmk you will learn how to store data in the graphics card\'s memory and use that data to render things on the screen.
You must login to
download this file
20p2

Vertex Buffer Objects Part 2/3

23.0 MB
23.0
23.0
 
We use vertex buffer objects which are part of the OpenGL v1.5 spec. By the end of the vmk you will learn how to store data in the graphics card\'s memory and use that data to render things on the screen.
You must login to
download this file
20p3

Vertex Buffer Objects Part 3/3

19.6 MB
19.6
19.6
26 min
We use vertex buffer objects which are part of the OpenGL v1.5 spec. By the end of the vmk you will learn how to store data in the graphics card\'s memory and use that data to render things on the screen.
You must login to
download this file
21

Text File Reader

14.5 MB
14.5
14.5
8 min
The file handler framework is extended in this video to include a class that allows you to read text files. Pass in a filename into the constructor and retreive the contents of the file with one function call.
You must login to
download this file
22p1

OpenGL v2.1 Part 1/6

28.0 MB
28.0
28.0
 
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
22p2

OpenGL v2.1 Part 2/6

28.0 MB
28.0
28.0
 
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
22p3

OpenGL v2.1 Part 3/6

28.0 MB
28.0
28.0
 
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
22p4

OpenGL v2.1 Part 4/6

28.0 MB
28.0
28.0
 
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
22p5

OpenGL v2.1 Part 5/6

28.0 MB
28.0
28.0
 
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
22p6

OpenGL v2.1 Part 6/6

13.9 MB
13.9
13.9
1 hr 4 min
In this video OpenGL shaders are introduced for the first time. We look at how to create, compile and link vertex and fragment shaders, and then use them to render on the screen.
You must login to
download this file
23p1

GLSL Shaders Part 1/3

22.0 MB
22.0
22.0
 
In this VMK we explore working with both the fragment and vertex shaders. I also demonstrate common errors that you will encounter when writing GLSL code.
You must login to
download this file
23p2

GLSL Shaders Part 2/3

22.0 MB
22.0
22.0
 
In this VMK we explore working with both the fragment and vertex shaders. I also demonstrate common errors that you will encounter when writing GLSL code.
You must login to
download this file
23p3

GLSL Shaders Part 3/3

15.8 MB
15.8
15.8
31 min
In this VMK we explore working with both the fragment and vertex shaders. I also demonstrate common errors that you will encounter when writing GLSL code.
You must login to
download this file
24

Move In Shader

19.9 MB
19.9
19.9
8 min
In the previous VMK, I showed how to work with shaders, however I forgot to demonstrate how to move vertices directly in a shader. That is what this video covers.
You must login to
download this file
25p1

Vertex Array Objects Part 1/4

27.0 MB
27.0
27.0
 
In this VMK I demonstrate how vertex array objects work with vertex buffer objects. Additionally we move from OpenGL v2.1 up to OpenGL v3.0
You must login to
download this file
25p2

Vertex Array Objects Part 2/4

27.0 MB
27.0
27.0
 
In this VMK I demonstrate how vertex array objects work with vertex buffer objects. Additionally we move from OpenGL v2.1 up to OpenGL v3.0
You must login to
download this file
25p3

Vertex Array Objects Part 3/4

27.0 MB
27.0
27.0
 
In this VMK I demonstrate how vertex array objects work with vertex buffer objects. Additionally we move from OpenGL v2.1 up to OpenGL v3.0
You must login to
download this file
25p4

Vertex Array Objects Part 4/4

19.7 MB
19.7
19.7
41 min
In this VMK I demonstrate how vertex array objects work with vertex buffer objects. Additionally we move from OpenGL v2.1 up to OpenGL v3.0
You must login to
download this file
26p1

OpenGL 3.3 Core Profile Part 1/3

25.5 MB
25.5
25.5
 
In this VMK we finally get to updating the OpenGL rendering context to use the v3.3 Core Profile Specification. The GLU library is removed from the project and the desired openGL version number is now passed from the Game class to the Engine class.
You must login to
download this file
26p2

OpenGL 3.3 Core Profile Part 2/3

25.5 MB
25.5
25.5
 
In this VMK we finally get to updating the OpenGL rendering context to use the v3.3 Core Profile Specification. The GLU library is removed from the project and the desired openGL version number is now passed from the Game class to the Engine class.
You must login to
download this file
26p3

OpenGL 3.3 Core Profile Part 3/3

24.2 MB
24.2
24.2
33 min
In this VMK we finally get to updating the OpenGL rendering context to use the v3.3 Core Profile Specification. The GLU library is removed from the project and the desired openGL version number is now passed from the Game class to the Engine class.
You must login to
download this file
27p1

ShaderManager Intro Part 1/2

22.0 MB
22.0
22.0
 
I introduce the ShaderManager class in this VMK. I show how it will replace the shader code that was written already and I prepare the Engine for the next series of videos.
You must login to
download this file
27p2

ShaderManager Intro Part 2/2

17.5 MB
17.5
17.5
21 min
I introduce the ShaderManager class in this VMK. I show how it will replace the shader code that was written already and I prepare the Engine for the next series of videos.
You must login to
download this file
28p1

Shader Program Settings Part 1/2

25.0 MB
25.0
25.0
 
The ShaderProgramSettings and the ShaderVariable template class are created in this video. These classes are used to keep track of GLSL programs and variables in the vertex and fragment shaders that will be used in the ShaderManager.
You must login to
download this file
28p2

Shader Program Settings Part 2/2

24.7 MB
24.7
24.7
29 min
The ShaderProgramSettings and the ShaderVariable template class are created in this video. These classes are used to keep track of GLSL programs and variables in the vertex and fragment shaders that will be used in the ShaderManager.
You must login to
download this file
29p1

Shader Manager Part 1/5

25.0 MB
25.0
25.0
 
In this VMK the Shader Manager class is created and all the supporting functionality is implemented so that you will be able to load vertex and fragment shaders into your game very easily.
You must login to
download this file
29p2

Shader Manager Part 2/5

25.0 MB
25.0
25.0
 
In this VMK the Shader Manager class is created and all the supporting functionality is implemented so that you will be able to load vertex and fragment shaders into your game very easily.
You must login to
download this file
29p3

Shader Manager Part 3/5

25.0 MB
25.0
25.0
 
In this VMK the Shader Manager class is created and all the supporting functionality is implemented so that you will be able to load vertex and fragment shaders into your game very easily.
You must login to
download this file
29p4

Shader Manager Part 4/5

25.0 MB
25.0
25.0
 
In this VMK the Shader Manager class is created and all the supporting functionality is implemented so that you will be able to load vertex and fragment shaders into your game very easily.
You must login to
download this file
29p5

Shader Manager Part 5/5

25.0 MB
25.0
25.0
57 min
In this VMK the Shader Manager class is created and all the supporting functionality is implemented so that you will be able to load vertex and fragment shaders into your game very easily.
You must login to
download this file
30p1

Shaders Part 1/2

21.0 MB
21.0
21.0
 
In this video we take a look at what the ShaderManager can do for us when working with shaders. Near the end of the VMK, I present the first challenge to the viewers to see if you can come up with a shader that performs the specific task that I demonstrate in the video.
You must login to
download this file
30p2

Shaders Part 2/2

18.2 MB
18.2
18.2
18 min
In this video we take a look at what the ShaderManager can do for us when working with shaders. Near the end of the VMK, I present the first challenge to the viewers to see if you can come up with a shader that performs the specific task that I demonstrate in the video.
You must login to
download this file
31p1

Challenge 1 Solution Part 1/2

26.0 MB
26.0
26.0
 
In this VMK I show the solution to the shader challenge that I presented in the last VMK. I also implement a few new functions in the engine which we will be using later on too.
You must login to
download this file
31p2

Challenge 1 Solution Part 2/2

25.0 MB
25.0
25.0
26 min
In this VMK I show the solution to the shader challenge that I presented in the last VMK. I also implement a few new functions in the engine which we will be using later on too.
You must login to
download this file
32p1

MkoFileReader Part 1/2

28.0 MB
28.0
28.0
 
This VMK introduces you to the shader engines binary file format (MKO) files. I create the templated class which will be used to read in many different kinds of mko files.
You must login to
download this file
32p2

MkoFileReader Part 2/2

26.5 MB
26.5
26.5
28 min
This VMK introduces you to the shader engines binary file format (MKO) files. I create the templated class which will be used to read in many different kinds of mko files.
You must login to
download this file
33p1

GrayArray2d Part 1/2

20.0 MB
20.0
20.0
 
The GrayArray2d class is created in this VMK and the mko file format is described in detail. The 010 Editor template files are also included with this VMK so that mko files can be parsed correctly if you use that binary editor.
You must login to
download this file
33p2

GrayArray2d Part 2/2

18.8 MB
18.8
18.8
24 min
The GrayArray2d class is created in this VMK and the mko file format is described in detail. The 010 Editor template files are also included with this VMK so that mko files can be parsed correctly if you use that binary editor.
You must login to
download this file
34p1

Surface3d Part 1/4

24.0 MB
24.0
24.0
 
A new mko data structure is introduced in this VMK that allows you to define 3D surfaces. I implement the new Surface3d class and also make updates to the BaseMko, ShaderManager and Array2d classes to support this new renderable geometry.
You must login to
download this file
34p2

Surface3d Part 2/4

24.0 MB
24.0
24.0
 
A new mko data structure is introduced in this VMK that allows you to define 3D surfaces. I implement the new Surface3d class and also make updates to the BaseMko, ShaderManager and Array2d classes to support this new renderable geometry.
You must login to
download this file
34p3

Surface3d Part 3/4

24.0 MB
24.0
24.0
 
A new mko data structure is introduced in this VMK that allows you to define 3D surfaces. I implement the new Surface3d class and also make updates to the BaseMko, ShaderManager and Array2d classes to support this new renderable geometry.
You must login to
download this file
34p4

Surface3d Part 4/4

21.9 MB
21.9
21.9
52 min
A new mko data structure is introduced in this VMK that allows you to define 3D surfaces. I implement the new Surface3d class and also make updates to the BaseMko, ShaderManager and Array2d classes to support this new renderable geometry.
You must login to
download this file
35p1

Create Surface Part 1/2

21.0 MB
21.0
21.0
 
In this video I demonstrate how to use Photoshop to generate 3D surfaces for rendering in the engine. Near the end of the video I also present the second challenge.
You must login to
download this file
35p2

Create Surface Part 2/2

19.1 MB
19.1
19.1
16 min
In this video I demonstrate how to use Photoshop to generate 3D surfaces for rendering in the engine. Near the end of the video I also present the second challenge.
You must login to
download this file
36

Challenge 2 Solution

15.9 MB
15.9
15.9
9 min
In this VMK I show the solution to the second shader challenge that I presented in the last VMK. Congrats to skilz80 and davidemo89 for solving the challenge.
You must login to
download this file
37p1

Asset Storage Class Part 1/2

21.0 MB
21.0
21.0
 
In this VMK I introduce a new singleton class called AssetStorage that is used to manage all the game assets that are loaded by the engine.
You must login to
download this file
37p2

Asset Storage Class Part 2/2

20.4 MB
20.4
20.4
24 min
In this VMK I introduce a new singleton class called AssetStorage that is used to manage all the game assets that are loaded by the engine.
You must login to
download this file
38p1

Debug Logging Part 1/2

18.5 MB
18.5
18.5
 
In this VMK I modify the Settings class so that we have a way to turn debugging logging messages on and off easily. This will become very handy a little later on when things get more complex. Some extra logging messages are also added to track when singletons are created and destroyed.
You must login to
download this file
38p2

Debug Logging Part 2/2

17.6 MB
17.6
17.6
20 min
In this VMK I modify the Settings class so that we have a way to turn debugging logging messages on and off easily. This will become very handy a little later on when things get more complex. Some extra logging messages are also added to track when singletons are created and destroyed.
You must login to
download this file
39

Colored Console

20.7 MB
20.7
20.7
9 min
In this VMK we add a little bit of color to the console window. Messages sent to the logger that are information get colored green, warnings are orange, and errors are red.
You must login to
download this file
40p1

TextureFileReader Part 1/2

23.0 MB
23.0
23.0
 
The class responsible for loading textures into memory is introduced in this VMK. I also show the usage of the new TextureInfo and Texture structs.
You must login to
download this file
40p2

TextureFileReader Part 2/2

22.8 MB
22.8
22.8
20 min
The class responsible for loading textures into memory is introduced in this VMK. I also show the usage of the new TextureInfo and Texture structs.
You must login to
download this file
41p1

Texture Asset Storage Part 1/3

24.5 MB
24.5
24.5
 
The AssetStorage class is updated in this video so that it supports the ability to store textures that are loaded by the engine. The way that OpenGL is handled is changed in this VMK so instead of needing gl.h and glext.h we now only need glcorearb.h
You must login to
download this file
41p2

Texture Asset Storage Part 2/3

24.5 MB
24.5
24.5
 
The AssetStorage class is updated in this video so that it supports the ability to store textures that are loaded by the engine. The way that OpenGL is handled is changed in this VMK so instead of needing gl.h and glext.h we now only need glcorearb.h
You must login to
download this file
41p3

Texture Asset Storage Part 3/3

24.0 MB
24.0
24.0
36 min
The AssetStorage class is updated in this video so that it supports the ability to store textures that are loaded by the engine. The way that OpenGL is handled is changed in this VMK so instead of needing gl.h and glext.h we now only need glcorearb.h
You must login to
download this file
42p1

Image2D Part 1/2

14.0 MB
14.0
14.0
 
A new class is added in this VMK called Image2D. This class is responsible for rendering a textured rectangle on the screen.
You must login to
download this file
42p2

Image2D Part 2/2

13.2 MB
13.2
13.2
15 min
A new class is added in this VMK called Image2D. This class is responsible for rendering a textured rectangle on the screen.
You must login to
download this file
43p1

Loading Image2D Part 1/2

15.5 MB
15.5
15.5
 
In this video I show how to modify the MkoFileReader class so that it can support loading Image2D mko files. Included with this vmk you will also find a sample Image2D.mko file and templates for the 010 Editor.
You must login to
download this file
43p2

Loading Image2D Part 2/2

4.5 MB
4.5
4.5
13 min
In this video I show how to modify the MkoFileReader class so that it can support loading Image2D mko files. Included with this vmk you will also find a sample Image2D.mko file and templates for the 010 Editor.
You must login to
download this file
44p1

Texture Shader Part 1/2

24.0 MB
24.0
24.0
 
In this VMK I fill in the missing pieces in the Shader Manager so that we can finally render an image on a rectangular surface. The texture vertex and texture fragment shaders are shown and by the end of the video you will know how to work with the Image2d mko file format.
You must login to
download this file
44p2

Texture Shader Part 2/2

23.3 MB
23.3
23.3
23 min
In this VMK I fill in the missing pieces in the Shader Manager so that we can finally render an image on a rectangular surface. The texture vertex and texture fragment shaders are shown and by the end of the video you will know how to work with the Image2d mko file format.
You must login to
download this file
45p1

Console Input Part 1/2

22.0 MB
22.0
22.0
 
In this video I show how to add support to the Shader Engine so that keyboard input in the console window can be handled appropriately. Console input becomes very useful when you are debugging your games or if you just want to tweak settings while the game is running.
You must login to
download this file
45p2

Console Input Part 2/2

21.7 MB
21.7
21.7
24 min
In this video I show how to add support to the Shader Engine so that keyboard input in the console window can be handled appropriately. Console input becomes very useful when you are debugging your games or if you just want to tweak settings while the game is running.
You must login to
download this file
46

Multi Mko & Challenge 3

22.0 MB
22.0
22.0
12 min
In this video I add support to the MkoFileReader so that you can open 1 mko file, but then generate multiple objects out of the one file. Then I present to you Challenge #3.
You must login to
download this file
47p1

Challenge 3 Solution Part 1/2

18.5 MB
18.5
18.5
 
In this video I present my solution to Challenge 3 that was presented in VMK46. Be sure to watch this video for changes to stdafx.h / .cpp which will be needed later.
You must login to
download this file
47p2

Challenge 3 Solution Part 2/2

18.5 MB
18.5
18.5
21 min
In this video I present my solution to Challenge 3 that was presented in VMK46. Be sure to watch this video for changes to stdafx.h / .cpp which will be needed later.
You must login to
download this file
48

Batch Rendering

23.5 MB
23.5
23.5
18 min
In this video I describe how batch rendering works. I give an example in Photoshop showing how geometry in a game should be passed between the CPU and the GPU by the shader engine.
You must login to
download this file
49p1

Batch Class Part 1/2

28.0 MB
28.0
28.0
 
In this VMK I show how to create the Batch class which is used to store different types of vertices before sending them to the GPU. The GuiVertex and BatchConfig structs are also created in this video, along with some updates to the ShaderManager.
You must login to
download this file
49p2

Batch Class Part 2/2

26.6 MB
26.6
26.6
32 min
In this VMK I show how to create the Batch class which is used to store different types of vertices before sending them to the GPU. The GuiVertex and BatchConfig structs are also created in this video, along with some updates to the ShaderManager.
You must login to
download this file
50p1

Batch Manager Part 1/2

18.0 MB
18.0
18.0
 
The BatchManager class is created in this video. The Batch Manager is responsible to filling and emptying the collection of Batches that the Shader Engine manages for the lifetime of your game.
You must login to
download this file
50p2

Batch Manager Part 2/2

16.9 MB
16.9
16.9
28 min
The BatchManager class is created in this video. The Batch Manager is responsible to filling and emptying the collection of Batches that the Shader Engine manages for the lifetime of your game.
You must login to
download this file
51

visualMko class

16.2 MB
16.2
16.2
8 min
In this video I construct the visualMko class that will be used to render any mko object that has a visual component. The existing image2d class will be modified in the next vmk to take advantage of the visualMko class built in this video.
You must login to
download this file
52p1

Image2d version 2 Part 1/2

29.0 MB
29.0
29.0
 
The image2d class is updated in this vmk to support the version 2 implementation. This version uses the batch manager to handle the rendering of any image2d instance.
You must login to
download this file
52p2

Image2d version 2 Part 2/2

28.0 MB
28.0
28.0
28 min
The image2d class is updated in this vmk to support the version 2 implementation. This version uses the batch manager to handle the rendering of any image2d instance.
You must login to
download this file
53p1

Debug Batch Manager Part 1/2

23.0 MB
23.0
23.0
 
The Settings class is updated in this video so that we have a way to mark when we want to debug render calls. The BatchManager and Batch classes are then updated to output information to the console window.
You must login to
download this file
53p2

Debug Batch Manager Part 2/2

19.2 MB
19.2
19.2
22 min
The Settings class is updated in this video so that we have a way to mark when we want to debug render calls. The BatchManager and Batch classes are then updated to output information to the console window.
You must login to
download this file
54

mkoFileReader Image2d version 2

16.1 MB
16.1
16.1
9 min
The mkoFileReader class is updated in this vmk to support loading mko files that are encoded using the Image2d version 2 file format. Included with this vmk are the updated template files for the 010 Editor too.
You must login to
download this file
55

Moving Objects

18.1 MB
18.1
18.1
10 min
In this video I show how to modify the VisualMko class so that we have built in support for moving mko objects on the screen, and everything still works correctly with the BatchManager.
You must login to
download this file
56

Challenge 4

9.1 MB
9.1
9.1
3 min
In this video I present Challenge #4 for you to try. Complete the challenge and post your solution in the forum. The first person that completes this challenge successfully will win download credits.
You must login to
download this file
57

Scale and Rotate Image2d

14.9 MB
14.9
14.9
9 min
In this video I show how I implemented the solution the challenge 4. By the end of the video you will be able to control the position, scale and rotation of any image2d instance.
You must login to
download this file
58p1

guiElement

21.0 MB
21.0
21.0
 
In this video I show how to create the GuiElement and GuiCompositeElement classes which will be heavily used in the following VMK to build the gui rendering system.
You must login to
download this file
58p2

guiElement

19.8 MB
19.8
19.8
21 min
In this video I show how to create the GuiElement and GuiCompositeElement classes which will be heavily used in the following VMK to build the gui rendering system.
You must login to
download this file
59

Logger Type Console

25.4 MB
25.4
25.4
11 min
The logger class is updated in this VMK so that it supports outputting text to the console which means that everything will now be logged to the text file.
You must login to
download this file
60

GuiScreen Class

20.4 MB
20.4
20.4
13 min
The first real GUI class is created in the VMK called GuiScreen. A GuiScreen will be used to represent one screen full of GUI controls which can be used by a player.
You must login to
download this file
61p1

AssetStorage Update Part 1/3

24.5 MB
24.5
24.5
 
In this video I update the AssetStorage class so that it supports GuiElements. Anytime that a GuiScreen objects is created, it will automatically be managed by the AssetStorage class from now on.
You must login to
download this file
61p2

AssetStorage Update Part 2/3

24.5 MB
24.5
24.5
 
In this video I update the AssetStorage class so that it supports GuiElements. Anytime that a GuiScreen objects is created, it will automatically be managed by the AssetStorage class from now on.
You must login to
download this file
61p3

AssetStorage Update Part 3/3

24.4 MB
24.4
24.4
33 min
In this video I update the AssetStorage class so that it supports GuiElements. Anytime that a GuiScreen objects is created, it will automatically be managed by the AssetStorage class from now on.
You must login to
download this file
62p1

Gui Image Element Part 1/2

24.0 MB
24.0
24.0
 
In this video I create a new class called GuiImageElement. This class will be responsible for generating and maintaining vertices that define a rectangular region on the screen. This will be used by all renderable gui objects.
You must login to
download this file
62p2

Gui Image Element Part 2/2

22.4 MB
22.4
22.4
27 min
In this video I create a new class called GuiImageElement. This class will be responsible for generating and maintaining vertices that define a rectangular region on the screen. This will be used by all renderable gui objects.
You must login to
download this file
63

GuiRenderable Class

23.7 MB
23.7
23.7
16 min
In this video I start combining some of the previous classes to make the GuiRenderable class. Any GUI object that will be renderable in the engine will inherit from this class.
You must login to
download this file
64

Gui Layout Class

26.4 MB
26.4
26.4
15 min
All the different GUI layout objects which we will be creating will be based off of this GuiLayout class shown in this video. The GuiLayout class will manage how Gui Renderables are organized on the screen.
You must login to
download this file
65

Gui Layout Absolute Class

21.3 MB
21.3
21.3
15 min
The Absolute Layout class used by the Gui is responsible for controlling the position of Gui elements by specifying an x,y value where the Gui element(s) should be placed on the screen.
You must login to
download this file
66p1

Test Absolute Layouts Part 1/2

17.0 MB
17.0
17.0
 
Using the guiLayoutAbsolute class that we finished implementing in the last VMK, we create some layout objects and render them on the screen to get familiar with how the gui system works.
You must login to
download this file
66p2

Test Absolute Layouts Part 2/2

15.5 MB
15.5
15.5
17 min
Using the guiLayoutAbsolute class that we finished implementing in the last VMK, we create some layout objects and render them on the screen to get familiar with how the gui system works.
You must login to
download this file
67

GuiImage class

22.1 MB
22.1
22.1
13 min
This video shows how to create the GuiImage class which inherits from GuiRenderable. The GuiImage class is used to render solid colors or textures on the screen.
You must login to
download this file
68p1

Fix Gui Removal Code Part 1/2

28.0 MB
28.0
28.0
 
In this video I show how to clean up the GUI code that we currently have so that we can delete parent and children objects correctly. I also remove the restriction where you can only have on parent per gui object in this VMK.
You must login to
download this file
68p2

Fix Gui Removal Code Part 2/2

27.8 MB
27.8
27.8
28 min
In this video I show how to clean up the GUI code that we currently have so that we can delete parent and children objects correctly. I also remove the restriction where you can only have on parent per gui object in this VMK.
You must login to
download this file
69p1

Gui Layout Grid Class Part 1/2

17.0 MB
17.0
17.0
 
In this video the second GuiLayout object class is created. The GuiLayoutGrid is used to place Gui objects in a grid. All children inserted into the layout will be grouped into the specified number of columns.
You must login to
download this file
69p2

Gui Layout Grid Class Part 2/2

15.7 MB
15.7
15.7
20 min
In this video the second GuiLayout object class is created. The GuiLayoutGrid is used to place Gui objects in a grid. All children inserted into the layout will be grouped into the specified number of columns.
You must login to
download this file
70p1

Grid Layout Tests Part 1/2

19.5 MB
19.5
19.5
 
Using the gui grid layout class that was presented in the last VMK, we use it to create a number of tests to see how to organize gui objects in grids. The grid layout class is also updated to support adding null children into the layout.
You must login to
download this file
70p2

Grid Layout Tests Part 2/2

18.6 MB
18.6
18.6
15 min
Using the gui grid layout class that was presented in the last VMK, we use it to create a number of tests to see how to organize gui objects in grids. The grid layout class is also updated to support adding null children into the layout.
You must login to
download this file
71p1

Gui Loader Class Part 1/4

23.0 MB
23.0
23.0
 
In this video I start writing the Gui loader class, which will parse a text file and create Gui objects that we support in the Shader Game Engine.
You must login to
download this file
71p2

Gui Loader Class Part 2/4

23.0 MB
23.0
23.0
 
In this video I start writing the Gui loader class, which will parse a text file and create Gui objects that we support in the Shader Game Engine.
You must login to
download this file
71p3

Gui Loader Class Part 3/4

23.0 MB
23.0
23.0
 
In this video I start writing the Gui loader class, which will parse a text file and create Gui objects that we support in the Shader Game Engine.
You must login to
download this file
71p4

Gui Loader Class Part 4/4

21.3 MB
21.3
21.3
49 min
In this video I start writing the Gui loader class, which will parse a text file and create Gui objects that we support in the Shader Game Engine.
You must login to
download this file
72p1

More Gui Loader Code Part 1/2

26.0 MB
26.0
26.0
 
The Gui Loader code is expanded to include support for loading Null, GuiImage, GuiLayoutAbsolute, and GuiLayoutGrid objects. The Utility class is updated to support handling conversions from strings to different types of values and types.
You must login to
download this file
72p2

More Gui Loader Code Part 2/2

25.6 MB
25.6
25.6
28 min
The Gui Loader code is expanded to include support for loading Null, GuiImage, GuiLayoutAbsolute, and GuiLayoutGrid objects. The Utility class is updated to support handling conversions from strings to different types of values and types.
You must login to
download this file
73p1

Test Gui Loader Class Part 1/2

18.0 MB
18.0
18.0
 
In the last 2 VMK I showed how to write the Gui Loader class. In this video I use that class to test out what we have programmed so far. I also add support for referenced gui objects within the Gui Loader class.
You must login to
download this file
73p2

Test Gui Loader Class Part 2/2

17.8 MB
17.8
17.8
16 min
In the last 2 VMK I showed how to write the Gui Loader class. In this video I use that class to test out what we have programmed so far. I also add support for referenced gui objects within the Gui Loader class.
You must login to
download this file
74

Challenge #5 Remove Comments

15.5 MB
15.5
15.5
6 min
In this challenge you have to come up with a way to remove comments from gui text files. Your code must handle single line comments using two slash characters, as well as block comments using the slash-star, star-slash notation.
You must login to
download this file
75

Remove Comments

20.4 MB
20.4
20.4
12 min
My solution to Challenge 5 is shown in this video. You will see how to construct the GuiLoader::removeComments function so that line comments and block comments are handled while the GuiLoader parses a file.
You must login to
download this file
76p1

Textured Gui Image Part 1/3

21.7 MB
21.7
21.7
 
In this video I show how to add a texture to a GuiImage object. I also update the GuiLoader class to handle the need to work with textures directly inside the gui text file.
You must login to
download this file
76p2

Textured Gui Image Part 2/3

21.7 MB
21.7
21.7
 
In this video I show how to add a texture to a GuiImage object. I also update the GuiLoader class to handle the need to work with textures directly inside the gui text file.
You must login to
download this file
76p3

Textured Gui Image Part 3/3

21.0 MB
21.0
21.0
29 min
In this video I show how to add a texture to a GuiImage object. I also update the GuiLoader class to handle the need to work with textures directly inside the gui text file.
You must login to
download this file
77

PNG File Loader

26.7 MB
26.7
26.7
13 min
In this video I show how to use the libpng library to load PNG files and convert them into OpenGL textures to use in the Shader Engine.
You must login to
download this file
78

GuiLayoutStack Class

16.7 MB
16.7
16.7
11 min
A new layout class is added to the Gui in this VMK. The stack layout lets you arrange items either in a vertical column, or a single horizontal row.
You must login to
download this file
79

Test Stack Layouts

21.0 MB
21.0
21.0
10 min
I use the GuiLayoutStack class that was created in the previous video to demonstrate how to use stack layouts in the GUI. The Gui Loader class is also updated to support stack layouts.
You must login to
download this file
80p1

Gui Label and Text Classes Part 1/2

21.0 MB
21.0
21.0
 
We have seen how to load images and use them in the GUI so the next step is to get text working in the Shader Engine. For this we will need a bunch of new classes. The first 2 new classes are the GuiText and GuiLabel classes which I create in this video.
You must login to
download this file
80p2

Gui Label and Text Classes Part 2/2

20.0 MB
20.0
20.0
26 min
We have seen how to load images and use them in the GUI so the next step is to get text working in the Shader Engine. For this we will need a bunch of new classes. The first 2 new classes are the GuiText and GuiLabel classes which I create in this video.
You must login to
download this file
81

Font Manager Class

28.1 MB
28.1
28.1
18 min
In this video I show how to create the font manager class. This class is responsible for loading, preparing and unloading all the font files used within your games.
You must login to
download this file
82p1

Font File Class Part 1/3

20.5 MB
20.5
20.5
 
In this video I show how to implement the Font File class used to store data for different fonts which are loaded using the Font Manager.
You must login to
download this file
82p2

Font File Class Part 2/3

20.5 MB
20.5
20.5
 
In this video I show how to implement the Font File class used to store data for different fonts which are loaded using the Font Manager.
You must login to
download this file
82p3

Font File Class Part 3/3

19.4 MB
19.4
19.4
32 min
In this video I show how to implement the Font File class used to store data for different fonts which are loaded using the Font Manager.
You must login to
download this file
83p1

Loading Font Files Part 1/2

28.2 MB
28.2
28.2
 
In this video I update the MkoFileReader to support loading font files generated by the Font Atlas software. Included with this video are the 010 Editor template files needed to parse mko font files, and also the mko files generated in this video.
You must login to
download this file
83p2

Loading Font Files Part 2/2

27.7 MB
27.7
27.7
25 min
In this video I update the MkoFileReader to support loading font files generated by the Font Atlas software. Included with this video are the 010 Editor template files needed to parse mko font files, and also the mko files generated in this video.
You must login to
download this file
84p1

Testing Gui Label Part 1/2

25.0 MB
25.0
25.0
 
Using all the new classes that were created since Vmk80, we can now render text on the screen with the GuiLabel class.
You must login to
download this file
84p2

Testing Gui Label Part 2/2

24.5 MB
24.5
24.5
24 min
Using all the new classes that were created since Vmk80, we can now render text on the screen with the GuiLabel class.
You must login to
download this file
85p1

Dynamic Text Shadows Part 1/2

20.0 MB
20.0
20.0
 
The GuiLabel class is updated in this VMK so that we can render shadows behind text. I also demonstrate how to render dynamic text on the screen in this video.
You must login to
download this file
85p2

Dynamic Text Shadows Part 2/2

19.2 MB
19.2
19.2
20 min
The GuiLabel class is updated in this VMK so that we can render shadows behind text. I also demonstrate how to render dynamic text on the screen in this video.
You must login to
download this file
86

Animation Manager

29.2 MB
29.2
29.2
15 min
Later on we will be developing animation effects for the OpenGL Shader Engine. These effects will be controlled by the animation manager which is the class that is created in this VMK.
You must login to
download this file
87p1

Debug Gui Part 1/2

25.5 MB
25.5
25.5
 
In this VMK I add some debug capabilities to the Gui code so that we can easily identify where Gui objects are being rendered on the screen.
You must login to
download this file
87p2

Debug Gui Part 2/2

25.2 MB
25.2
25.2
27 min
In this VMK I add some debug capabilities to the Gui code so that we can easily identify where Gui objects are being rendered on the screen.
You must login to
download this file
88p1

Gui Text Area Class Part 1/2

16.0 MB
16.0
16.0
 
The GuiTextArea class lets you specify a rectangular area where text will display. Text placed inside this area will automatically wrap and clip if there is too much to fit in the space provided.
You must login to
download this file
88p2

Gui Text Area Class Part 2/2

14.6 MB
14.6
14.6
16 min
The GuiTextArea class lets you specify a rectangular area where text will display. Text placed inside this area will automatically wrap and clip if there is too much to fit in the space provided.
You must login to
download this file
89p1

Font Manager Update Part 1/3

26.0 MB
26.0
26.0
 
The FontManager class and all supporting classes are updated in this VMK so that we can now support rendering text in a constrained area. You can either specify to limit just the width, or you can limit the width and the height.
You must login to
download this file
89p2

Font Manager Update Part 2/3

26.0 MB
26.0
26.0
 
The FontManager class and all supporting classes are updated in this VMK so that we can now support rendering text in a constrained area. You can either specify to limit just the width, or you can limit the width and the height.
You must login to
download this file
89p3

Font Manager Update Part 3/3

24.7 MB
24.7
24.7
42 min
The FontManager class and all supporting classes are updated in this VMK so that we can now support rendering text in a constrained area. You can either specify to limit just the width, or you can limit the width and the height.
You must login to
download this file
90p1

Render Queue Part 1/2

22.0 MB
22.0
22.0
 
This video show how to improve the rendering technique used in the Shader Engine so that we minimize the number of draw calls that we send to the video card during each frame.
You must login to
download this file
90p2

Render Queue Part 2/2

21.0 MB
21.0
21.0
21 min
This video show how to improve the rendering technique used in the Shader Engine so that we minimize the number of draw calls that we send to the video card during each frame.
You must login to
download this file
91

Moving Text

17.0 MB
17.0
17.0
8 min
This short video shows how to create a text area and how to control it so that it moves across the screen. The moving text is updated while it moves so that it is dynamic not just static text.
You must login to
download this file
92p1

GuiLayoutSlices Class Part 1/2

26.0 MB
26.0
26.0
 
A new gui layout is introduced in this video. The slices layout lets you use 9-slice images inside your games which are scale-able in the horizontal or vertical directions.
You must login to
download this file
92p2

GuiLayoutSlices Class Part 2/2

24.5 MB
24.5
24.5
27 min
A new gui layout is introduced in this video. The slices layout lets you use 9-slice images inside your games which are scale-able in the horizontal or vertical directions.
You must login to
download this file
93p1

Render Slices Part 1/2

26.5 MB
26.5
26.5
 
In this video I add support for guiLayoutSlices into the gui loader and then I show how to use layout slices to render items on the screen. A bug is also fixed in the text area code that did not handle carriage returns properly when using the gui loader.
You must login to
download this file
93p2

Render Slices Part 2/2

25.9 MB
25.9
25.9
23 min
In this video I add support for guiLayoutSlices into the gui loader and then I show how to use layout slices to render items on the screen. A bug is also fixed in the text area code that did not handle carriage returns properly when using the gui loader.
You must login to
download this file
94p1

Mouse Cursor Part 1/3

20.5 MB
20.5
20.5
 
In this VMK I wire up the mouse cursor to an Image2d object so that when the mouse moves, the image of the cursor moves on the screen. The guiLoader class is updated also to handle Image2d objects.
You must login to
download this file
94p2

Mouse Cursor Part 2/3

20.5 MB
20.5
20.5
 
In this VMK I wire up the mouse cursor to an Image2d object so that when the mouse moves, the image of the cursor moves on the screen. The guiLoader class is updated also to handle Image2d objects.
You must login to
download this file
94p3

Mouse Cursor Part 3/3

19.6 MB
19.6
19.6
28 min
In this VMK I wire up the mouse cursor to an Image2d object so that when the mouse moves, the image of the cursor moves on the screen. The guiLoader class is updated also to handle Image2d objects.
You must login to
download this file
95

Fade Challenge 6

3.4 MB
3.4
3.4
2 min
Challenge 6 is presented in this VMK. I would like you to try to implement a fade effect on some gui objects when the mouse button is pressed.
You must login to
download this file
96p1

Alpha Fade Solutions Part 1/2

27.0 MB
27.0
27.0
 
In this VMK I show how to achieve the fade effect two different ways. One way is done entirely on the CPU, and the other way it to update the shader code so that the fade is done on the GPU.
You must login to
download this file
96p2

Alpha Fade Solutions Part 2/2

26.1 MB
26.1
26.1
25 min
In this VMK I show how to achieve the fade effect two different ways. One way is done entirely on the CPU, and the other way it to update the shader code so that the fade is done on the GPU.
You must login to
download this file
97p1

OpenGL Threads Part 1/3

24.5 MB
24.5
24.5
 
In this video I make the required changes to the Shader Game Engine so that we can use OpenGL calls in a second thread and have those commands work rather than fail.
You must login to
download this file
97p2

OpenGL Threads Part 2/3

24.5 MB
24.5
24.5
 
In this video I make the required changes to the Shader Game Engine so that we can use OpenGL calls in a second thread and have those commands work rather than fail.
You must login to
download this file
97p3

OpenGL Threads Part 3/3

23.0 MB
23.0
23.0
32 min
In this video I make the required changes to the Shader Game Engine so that we can use OpenGL calls in a second thread and have those commands work rather than fail.
You must login to
download this file
98p1

Volitile Locker Class Part 1/2

19.0 MB
19.0
19.0
 
Since we can now have our games run in multiple threads it is important to synchronize data between threads properly. In this video I show how to create a volitile locking class to ensure volitile variables are properly synchronized.
You must login to
download this file
98p2

Volitile Locker Class Part 2/2

18.8 MB
18.8
18.8
14 min
Since we can now have our games run in multiple threads it is important to synchronize data between threads properly. In this video I show how to create a volitile locking class to ensure volitile variables are properly synchronized.
You must login to
download this file
99p1

Animation Class Part 1/2

17.0 MB
17.0
17.0
 
In this video we add more functionality to the Animation Manager class, so that it can support the new Animation class that is built in this vmk. Animation easing is also explained in this video.
You must login to
download this file
99p2

Animation Class Part 2/2

16.7 MB
16.7
16.7
15 min
In this video we add more functionality to the Animation Manager class, so that it can support the new Animation class that is built in this vmk. Animation easing is also explained in this video.
You must login to
download this file
100p1

Animation Timer Part 1/2

17.5 MB
17.5
17.5
 
In this first animation class, we implement a timer. You can use the timer to trigger an event to happen after a specific period of time has elapsed. In an example, I show how you can use the timer to make an image appear after a 3 second delay.
You must login to
download this file
100p2

Animation Timer Part 2/2

17.3 MB
17.3
17.3
17 min
In this first animation class, we implement a timer. You can use the timer to trigger an event to happen after a specific period of time has elapsed. In an example, I show how you can use the timer to make an image appear after a 3 second delay.
You must login to
download this file
101p1

Animation Gui Mover Part 1/2

16.0 MB
16.0
16.0
 
In this video I create the Animation Gui Mover class. This class is used to automatically move gui objects across the screen using the easings that are implemented in the Animation Manager.
You must login to
download this file
101p2

Animation Gui Mover Part 2/2

15.5 MB
15.5
15.5
14 min
In this video I create the Animation Gui Mover class. This class is used to automatically move gui objects across the screen using the easings that are implemented in the Animation Manager.
You must login to
download this file
102p1

Animation Gui Fader Part 1/2

18.5 MB
18.5
18.5
 
In this video I add another new Animation class to the Shader engine. The AnimationGuiFader is used to fade gui objects according to the easing function specified. I also demonstrate how to stack animations so that you can have multiple effects running at once.
You must login to
download this file
102p2

Animation Gui Fader Part 2/2

17.8 MB
17.8
17.8
18 min
In this video I add another new Animation class to the Shader engine. The AnimationGuiFader is used to fade gui objects according to the easing function specified. I also demonstrate how to stack animations so that you can have multiple effects running at once.
You must login to
download this file
103p1

Animation Function Part 1/2

23.0 MB
23.0
23.0
 
In this video I show how to create a generic animation class that allows you to animate anything you want in your games. The AnimationFunction class will trigger any function that you want during an update and also any function can be called when the animation is completed.
You must login to
download this file
103p2

Animation Function Part 2/2

22.6 MB
22.6
22.6
21 min
In this video I show how to create a generic animation class that allows you to animate anything you want in your games. The AnimationFunction class will trigger any function that you want during an update and also any function can be called when the animation is completed.
You must login to
download this file
104p1

Audio Buffer Part 1/2

22.0 MB
22.0
22.0
 
In this video I show how to create the Audio Buffer class used to store the audio data loaded from a file. In this VMK I also add all the required dependencies so that we can load ogg or wav files using OpenAL.
You must login to
download this file
104p2

Audio Buffer Part 2/2

21.1 MB
21.1
21.1
20 min
In this video I show how to create the Audio Buffer class used to store the audio data loaded from a file. In this VMK I also add all the required dependencies so that we can load ogg or wav files using OpenAL.
You must login to
download this file
105

Audio Source

20.8 MB
20.8
20.8
12 min
In this VMK we implement 2 new classes, the AudioObject and the AudioSource. The Audio Source is going to be the container for one entity that can play back a sound effect. I also implement the SoundSource which is a reference to an audio object that the AudioManager will be using.
You must login to
download this file
106

Audio Manager update

24.5 MB
24.5
24.5
15 min
The Audio Manager class is updated in this VMK so that we can now load audio files. The audio manager is a singleton class that manages audio buffers and audio sources when they are loaded by your game.
You must login to
download this file
107

Audio Playback

26.9 MB
26.9
26.9
11 min
In this VMK I use the Audio Manager to load audio files into the game engine, and then play each file back on command by pressing keys on the keyboard.
You must login to
download this file
108p1

Updates Part 1/5

24.5 MB
24.5
24.5
 
In this video I update the source code to work with Microsoft Visual Studio 2015. I also update the code to use newer version of all the external libraries: libpng v1.6.18, zlib v1.2.8, libogg v1.3.2 and libvorbis 1.3.5
You must login to
download this file
108p2

Updates Part 2/5

24.5 MB
24.5
24.5
 
In this video I update the source code to work with Microsoft Visual Studio 2015. I also update the code to use newer version of all the external libraries: libpng v1.6.18, zlib v1.2.8, libogg v1.3.2 and libvorbis 1.3.5
You must login to
download this file
108p3

Updates Part 3/5

24.5 MB
24.5
24.5
 
In this video I update the source code to work with Microsoft Visual Studio 2015. I also update the code to use newer version of all the external libraries: libpng v1.6.18, zlib v1.2.8, libogg v1.3.2 and libvorbis 1.3.5
You must login to
download this file
108p4

Updates Part 4/5

24.5 MB
24.5
24.5
 
In this video I update the source code to work with Microsoft Visual Studio 2015. I also update the code to use newer version of all the external libraries: libpng v1.6.18, zlib v1.2.8, libogg v1.3.2 and libvorbis 1.3.5
You must login to
download this file
108p5

Updates Part 5/5

23.6 MB
23.6
23.6
46 min
In this video I update the source code to work with Microsoft Visual Studio 2015. I also update the code to use newer version of all the external libraries: libpng v1.6.18, zlib v1.2.8, libogg v1.3.2 and libvorbis 1.3.5
You must login to
download this file
109p1

Build Number Update Part 1/2

19.0 MB
19.0
19.0
 
The Game project inside the Shader Engine is updated in this VMK to use the new Build Number program which is now available from the free tools section in the forum.
You must login to
download this file
109p2

Build Number Update Part 2/2

18.3 MB
18.3
18.3
15 min
The Game project inside the Shader Engine is updated in this VMK to use the new Build Number program which is now available from the free tools section in the forum.
You must login to
download this file
110

First Game Prep

13.3 MB
13.3
13.3
7 min
This short VMK prepares the Shader Engine to be used to create the first full game named Zing. After you finish this VMK, start the Zing VMK series. You can purchase the source code for the engine up to this VMK from the store.
You must login to
download this file
111p1

Audio Stream Part 1/2

23.5 MB
23.5
23.5
 
In this video I show how to implement the AudioStream class. This class is used to playback large audio files. A large file is only partially loaded into multiple buffers. When a buffer becomes empty as the audio is playing, the AudioManager will automatically load the next section of the large file into a buffer for continuous playback.
You must login to
download this file
111p2

Audio Stream Part 2/2

22.5 MB
22.5
22.5
16 min
In this video I show how to implement the AudioStream class. This class is used to playback large audio files. A large file is only partially loaded into multiple buffers. When a buffer becomes empty as the audio is playing, the AudioManager will automatically load the next section of the large file into a buffer for continuous playback.
You must login to
download this file
112p1

Stream Playback Part 1/2

26.7 MB
26.7
26.7
 
In this video I show how to incorporate the AudioStream class into the AudioManager so that we can load and play back music in video games.
You must login to
download this file
112p2

Stream Playback Part 2/2

25.7 MB
25.7
25.7
29 min
In this video I show how to incorporate the AudioStream class into the AudioManager so that we can load and play back music in video games.
You must login to
download this file
113

Sprite Animation Manager

13.0 MB
13.0
13.0
6 min
In this short video I show how to modify the Animation Manager class so that it supports handling for the new Sprite class which is going to be developed in the next VMK.
You must login to
download this file
114p1

Sprite Class Part 1/2

27.5 MB
27.5
27.5
 
In this video I show the initial code which we will use to load and store sprite data. This class will be updated in the next few VMK, but this simplified version will be good enough to get us started.
You must login to
download this file
114p2

Sprite Class Part 2/2

25.5 MB
25.5
25.5
29 min
In this video I show the initial code which we will use to load and store sprite data. This class will be updated in the next few VMK, but this simplified version will be good enough to get us started.
You must login to
download this file
115p1

Jedi Sprite Part 1/2

24.0 MB
24.0
24.0
 
Using the Sprite class that has been developed, in this video I show how to load a sprite sheet. I then go and demonstrate how to add keyboard handlers to switch between different animation loops.
You must login to
download this file
115p2

Jedi Sprite Part 2/2

22.8 MB
22.8
22.8
17 min
Using the Sprite class that has been developed, in this video I show how to load a sprite sheet. I then go and demonstrate how to add keyboard handlers to switch between different animation loops.
You must login to
download this file
116p1

Sprite Loader Part 1/2

23.0 MB
23.0
23.0
 
In this video I show how to create a Sprite loader. The sprite sheet is defined in a text file which gets loaded by the shader engine and then we can play the animation using the AnimationManager class.
You must login to
download this file
116p2

Sprite Loader Part 2/2

22.1 MB
22.1
22.1
25 min
In this video I show how to create a Sprite loader. The sprite sheet is defined in a text file which gets loaded by the shader engine and then we can play the animation using the AnimationManager class.
You must login to
download this file