- 30 hours on-demand video content
- Lifetime access
- 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 2022
This 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.
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.
"Awesome! Helped me learn something that had been a dream of mine."
It's impressive just how much information there is in this course while staying relatively short and approachable. Gustavo goes over everything always maintaining a delicate balance of giving enough detail while avoiding overloading the student. Critically, he also drinks the superior hot infusion ;)
"Finally! I've always wanted to make games, but figuring out where and how to start has been so intimidating. There is a ton of mediocre content online about gamedev and most of it focuses only on the very basics. Gustavo's content is empowering.
It's a nice mix of understanding the different moving parts that go into building a game and also the problems we try and solve in development. The course is a skillfully mixes coding, theory, design, and figuring out problems. It's rewarding. You take a step back after each lesson and see how what you learned made a real difference toward what you're building, you begin to see more of the big picture.
After finishing this course I can honestly say that it's given me the confidence I've needed to start seriously building the project I had only been dreaming about making. I cannot recommend this course enough."
"Great course for learning basics of game engine from scratch. Of all the books, courses and tutorials I have encountered, this is by far the best for learning how it all fits together into a small working game engine. This course takes you from the very first step, compiling "hello world", all the way to a working game engine with resource management, event system and scripting. After this course, I now feel inspired and ready to go ahead and learn more about engine design and making some fun games along the way. pros: cross platform (especially the focus on linux), minimal dependencies, working code all the way, teaching some modern c++. cons: liberal use of "auto" makes code a bit hard to read/understand when learning many new concepts."