Using Dynamic Link Libraries (DLL) to Create Plug-Ins

Dynamic Linking Library

Dynamic Linking Library


In this article I will describe how to use Dynamic Link Libraries (DLL) in your own projects. I will show an example of how to define a DLL that is statically linked at compile-time to support implicit loading of the DLL at runtime. I will also show how to to use explicit DLL loading to allow your project to support plug-ins that can be dynamically loaded into your main executable at run-time. For this example, I will use Microsoft’s Visual Studio 2008 as the programming IDE.

Continue reading

Loading and Animating MD5 Models with OpenGL


Bob with Lamp

Bob with Lamp

In this article, I will show how you can load and animate models loaded from the MD5 model file format.  In this article I will use OpenGL to render the models.  I will not show how to setup an OpenGL application in this article. If you need to get a quick introduction on setting up an OpenGL application, you can follow the “Beginning OpenGL for Game Programmers” article [here].

Continue reading

Loading COLLADA Model files with COLLADA DOM

Collada Logo

Collada Logo

In this article I will explore one possible way to import COLLADA model files into your game engine.  I will use the COLLADA Document Object Model (DOM) to simplify the process of importing COLLADA files.  For the sake of simplicity, I will use the COLLADA Renderer provided with the COLLADA DOM to display the COLLADA files to the user.

In this article, I assume the user has a basic understanding of setting up an OpenGL project using Microsoft Visual Studio 2008. If you would like to first learn how to setup a project that uses OpenGL to render 3D graphics, you can refer to my OpenGL tutorial.

Continue reading

Introduction to DirectX for Game Programmers

Microsoft DirectX

Microsoft DirectX

In this article I will give a quick introduction to DirectX.  I will use Visual Studio 2008 as a development environment for this tutorial and I will start by showing how to install DirectX and configure Visual Studio 2008 to start developing DirectX applications.  I assume that the reader has basic programming knowledge in C++.  If you require a math refresher, you can refer to my “3D Math Primer” articles on Coordinate Spaces, Vector Operations, and Matrices.

Continue reading

Introduction to OpenGL for Game Programmers

OpenGL

OpenGL

In this article I will demonstrate a basic introduction in OpenGL. It will be in tutorial format that the reader can follow along on their own. The final result should be a working template that can be used to create your own projects using OpenGL.

Continue reading

3D Math Primer for Game Programmers (Vector Operations)


Distance between two points (3)

Distance between two points (3)

In this article I would like to discuss operations on vectors.  This article assumes the reader has a basic knowledge of what vectors are and how they are represented. My goal here is simply to refresh your memory about what kind of operations can be performed on vectors specifically operations that are important if you are trying to create a 3D game engine.
Continue reading

3D Math Primer for Game Programmers (Matrices)


The Matrix

The Matrix

In this article, I will discuss matrices and operations on matrices. It is assumed that the reader has some experience with Linear Algebra, vectors, operations on vectors, and a basic understanding of matrices.
Continue reading

3D Math Primer for Game Programmers (Coordinate Systems)


Left-hand rule

Left-hand coordinate system.

In this article, I would like to provide a brief math primer for people who would like to get involved in game programming.  This is not an exhaustive explanation of all the math theory that one will have to know in order to be a successful game programmer, but it’s the very minimum amount of information that is necessary to know before you can begin as a game programmer.

This article assumes you have a minimum understanding vectors, and matrices.  I will simply show applications of vectors and matrices and how they apply to game programming.
Continue reading