- 30 hours on-demand video content
- Lifetime access
- Live meetup
- Downloadable resources and exercises
- Certificate on completion
- Access on mobile and desktop
- Secure checkout via Credit Card or PayPal
- 14-day money back guarantee
- Last updated January 2024
$59.99
ENROLL NOW FREE PREVIEWThis course is a gentle and comprehensive introduction to the fundamentals of 2D game engine architecture. We'll discuss several of the most popular programming patterns used in game development and try to put all the theory we learn into context by coding a small 2D game engine using modern C++, SDL, and Lua.
We will write, together, a small ECS framework from scratch to manage our entities, components, and systems. We will discuss how engine programmers design their code and how we should think of organizing game objects in memory with performance in mind.
We'll try to write most of our engine code from scratch. All these libraries and tools are cross-platform, so you'll be able to code along with either Windows, macOS, or Linux!
The target audience for this course are beginner programmers that wish to learn more about how C++ works in the context of game development. Therefore, students must already know how to code and be familiar with basic concepts of programming and logic. You should be able to write if-else statements, loops, functions, and classes using simple OOP.
You do not need to know C++ before enrolling; many successful students have a background in web, mobile, and game development, working with languages like Java, Python, Ruby, Go, Swift, JavaScript, Ada, Zig, Kotlin, and many others.
This course is not just a simple tutorial on how to create a game with C++. This is the opportunity for you to think about the abstraction of what a "game" really is and all the pieces that need to interact to make them happen. More than that, this course allows you to write from scratch the code of a small C++ engine that can be used to create many types of games.
We will also touch other important topics like ECS, data-oriented design, STL containers, C++ templates, game loop, SDL rendering, event systems, asset management, memory management, and performance. And finally, we'll also learn how to embed the Lua language into our native C++ code to add scripting power to our engine.
While there are other resources about game engine development out there, they are either too theoretical or overwhelmingly long. If you are looking for a gentle introduction to the world of game engine programming and want to learn how games really work under the hood, then you should definitely take this course!
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.
73% of our students come back for another course
We don't offer discounts on our courses. Ever.
"Love this course! So far I'm only 20 - 25 % into this course but so far I love and and highly recommend."
"A Fantastic Introduction to Game Engine Design!
Having never used C/C++ and only having some background in Python and Java, this course was a great starting point for expanding my coding knowledge. Growing up with multiple gaming influences, I've always had an interest in creating gaming environments—a passion I never really had the chance to pursue until the last few years. Knowing that much of the gaming industry is rooted in C++, I did some research and found introductory courses and learning resources online. That's when I stumbled across Pikuma's courses.
Since I was completely new to the language, I decided that following along with a structured lecture series would be the best approach. I created an account, completed the free tutorial, and was sold shortly after. Over the next four weeks, I started each day with an hour or two of lectures, slowly building my understanding of the core concepts required to create common engine elements.
There were a couple of times when I had simple typos in my syntax and couldn't figure out what had gone wrong. Even though the course was published several years ago, Gustavo was still actively monitoring the discussion boards and responded to my post within 24 hours, helping me recognize a simple capitalization error.
The course was fun, well-paced, and easy to follow. The updated source code provided at different intervals was also helpful when pausing the video didn't give me the full view of certain sections that I needed to troubleshoot.
I highly recommend the course to anyone looking to learn foundational concepts of engine development using modern C++17, along with integrating libraries like Lua, Sol, and SDL.
After taking this course, I wish I could attend an in-person university course taught by Gustavo, but I'll happily settle for taking another Pikuma course instead!"
"A great course! A course that teaches you how to program in C++, as well as simple ECS, and even gives you pointers in how to improve the code. I highly recommend it."
"his is exactly what I was looking for! From 'scratch' as the title says."
"A Very Good Course for Beginners to Start with. Overall, i think the course is great for people that know some c++ but are completely new to game engine. This course help me a lot with many basic game engine concepts."