Object-Oriented Programming in C++

Go beyond the basics and learn how professional programmers structure code. This course takes your C++ foundation and builds on it with the architecture patterns used in real game development — classes, inheritance, polymorphism, memory management, and version control.

What will you learn in the course?

C++ fundamentals revisited

Understand how Godot organizes games into reusable scenes and nodes.

Flow control and containers

Master if/switch statements, loops, vectors, and maps to write logic that handles real gameplay scenarios.

Pointers and references

Understand stack vs heap memory, encapsulation, getters, setters, and the arrow operator — one of C++’s most powerful features.

Classes, inheritance and polymorphism

Design programs using OOP architecture with class hierarchies, constructors, destructors, virtual functions, and interfaces.

Advanced C++ patterns

Go deeper with template functions, event systems, function pointers, casting, and composition-based game design.

Git and version control

Learn Git and GitHub to manage your code professionally, collaborate safely, and resolve merge conflicts like a real development team.

Course Content

Unit 1
0.00 Preparation Session 3 topics
1 1.01 Introduction
2 1.02 Why Should You Care About The Game Industry?
3 1.03 What is Code?
Unit 2
1.20 Assignment 0 topics
Unit 3
1.00 Preparation Session 2 topics
1 2.01 What's in a Personal Computer (PC)?
2 2.02 What is Software?
Unit 4
1.10 In-Class Material 5 topics
1 1.11 Introduction, Visual Studio, File Types, Entry Point, Scope & Debugger
2 1.12 Memory, Naming, Variables, Operators
3 1.13 #include, User-Defined Types, Scope Continued, Read/Write to Console, Operators Continued
4 1.14 Functions, Header Files & Source Files
5 1.15 How C++ Works, Compiler, Linker & Preprocessor Statements
Unit 5
1.20 Assignment 0 topics
Unit 6
2.00 Preparation Session 1 topic
1 3.01 Parsing Input Types
Unit 7
2.10 In-Class Material 3 topics
1 2.10 Flow Control Statements - If and Switch
2 2.11 Flow Control Statements - For, While and Do-While
3 2.12 Flow Control Statements - Containers and For-Each
Unit 8
2.20 Assignment 0 topics
Unit 9
3.00 Preparation Session 2 topics
1 4.01 Naming Conventions and Why They Matter
2 4.02 D.R.Y. Code Principles
Unit 10
3.10 In-Class Material 3 topics
1 3.11 Pointers Part 1 - Intro To Pointers
2 3.12 Pointers Part 2 - Intro to Encapsulation, Stack & Heep Memory, dot operator, arrow operator,
3 3.13 Getters, Setters and References
Unit 11
3.20 Assignment 0 topics
Unit 12
4.00 Preparation Session 2 topics
1 5.01 Composition vs. Inheritance: The Age-Old Debate
2 5.02 What is Object-Oriented Programming?
Unit 13
4.10 In-Class Material 7 topics
1 4.11 Classes, Structs and OOP Architecture
2 4.12 Default Constructor, Parameterized Constructor, Copy Constructor, Initialization List & Destructors
3 4.13 Polymorphism, Compile Time Polymorphism, Function Overloading, Operator Overloading, Const Functions
4 4.14 Inheritance Part 1 - Derived Classes and Base Classes, “Is A” Relationships, Member Access Specifiers, Inheritance Access Specifiers
5 4.15 Inheritance Part 2 - Base Class & Derived Class, “is a” Relationship with Constructors, Constructors in Inheritance, Member Access Specifiers, Inheritance Access Specifiers
6 4.16 Function Pointers
7 4.17 Run Time Polymorphism, Virtual Functions & Interfaces
Unit 14
5.20 Assignment 0 topics
Unit 15
5.00 Preparation Session 1 topic
1 7.01 TBA
Unit 16
5.10 In-Class Material 6 topics
1 5.12 Event Systems and Function Pointers Continued
2 5.11 Containers Continued - Vectors, Maps, “auto” keyword
3 5.13 Casting
4 5.14 Template Functions
5 5.15 Smart Pointers
6 5.16 Composition, Has A Relationship and Components
Unit 17
7.20 Assignment 0 topics
Unit 18
6.00 Preparation Session 3 topics
1 6.01 Memory Allocation (i.e. Stack vs. Heap)
2 6.02 What is Version Control?
3 6.03 How to Download Git and Github Desktop
Unit 19
6.10 In-Class Material 2 topics
1 6.11 Git
2 6.12 GitHub
Unit 20
6.20 Assignment 0 topics
Unit 21
7.00 Preparation Session 0 topics
Unit 22
7.10 In-Class Material 2 topics
1 7.11 Example Input System
2 7.12 Example Game Loop (Win State and Refreshing Console Window)
Unit 23
7.20 Final Project 0 topics
  • Meet the Creator

Reid Gillis

Reid is a game programmer specializing in C++ and C# with games shipped in both Unreal and Unity. He trained at VFS in programming for games, web and mobile, and writing for film, TV and games. Reid started as a game writer who taught himself to code — which means he designs lessons with the hard parts in mind. This course is built to over-explain the topics that trip people up, so you spend less time confused and more time building.

Thayne went on to earn a Bachelor’s degree in Computer Science with a minor in Creative Technology from the University of Regina. Since graduating, he has worked with local businesses, providing tech support and improving digital functionality.

At Nanan STEM Academy, Thayne brings his enthusiasm for technology to the classroom, inspiring students to explore, build, and thrive in the digital world.

Ready to build your first game?

Join Godot 2D Game Development and go from zero to a fully playable, exported 2D game. No prior experience needed — just curiosity and a love of games.