Skip to content

C++ Programming for Game Development

Access code required


Here is the course outline:

1. Environment & Core Language Features

Goals: Create, compile, link and execute C++ programs. Find out how C++ code is transformed into machine code. Learn some of the basic C++ features necessary for every C++ program. Discover how to output and input text information to and from the user. Understand the concept of variables. Perform simple arithmetic operations in C++.

2. Conditionals, Loops, & Arrays

Goals: Understand and evaluate logical expressions. Form and apply conditional, if...then, statements. Discover how to execute a block of code repeatedly using various kinds of loops. Learn how to create containers of variables and how to manipulate the individual elements in those containers.

3. Functions

Goals: Understand and construct logical code groupings/tasks as functions. Understand the various definitions for scope as it pertains to variable declarations. Understand how to use code libraries for common tasks in mathematics and for random number generation. Understand function parameter overloading and the concept of the default parameter.

4. References & Pointers

Goals: Become familiar with reference and pointer syntax. Understand how C++ passes array arguments into functions. Discover how to return multiple return values from a function. Learn how to create and destroy memory at runtime (i.e., while the program is running).

5. Object Oriented Programming (OOP)

Goals: Understand the problems object oriented programming attempts to solve. Define a class and instantiate members of that class. Learn some basic class design strategies.

6. Strings & Miscellaneous

Goals: Understand how C++ natively describes strings. Learn some important standard library string functions. Review std::string and become familiar with some of its methods. Become familiar with the this pointer. Learn about the friend and static keywords. Discover how to create your own namespaces. Understand what enumerated types are, how they are defined in C++, and when they would be used.

7. Operator Overloading

Goals: Learn how to overload the arithmetic operators. Discover how to overload the relational operators. Overload the conversion operators. Understand the difference between deep copies and shallow copies. Find out how to overload the assignment operator and copy constructor to perform deep copies.

8. File Input/Output

Goals: Learn how to load and save text files. Learn how to load and save binary files.

9. Inheritance & Polymorphism

Goals: Understand what inheritance means in C++ and why it is a useful code construct. Understand the syntax of polymorphism, how it works, and why it is useful. Learn how to create general abstract types and interfaces.

10. Exam I Preparatory

Runtime: 35m 26s

11. Templates

Goals: Learn how to design and implement generic classes. Learn how to define generic functions.

12. Exception Handling

Goals: Understand the method of catching errors via function return codes, and an understanding of the shortcomings of this method. Become familiar with the concepts of exception handling, its syntax, and its benefits. Learn how to write assumption verification code using asserts.

13. Number Systems

Goals: Learn how to represent numbers with the binary and hexadecimal numbering systems, how to perform basic arithmetic in these numbering systems, and how to convert between these numbering systems as well as the base ten numbering system. Gain an understanding of how the computer describes intrinsic C++ types internally. Become proficient with the various binary operations. Become familiar with the way in which floating-point numbers are represented internally.

14. The Standard Template Library

Goals: Discover how lists, stacks, queues, deques, and maps work internally, and in which situations they should be used. Become familiar with a handful of the generic algorithms the standard library provides and how to apply these algorithms on a variety of data structures. Learn how to create objects that act like functions, called functors, and learn how to create and use predicates with the standard library.

15. Basic Windows Programming

Goals: Learn how to create a basic Win32 application. Gain an understanding of the event driven programming model.

16. GDI and Menus

Goals: Learn how to output text onto a window, and how to draw several GDI shape primitives like lines, rectangles and ellipses. Understand how different pens and brushes can be used to change the way GDI shapes are colored and drawn. Learn how to load bitmap (.bmp) images from file into our Windows programs, and how to draw them on the client area of our windows. Become familiar with the Visual C++ menu resource editor, and learn how to create menus.

17. Dialogs and Controls

Goals: Learn how to create modal and modeless dialog boxes, and how to distinguish between the two. Discover how to create and design dialog boxes with the Visual C++ resource editor. Become familiar with several Win32 controls such as static text controls, picture box controls, edit box controls, radio button controls, button controls, and combo box controls.

18. Sprite Animation

Goals: Learn how to use the Windows multimedia timer functions for smooth animation. Discover how to do basic 2D computer animation. Understand the technique of double buffering to avoid flicker. Learn how to draw complex non-rectangular 2D image bitmaps using the GDI raster operations.

19. First Game

Goals: Become familiar with the three-stage software development process of analysis, design, and implementation. Practice the three-stage software development process by analyzing, designing, and implementing an Air Hockey game.

20. Exam 2 Preparatory

Runtime: 47m 09s

21. Transitioning from C++ to C# (Optional)

Goals: Use your C++ knowledge to learn C# in about 90 minutes. An excellent supplemental tutorial from Derek Banas on YouTube. This is an optional module, but is strongly recommended for students who intend to pursue our Unity training, where C# is the primary language being used in those videos.

Back to top