- 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 February 2022
"Can't get better than this!
"Great for learning C++ and Lua! I think that this was a good way to get into C++."
"Just do it. Amazing course, I've read a lot of books about make c++ engines using libraries to try to start learning, but this course makes everything simpler for your journey, i would recommend do this course and the continue your studies."
"This course FAR exceeded my expectations.
I bought it with the aim of building a DialogueBoxSystem, a la Final Fantasy. While that particular Component/System combo was never created, the course provided enough examples that building one from scratch won't be a problem. Another bonus? This course upgraded my game coding skillset from the 90s-era "No framework for you, tiny Shareware dev" to the modern ECS style. I'm definitely a happy customer."
"The perfect course I was looking for.
I was recommended this course from the SDL forums and it's perfect for making a game engine.
Gustavo has a lot wisdom to share and I'm learning a lot."
"Bravo! Outstanding Content.
Clear & Concise. I absolutely loved this course and I only wish there was a part two for refactoring and perhaps showing how to build a game GUI with state transitions. I know the course has some older versions of Lua and Sol but overall I used all new SDL2 components and have the game running on Windows & Mac (M1).
If you want to understand C++ ECS Systems with component templates then this is the course for you!"
"One of the most invaluable courses for new people interested into game programming!
Gustavo Pezzi is one of the best online teachers I've come across. He explains some of the most important concepts when getting deeper into programming and his teaching style really made things I struggled with on my own (Components/Systems/Adding Lua) a complete breeze.
I have all of Gustavo's courses and I've enjoyed every single one of them and have always came out a better programmer because of them. If you are new you will eventually come to an obsession about design patterns and components and it can really throw you for a loop. Something about having something all sync together nicely is very rewarding. He explains a great ECS design and provides reason why he went the route he did. Components, Systems, Animations, Data Oriented Design, and even gives you the keys to learning how to incorporate Lua. He also drops in a little bit of Dear ImGui a popular GUI library used a lot of the time for debugging (you see it everywhere).
Complaint: I'd love to see an efficient scene/state machine, quad trees, and some pathfinding, but it's impossible to dock any points based on all the content stuffed in this course. My really only complaint, and it's a petty one, is I wish there were even more exercises to really challenge the concepts learned in the chapters. This is something anyone can do themselves, but it's nice having someone as great and experienced as Gustavo providing the challenge so you could be sure to stay on topic and perhaps not adventure to far off of the point. With that said he does challenge you to create a map editor at the very end. I personally rather read Tiled Editor maps exported to the Lua format. Thanks Gustavo! Looking forwards to any future courses, I'll be first in line. ;)"
"Nice Intro to 2D Game Engine. I really enjoy the pace and how the instructor explains everything but I have some gripes with the architecture of the engine and how object oriented it is. I get that C++ is part of the industry culture and most studios use OOP but in this course in particular I feel as though the instructor falls to OOP through rote mechanisms and doesn't really give a sense of why OOP helps or why some of the structures need to be so fleshed out before it sees any use. The development feels as if it is prioritizing the fleshing out of pre-known structures first and does not seem to be informed by immediate needs and for a lot of the times I'm relying on faith that these structures will make sense later. Another point I would like to bring up is the use of modern C++ "features" such as templates and generics in a course that claims to be data oriented. I love that the course has a section on data oriented design and speaks about memory and encourages the learner to think about how things are laid out in memory but at the same time, the use of templates and smart pointers - while it helps the programmer sometimes, they also betray memory contiguous-ness and introduces pointer redirection and overhead - all hidden from novice programmer. And lastly, the use of so many libraries in a course that claims to be "from scratch". I get that these libraries help and don't really affect the game-play much v/s a hand-rolled one, but the course is hardly from scratch anymore so why make that claim. I know I pointed out a lot of my frustrations with the course but now that that has been said, I am thoroughly enjoying the course and am learning a lot despite my frustrations. I am following along in C and not using any libraries - mostly using the course as a guide rather than a complete follow along and I am learning a lot and I am glad that this course exists."
"The best teacher I ever had and the best courses I have ever seen!
I took many video tutorials and read many teaching books for the last 20 years, but I have never had a teacher as good as Gustavo! His teaching style and tutorials are so interesting, fun and easy to follow that I watch them in the evening instead of Netflix or a movie.
I wish I had teacher like that 20 years ago when I first tried to learn programming but gave up because books and tutorials were too boring and not easy to follow. Also in the end they left you with knowledge that is not really useful or enough to do anything that is close to the finished product. Another great thing with Gustavo is that in the end you really make something. Almost a whole game.
I never wanted to learn databases, I find them too boring, but if Gustavo makes database course I will learn them too! He is that great of a teacher! Even database course would be fun and interesting."
"I’ve completed about 15% of the course and so far it has been fantastic.
The teacher provides great, in-depth explanations each step of the way. Highly recommended if you want to know how a basic 2D game engine is built in C++ and SDL."
"I've been looking for a long time for a course like this, where things are explained step by step, without magic tricks or black boxes. I really appreciated how this course provides a detailed birds-eye view of the fundamental aspects of a small but functional game engine. Being a gamedev and an engineer, I like to build things from the ground up, and understand what I am doing in the process. This course gives you the basic building blocks upon which you can create and expand, strong in the knowledge of what is the right approach to pursue."
"This is an brilliant course. Teaching great, methodical and easy to follow. Content great, well organised and covers the subject areas well. Pacing of the course was really good, always moving forward but not too fast. Instructor was easy to understand and responsive to questions and issues. If you are interested in this course, even just a little, I would definitely recommend you enrol. My experience with this course has been so good that I will definitely be going on to the other courses available on this website. 5 stars, easily earned."
"Once you learn C++ Basics this course is what you should take. It will make your learning journey in C++ OOP great course for 2D gamedev. I'm using windows and had no trouble following the course."
"I recently finished Gustavo's Assembly language course for the 6502 CPU, and I was impressed with the content and how easy it was to build a full Atari game. This course is equally impressive and easy to understand, and I came into it with a small amount of C++ experience. I am still early in the course, but I am so excited and happy with this course that I want everyone to know Gustavo is an outstanding teacher! The skills he has taught me will serve me well as I pursue a software engineering career this year in Silicon Valley. Thank you so much Gustavo, for being the best teacher I have encountered for computer programming. I shall not forget where I started and how much you have helped me :-)"
"This Course Great "C++ 2D Game Engine Development" was a great course. For many years, I wanted to create a game from scratch without using any popular game engines. I was curious about how a lot of games worked under the hood. His teaching style and pace were very good. Also, the exercises helped very much to reenforce the learning. I am so happy that I now know the fundamentals of creating a game engine. This felt like I have been well educated on the fundamentals of the subject matter. I am so glad that I took this course."
"This was a wonderful course and provided great insight of how to start a game engine. There is still plenty to do and to continue my education of game engine programming, I will take what I learned from this course and try to build an editor from some the the concepts. I recommend this course to anyone that is interested in game engines and c++ as a wonderful introduction. Thank you Gustavo, I look forward to taking some more of your courses in the future."
"The Best Course I've Ever Taken! Thank you Gustavo Pezzi! While learning game programming, I also gained deep insight into C++ and Game Development. I am very much excited to see more from Gustavo!"
"Absolutely phenomenal course!
This was one of the best online courses I've done in a *long* time.
The progression of topics is extremely smooth and well-thought-out. The depth that each topic covered is just right so as not to overwhelm you, but also not leave you in confusion as to what exactly you are doing. You finish the course with a sense of skill, empowerment, and inspiration, rather than feeling like you only have the know-how to implement *exactly* what was covered in this course and no more. It's the mark of truly good educational materials.
I already had a fair amount of coding experience in languages such as C#, Python, and Lua, but almost zero experience with C++. This course was perfectly pitched to my level of experience. It didn't try to go through extremely tedious explanations of basic programming concepts, but rather it respected my time and existing knowledge and gave me the information I needed to understand what we were doing in C++. There were also plenty of times where fundamental C++ concepts were repeated so as to really drill them in for people inexperienced with C++, and I really appreciated that.
Another thing I loved was that the instructor is writing all the code alongside you from scratch. Every file starts out blank and is filled character by character, line by line, as you build up the code. Sometimes intentional directions are taken that have to be back-tracked and changed or fixed, but it's not because of incompetence or bad planning in the course, but rather to give you a further understanding of *why* you are doing something, not just blindly following along with what's being typed. And to top it off, all the code is being written in a visually bare-bones text editor (vim), which means that the focus is on the *code*, not a fancy IDE and all its bells and whistles being a distraction. This is more important than it sounds. (This doesn't mean *you* have to use vim, of course, but having the code written this way by the instructor is very powerful for keeping the focus on the code you are writing.) Only a couple times toward the very end of the course is there code for a lesson already written, but by that point it's appreciated and it's actually a respect of your time.
Lastly, the number of powerful concepts packed into this course is just gold. I mean it. It's astonishing that this one course delivers all that in a streamlined, easy-to-understand, easy-to-follow set of steps. You could easily have an entire course on just using SDL, or just how the Entity-Component-System architecture works, or how to embed Lua into your C++ program. On top of that, it would have been so easy for this course to be just a messy jumble of those concepts all crammed in together, with no real separation of ideas. Instead, this is laid out in such a way that each topic is approached smoothly and in a way where you feel like you have a solid grasp of it before moving on to the next topic. I am an educator myself and have written my own coding courses for all ages and experience levels. I recognize the monumental amount of work that has gone into making this course what it is.
Trust me, you don't want to pass this one over. It is well worth the money.
Thank you very much for creating this course! My head is bursting with ideas for so many new projects directly as a result of what I got out of this course."
"Excellent introduction. It gives a basic but useful idea of how to start and how are the basic cogs inside a game engine. You can grasp the introductory concepts and start building from there into more complex topics afterwards."
"Really nice! Gustavo is a great teacher and tries to explain everything in detail."
"A really good introductory guide to SDL! Before this course I had only seen some guides around the web about the SDL library, I can confirm that this course provides a broader view of the approach to use to develop a well-made 2D game, and above all, Gustavo is really good at making you immerse yourself in the logic of game engines and make you understand the mechanism behind a clear and clean programming. After this course I feel perfectly capable of developing a 2D game that I had been thinking of doing for a while!"
"Very informative! As someone who dabbles in programming, I found it very easy to follow. Gustavo presents the material in a friendly and thoughtful way, and explains concepts such as creating an Entity-Component System and integrating with Lua in accessible terms. I would highly recommend this course to anyone who wishes to gain the experience and confidence needed to write their own simple 2D engine. Thank you for making this, five stars!"
"An amazing course by an amazing teacher! Thanks for carefully designing the course
its one of the best resources out there."
"This is one of the most thorough and best courses I've ever done on game development, and I've done quite a few. The information is easily digestible and useful. The structure of both the course and engine are beautifully organized. There are also plenty of opportunities to implement what you're learning through exercises. This is a must-have course for anyone looking to build their own 2D game engine. I can't recommend it enough."