C++ Programming
The C++ Programming for Game Developers series of courses has been designed to satisfy three major goals. First and foremost, the key goal is to enable you to understand, and be able to apply (by writing programs), the fundamental components of the C++ programming language. The second goal of this series is to prepare you for the other courses at Game Institute, which require an intermediate level of proficiency with the C++ programming language. And finally, the last goal of the series is to introduce you to game programming related topics in an easier to comprehend 2D environment, which will serve as a stepping-stone to 3D game programming. This last goal is met by building up the tools needed to program a 2D game in the Windows environment
Module I Description
In this first C++ course, an introduction to C++ programming basics, you will become proficient with core C++ topics such as variables, console input and output, functions, loops, programming logic, pointers, strings, classes, and object oriented design and methodologies. In addition, you will study more complex C++ subject matter, such as operator overloading, file input and output, inheritance, and polymorphism. When practical to do so, game related examples are used to motivate the discussions. Quizzes, a midterm, and a final will make up your grade.
Topics covered in Module I, Beginning C++ Game Programming:
- How to Create a C++ Program, Console Input and Output, Variables, and the Arithmetic Operators
- Logical Operators, Controlling Program Flow, Repetition, and Arrays
- Functions
- References and Pointers
- Classes and Object Oriented Programming Design
- Strings
- Operator Overloading
- File Input and Output
- Inheritance and Polymorphism
Module II Description
In this second C++ video game programming course, you will begin to move away from the text-based console applications we built together in Module I, and begin to examine Windows programming with the Win32 API. With the Win32 API, you will be able to write programs that look a lot more like those that you are probably very familiar with; ones with resizable windows, mouse input, graphics, menus, toolbars, scroll bars, dialog boxes, and controls.
Of particular interest to us as game programmers is the ability to do graphics with the Win32 API, something which is not possible with the pure C++ programming language. You will learn about fundamental graphic concepts such as double buffering, sprites, animation and timing, and masking. By the end of this C++ video game programming course, you will have developed a fully functional 2D game, complete with graphics, physics, artificial intelligence, and input via the mouse. After completing this game programming with C++ course, you will be adequately prepared for your first course in 3D graphics programming.
Quizzes, a midterm, and a final will make up your grade.
Topics covered in Module II:
- Template Classes and Template Functions
- Error Handling
- Number Systems, Data Representations, and Bit Operations
- The Standard Template Library
- Introduction to Windows Programming
- Menus and Drawing with GDI
- Dialog Boxes
- Timing, Animation, and Sprites
- Designing and Implementing a 2D Game

Graphics Programming
This DirectX9 Graphics Programming course was specifically designed to be the first course that a student takes at Game Institute following their C++ training. It represents the beginning of the core training you will receive here at Game Institute as you study to become a professional game developer. Although this is a targeted as a beginner/intermediate level course, even if you have some previous 3D graphics experience, you are likely to encounter a significant amount of useful information and learn some new techniques along the way. This is the first DirectX programming course in a multi-part series on 3D Game Engine Programming (and DirectX Graphics version 9). The application framework you build in this course will be greatly expanded in Module II and then further still in a set of targeted workshops dealing with advanced concepts. As such, to make sure that everyone is working from the same code base, this is a pre-requisite course if you intend to continue with the rest of the series.
What are some of the topics we will study in this course?
Module I Description
In Module I you will begin a detailed exploration of the basic features of the DirectX Graphics fixed-function pipeline. You will learn how to use each of the features individually and then in combination to render complex 3D scenes. The course will begin with an examination of all the 3D mathematics that you'll need for most of this series, so you can get started right away after your C++ training is complete. Then you'll learn how to create your own software transformation and rendering pipeline to ensure that you have a good understanding of the basics. From that point forward you will begin using the DirectX API to render your 3D scenes.
The topics discussed include:
* 3D Mathematics
* The Transformation and Lighting Pipeline
* Initializing Direct3D
* Vertex and Index Buffers
* Single and MultiTexture Effects
* Camera Management Systems
* Compressed Textures
* Texturing & the Texture Blending Cascade
* Alpha Blending
* Loading GILES™ Scenes
* much, much more...