C++ Game Engine Programming is a 149-lesson 31 hours 48 minutes self-paced course by Gustavo Pezzi. Most explanations of game engines stay theoretical.
Course facts
Lessons
149
Duration
31 hours 48 minutes
Level
All levels
Language
English
Updated
2026-09-11
Instructor
Gustavo Pezzi
Price
Premium
Most explanations of game engines stay theoretical. This one has you build a small 2D engine yourself, in modern C++, so the architecture stops being an abstract diagram and becomes code you wrote and understand.
What you'll build
Working from scratch, you'll assemble an Entity-Component-System (ECS) framework, handle how entities and components are organized in memory with performance in mind, and put several standard game-engine design patterns into practice as you go. The engine covers the game loop, SDL-based rendering, an event system, resource management, and memory handling — and you'll also bind in Lua scripting using Sol, so parts of the engine become scriptable rather than hard-coded.
Tools used
C++ as the core language
SDL2 for cross-platform rendering and input
GLM for the math
Dear ImGui for engine tool interfaces
Sol and Lua for scripting
No prior C++ is required — familiarity with basic programming constructs (loops, conditionals, functions, classes) in any language is enough to start, and everything runs cross-platform on Windows, macOS, and Linux.
Who teaches C++ Game Engine Programming? Gustavo Pezzi
Gustavo Pezzi is a UK-based computer-science lecturer (Pikuma) and one of the most distinctive teachers working at the intersection of low-level programming and game development. His material is unusual in the modern course market for how deep it goes into the foundations: assembly, computer architecture, classical raycasting / rasterisation algorithms, and the math underneath modern graphics.
His CourseFlix listing reflects that range: courses on 3D Computer Graphics Programming, Raycasting Engine Programming, 2D Game Physics Programming, NES Programming with 6502 Assembly, PS1 Programming with MIPS Assembly & C, Atari 2600 Programming, Compilers, Interpreters and Formal Languages, plus C++ engine programming and Lua scripting. Material is paid and aimed at developers who want to understand systems from the ground up rather than ship CRUD apps.
What lessons are included in C++ Game Engine Programming?
This is a demo lesson (10:00 remaining)
You can watch up to 10 minutes for free. Subscribe to unlock all 149 lessons in this course and access 10,000+ hours of premium content across all courses.
This course is a gentle introduction into the world of 2D game physics! We'll review all the beautiful math that provides the foundation for most physics engine
Master C++ fundamentals with Mosh Hamedani's course. Ideal for video games, IoT devices, and more. Enhance your coding skills with real-world examples.
With over 40,000 happy students and 12,000+ positive reviews, this course is Udemy's most popular course for learning ASP.NET MVC! ASP.NET MVC is a server-side
Have you learnt the basics of ASP.NET Core and Angular? Not sure where to go next? This course should be able to help with that. In this course we start from no
Enhance your C++ skills by mastering arrays, pointers, and other key concepts. Ideal for those with basic knowledge from part one. Course by Mosh Hamedani.
This course is a deep dive into the world of PlayStation programming! We'll explore the PS1 hardware, understand its sub-components, and learn how to code games
This course will teach you how to create a complete raycasting engine from scratch. We'll use an algorithm similar to the one used in Wolfenstein 3D. The final
This course is a comprehensive immersion into the command-line of Linux and other UNIX-like systems. We'll learn the most popular shell tools and introduce conc
This course is a gentle introduction into the world of 2D game physics! We'll review all the beautiful math that provides the foundation for most physics engine
This course is a complete immersion into the fundamentals of computer graphics !
37h 55m
Frequently asked questions
What prerequisites are needed for this course?
The course is designed for beginner programmers, so it does not require advanced prior knowledge in game development. However, a basic understanding of C++ programming would be beneficial, as the course involves writing engine code from scratch using modern C++ and libraries like SDL2, GLM, and Sol.
What will I build during the course?
Throughout the course, you will build a small 2D game engine using modern C++. The project involves constructing an Entity-Component-System (ECS) framework from scratch, allowing you to manage entities, components, and systems effectively. You'll also develop practical skills in rendering, event handling, and object management.
Who is the target audience for this course?
This course is targeted at beginner programmers who are interested in entering the field of game development. It offers foundational insights into game engine architecture using C++, making it ideal for those looking to understand the basics of creating and managing a 2D game engine.
How does this course compare to other game development courses?
Unlike some courses that focus on using existing game engines, this course emphasizes building a game engine from scratch. You will gain a deeper understanding of how engines work internally by exploring topics like the Entity-Component-System architecture and memory management, which may not be covered in detail in more tool-focused courses.
What specific tools and libraries are required for this course?
You will need several tools and libraries, including C++ for programming, SDL2 for cross-platform rendering and input, GLM for mathematical calculations, Dear ImGui for creating engine tool interfaces, Sol for binding C++ and Lua, and Lua for scripting. These tools are essential for completing the engine development tasks outlined in the course.
What topics are not covered in this course?
The course does not cover 3D game development or advanced graphics programming techniques. It focuses on 2D game engine architecture, specifically the implementation of an Entity-Component-System framework, and does not delve into complex shader programming or physics simulations.
How much time should I expect to commit to this course?
The course consists of 149 lessons. While the total runtime is not specified, the comprehensive nature of the content suggests a considerable time commitment. You should be prepared to spend significant time on both theoretical understanding and practical coding exercises to fully grasp the concepts presented.