What students are saying...

5 star
4 star
3 star
2 star
1 star
Jason Sutton
Jason Sutton
"Game Engine Primer! Great course for anyone wanting to get started with game engine creation. Also invaluable insight for those merely using an existing engine to understand what is happening, under the hood."
29 Mar 2024
Vilas Chitrakaran
Engineer Ph.D., C.Eng.
"Love these courses on Pikuma! I am doing Pikuma courses on the side as a hobby. Absolutely love them."
26 Mar 2024
Alexandre Canova
"Great course! Gustavo addresses various topics in a very efficient way, explaining in detail and gradually increasing the complexity, allowing students to follow along. With each class, we have something new and we look forward to seeing the next one. I will certainly purchase the other courses, thank you very much Gustavo."
25 Mar 2024
Onur Güleş
"Great course to get you started in game development."
23 Mar 2024
Lukáš Sedlák
CEO @ Volcanicc
"Excelent content! I'm profesional game dev with more then 5 years of experience (mainly in Unity) and programmer with more then 10 years of experience (games, mobile native, backed dev etc), and I've found this course very well made, executed and informative. Most of my time I have been using higher level languages such as C#, Java or Swift and this is very good C++ refresher too! I was able to learn a new ideas and I have a really good idea what to do next. From my side - money worth spent! Thank you Gustavo :)"
05 Mar 2024
"A great course for building a game engine from scratch! Gustavo clearly cares about 2 things: solving problems with code, teaching how to do that. He goes into the nitty gritty of how an Entity Component System game engine works, line by line. You'll learn a lot! And what stones he leaves unturned he makes clear, as to what the course does and does not provide; the rest is for you to build! A fully working 2D game from scratch in C++ along with learning and using a scripting language to top it all off. An excellent course for anyone looking to learn game development, regardless of any language you end up using, because the knowledge gained here will be used throughout the rest of your journey!"
04 Mar 2024
Pablo Lario
Unity Game Programmer
"Everything perfect!!! Exactly what I expected. I love how it is a gentle introduction to game engines, explaining everything in detail so that students can understand each piece before continuing to the rest of the topics. I have taken several YouTube tutorials on SDL and C++, but everyone just writes code. This course explain the meaning behind things, which I believe is a wonderful thing to learn!!!"
28 Feb 2024
Felipe Laso Marsetti
Technical Lead at Lextech
"Fantastic! Pikuma courses are of the best quality and this one is no exception. I thoroughly enjoyed putting together a game engine and learning tons of new concepts in the process. Can't wait to work my way through more of the existing courses, and am eager to see what new courses are released in the future 😺."
20 Feb 2024
Leonardo Valdes
Leonardo Valdes
"Buen Curso"
18 Feb 2024
Robert Pashov
"Great instructor, great content! 11/10. You rarely see an instructor that is so down-to-earth, friendly, and humble. The content is great as it teaches you two fundamental things at the same time: 1) how a game engine works; and 2) how to use said game engine to build your actual game. There is a bit of a learning curve with understanding ECS and data-oriented-design, however if you apply yourself and do the exercises carefully - you start to unpack it little by little. Thank you, Gustavo, for this excellent course."
13 Feb 2024
Alberto Rojas
Alberto Rojas
"It is GREAT!!!!"
01 Feb 2024
Miller Johnston
Software Engineer @ Lytx
"Lovely Course! One of the only programming courses I have ever finished! Professor Gustavo Pezzi has crafted a course that covers the fundamental concepts of 2D Game Engines while leaving plenty of room for the student to dig deeper and learn more on their own. This means the pace of the course is always moving forward, but still provides enough depth to make sure that nothing is just a black box that won't be explained. I loved this course and am excited for more Pikuma in the future :)"
29 Jan 2024
Kostiantyn Skrypak
Kostiantyn Skrypak
"Excellent course! The material is well-structured and the teacher explains it in a way that's easiest to understand."
28 Jan 2024
"An extraordinary educational journey!

The 2D Game Engine course with C++ and Lua at Pikuma.com has been a fantastic journey into the world of game development! The course laid out a clear and structured pathway to understanding the separation of the game engine from game data, a concept that is fundamental for any aspiring game developer.

Gustavo is a brilliant teacher, and his style of explaining every line of code was incredibly effective. It made the learning process (of coding in C++, SDL and Lua a 2D game engine) both engaging and comprehensive, enabling a true understanding of the 'why' and 'how' things work when it comes to 2D game engine development.

Gustavo's emphasis on the fundamentals, coupled with his practical approach, reminds us that there's always room to grow and that the journey of improvement is continuous. I strongly recommend this course to novices and experienced developers alike! The course is cleverly presented to make the complex world of game development accessible to everyone."
25 Jan 2024
Lionel Vergé
Engine Core Team Lead @ Ubisoft
"Excellent course the basics of engine programming! If you want to become an engine programmer this is a good course to start with. You will learn all the basics of game engine programming or at least have a good refresh on fundamentals. You won't learn to write super efficient C++ code but this is not the goal of this course. And more than all Gustavo is an excellent teacher who masters his subject."
22 Jan 2024
Mitsuo Takeda
CS @ Universidade de Fortaleza
"The best resource in the web! In my life i have seen so many tutorials on how to create your own engine, but none a so densely packed with information and approaches this one."
13 Jan 2024
Jonathan Donate
"Fantastic! The way Gustavo presents concepts made everything that I been trying to teach myself 'click'. I highly recommend this course."
29 Dec 2023
Nicolas Gallo
"Must take for those who take programming seriously. Phenomenal course! I've been eyeing this course for a while and decided to take the plunge when Unity fiasco started. I have learned so much that I'm creating my own game engine using Monogame and C#. I look forward to taking more classes with Pikuma!"
20 Dec 2023
Devin Jacobs
"Game engine from first principles! Like other Pikuma courses, this course is half high-level explanations and half code sessions. I pay most attention to the high-level concepts and then watch the coding sessions at higher speed to get the general idea. I then go and implement the concepts myself. This approach was a little frustrating early on, because there are a lot of complicated language features involved with the ECS implementation. This is just the nature of ECS engines. I made a few choices that slightly deviated from what the instructor was doing and ran into trouble. I had to refer to outside sources for help, but eventually got things to work and learned a lot in the process. My frustration was not because of the course, it was because I was doing things my own way--deviating from the course. The engine I built is not professional, but it feels like more than a toy as well. Most importantly, when I look at other game engines I have a much better idea what they are doing under the hood."
13 Nov 2023
Ken Rodgers
"Great Course! A complete, thorough overview of how ECS works and a great resource for some modern c++ techniques / syntax. Highly recommended!"
11 Nov 2023
Harry Tanama
Harry Tanama
"The explanations are very clear. Thank you!"
29 Oct 2023
Jerry Bradshaw
"Well designed course! Fantastic Instructor! I am excited about this course and increasing my knowledge of architecture, patterns and using libraries such as GLM and LUA!"
21 Oct 2023
Kenneth Rodríguez
Kenneth Rodríguez
"Such a Great Course! I didn't really grow up learning about computers, but I started by computer science degree a few years ago and became really interested in how things worked. This course has given me insight not just into how game engines are made, but how projects in general are done. It's such a good course if you like learning how thing work behind the scenes."
16 Oct 2023
Timothy French
"Great Teacher Very Big Topic. I feel he really taught me the basics of engine development here. I think he stretched my skill set working at the command line despite my rudementry c++ skills (I have plenty of C# and javascript skill and VBScript but the development cycle is the weakness) and he got me going with C++. Consider it a place to get started. Making a really solid game engine takes a little more architecture experience but I feel I could implement maintenance and debugging on an engine at this point."
05 Oct 2023
"Superb course! Thank you so much for creating this :) Since I love understanding things under the hood, such courses are indeed what I look forward to. Even C++ is new for me and I am learning a lot by this course."
14 Sep 2023
Gabriel Welvaert
"Great course for learning ECS for the first time. University-course level quality. Concepts are introduced incrementally and are expanded upon in a way that demonstrates the purpose and reasoning of the code design clearly."
24 Aug 2023
Tim Langford
Tim Langford
"Well, I have reached the end of the course and I must say - it was brilliant and exactly what I was looking for. The course is great if you want to understand the fundamentals of how a game a engine is put together. It goes through all of the fundamentals Graphics API, Input, Game Loop, Delta Time, ECS, Event System, and Scripting. At the end I feel as if I have attended a university course. You can tell Gustavo has a passion for teaching (and is a professional lecturer). I approached it consistently by trying to do a few hours day, and really looked forward to and enjoyed my study time. I am now looking forward to using what I have learnt to understand the topics more deeply. Thanks Gustavo!"
11 Aug 2023
Johannes Ballauff
"Great course! everything is explained very clearly even for somebody like me who is very new to c++. Thank you"
18 Jul 2023
Sven Paaß
Software Developer
"I really enjoyed the course. It has a good level of detail to understand the building blocks of a game engine. I had very much fun writing the code of the engine and especially the exercieses. Always getting my code up and running was not always straight forward, but I think that this helps learning. Integrating the scripting languange was an eye opener, since I did not do such a thing before. This opens many interesting possibilities. Thank you very much."
09 Jul 2023
John Tomberlin
InfoSec Engineer
"Fantastic Introduction and Primer! Working my way through the course now, and I'm enjoying every bit of it (except for the clunkiness of C++ environment setup and prep which is never fun lol). His method of teaching and how he thoroughly explains everything as you go along is critical and something that a lot of courses lack. You build things from the ground up and improve on them as you go along while learning the important and necessary principles and components of game development that you will carry with you as you move forward with your game development journey in the future."
16 Jun 2023
Joshua Wiggins
Joshua Wiggins
"The Introduction I have been desperately searching for!I just needed a simple foundation to help wrap my head around the basic architecture of a game engine. There's just nothing else out there: with many sources I've come across either focusing solely on creating a renderer or using some existing game framework. I feel like I finally have my start. Thank You Gustavo."
06 Jun 2023
Steven Johnson
"Another great course from Gustavo, thoroughly enjoyed! First time really using C++ in any depth and though some of the modern feature syntax is a bit rough, everything is explained in detail and all fits together nicely."
04 Jun 2023
Lukas Biton
"Great course, full of applicable ideas!

Overall an amazing course. I highly recommend it. I like to code and debug along and this course was great.

- Environment set-up: So many courses or textbooks have hurdles around getting the environment set up properly, or decades-old dependencies not being available anymore. Gustavo does a great job there and over the whole course I don't think I was blocked more than 30 minutes. This might not sound like a big deal, but so often you sink a few hours into a course only to discover half-way through that you have to spend days trying to fix arcane issues with no documentation. None of that nonsense here.

- C++ content: Gustavo is an experienced C++ programmer and it shows. In this course you'll learn about templates, unique pointers, some classic C++ syntax (like avoiding for loops), and function callbacks. The syntax gets ugly, but Gustavo always makes it easy. In terms of prior experience, before this course I had followed Bjarne Stroustrup's Programming Principles book, and before that I have been programming in Python professionally for a few years. I think this course goes a bit fast if you're still learning the basic C++ syntax, but for me it worked great as a "first big project". It was especially helpful for all the industry wisdom Gustavo imparts throughout the course.

- Lua content: Mixing a scripting language with a compiled language is something I knew nothing about before this. Betweem C++, Lua, and the imgui library, I feel like I didn't just learn game design, but a lot of very useful skills for making simple applications in C++. In terms of prior experience, coming from Python Lua felt very familiar.

- ECS and game design patterns: I think because of C++'s syntax quirks, some of the ECS design gets hidden behind difficult to read boilerplate code. That being said, Gustavo does a great job of focusing your attention on the big picture and what really matters. I don't know of another course that teaches the concept so well. To be honest, by the end of the course I felt comfortable enough with C++ and the code base to watch the videos on higher speed.

- Instructor: Gustavo is likable and his personality shines through the whole course. He loves to teach and he empathizes with the students' issues a lot. Often I would think "oh that looks difficult" only for Gustavo to say that just a few seconds later and to focus precisely on the difficult part."
31 May 2023
Alexander Kolesnikov
Alexander Kolesnikov
18 Apr 2023
Julio Angulo
Julio Angulo
"Nice introduction to video game dev! This a great course that teaches game development from scratch. It helps to understand the inner of the game engine.

So this is a course for you if you want any of the following:
- You want to understand how works the game engines.
- You want to learn how to develop video games and have curiosity about how they are done in low-level detail.
- You want to practice C++ focusing on game dev and/or graphics.

This might not be a course for you if:
- You only want to create video games and get the stuff done without worrying about low-level details.
- You already have lots of experience in C++ and videogame development."
13 Apr 2023
Avan Johnson
Avan Johnson
"good but hard"
03 Apr 2023
Carlos Alfredo Castillo
Carlos Alfredo Castillo
"This course is amazing!

I recommend this course to anyone looking to start learning about game development in C++, and the details behind a simple 2D game engine, also the integration of all the different libraries necessary to give a real functionality to your game engine and final game.

I have learnt more with this course about game engines, game programming, modern C++ programming, scripting integration, some design patterns related to game development, than any other course out there. The most important thing is that you find it all in one place, no need to be jumping from book to book or from one website to the other gathering information. You have it all in this course.

More importantly, Gustavo is a great teacher, and his explanations are very clear. 100% recommended!"
31 Mar 2023
"The Best Game Engine Course for Beginners IMHO!"
26 Mar 2023
Dmitriy Tunik
"Great course!"
25 Mar 2023
"Fantastic course! Incredible lectures packed with amazing nits and bits about game development and high-performance software development. Can't wait for the next one :) Would easily recommend this to anyone that is passionate about Computer Science and "how things work". Thanks, Gustavo!"
02 Mar 2023
Waldemar Zeitler
"Well understandable introduction to game engine programing. This course was very understandbale, even with all the C++ shenanigans and all lead to a good starting point for further personal development. So I definitely recommend this course for all C++ users!"
01 Mar 2023
Ramtin Javanmardi
Data Engineer @ Mentimeter
"Im actually surprised how good this course is not only for learning game engine programming fundamentals but also c++ programming concepts. Sensational work!"
25 Feb 2023
Aitor SF
Aitor SF
"Okay as first introduction to game engines. I like that Gustavo keeps things simple to teach the fundamentals of how game engines are architected. It explains in depth hims code and the course is very well structured. I recommend it if you want a gentle introduction.

However, I want to give a small improvement feedback. I think that a lot of effort is being made on teaching c++. The course would be more interesting reducing the number of videos explaining the c++ lenguage. Learning c++ is a big topic and try to fit teaching c++ is a waste of resources that could be spend into more game engine related topics like creating an editor. It would be better if people only take this course knowing at least the very basics of c++. Also the way c++ is used in this course should not be taken as an example. The use of shared pointers are totally unnecesary, they seem to be there only to teach people about their existence (again a c++ topic). There are too many memory allocations and copies being performed. I would agree the main point of the course is not performance. And I like the course is in c++ because it is what game engines at the core use. But if we don't need performance, why would we use c++ in the first place?

Improvement points:

- The type of components that exist is are known so we can save allocations using a plain array.When we run the game the engine already know all the types of components that exists. This only changes during development. We could use a simple enum to keep track of this and resize the array at compile time. This way you don't need to allocate which is expensive.

- The number of types of systems are known as well. This only changes in code during development so not need of vector usage here.

- Reduce the use of shared pointers. Most of the time we only need to modify an object in the registry. We can return a reference to the underlying object to change it.

- The Pool class is just a wrapper to a vector we could just typedef vector.

- The maximum number of components is known, in this case 32. We can use an array of 32 lenght on the stack for each pool.

- We can replace the Pool class for a more advance data structure like a free list to manage adding entities.

- We do not need to remove systems at all."
19 Feb 2023
Paolo Astolfi
Paolo Astolfi
"A really great course with a fantastic teacher! This is the best online course I have ever attended. I have learned a lot and enjoied programming with Gustavo. I have already started the Game Physics Engine Programming course and after that I will also take the 3D Computer Graphic Programming course. Really good stuff!"
06 Feb 2023
Jerome Sniatecki
"This was a very fun course and I appreciate the breadth of topics covered. So much more to learn and explore... Thanks for the jumpstart!!"
26 Jan 2023
Pablo Weremczuk
Full Stack Developer
"If you were following @jonathan_blow or @cmuratori but you feel that the way they teach is not your thing, consider checking a @pikuma course called 'Creating a 2D Game Engine' where you'll learn about ECS, C++ DOD and many other things from a person that is good at teaching. The course is paid but you have nothing to loose, there is a free sample where you can check if the content of the course, the tools, the analogies and even the voice of the teacher match the way you learn. I'm enjoying the lectures a lot. I learned from books about Data Oriented Design, I made open source contributions in C, I even published a game on steam, but this lectures help me to put everything together and to upgrade my knowledge."
09 Jan 2023
Nat Smith
"Great course! I have been having a great time with this course! The concepts are well explained and the functions from other libraries are explained enought that I can explain it to sdomeone else."
23 Dec 2022
Rudi Hammad
Founder of Chimera Studio
"Fantastic course! Great teaching methods and content. Lessons are clear and the course is very well structured. A great introduction to game engine programming and ECS architecture."
20 Dec 2022
Robert Oze
"I'm a senior software engineer on business side, and I'm interested in game development and game engine in spare time. Gustavo presents this course clearly and interesting. I like ECS, Lua and ImGUI parts. I used Lua, but this course presented it easier to integrate into engine. Also I heard the other two technologies, but I understand these parts easier."
19 Dec 2022
Ednildo Silva
"Very good."
11 Dec 2022
Jesse Sher
"Good But very long... The coarse was amazing with its videos and everything but it got long a bit boring after a way. Still amazing and I learned a lot. Best coarse I've every done 10/10. Maybe try shortening the videos more next time."
10 Dec 2022
Michael Kurta
"Great course! Having most familiarity with C, and very little of C++, this was a good insight into how game engines work, how to program for contiguous memory access, and how Lua can be used to add game flexibility to a larger 'non programmer' audience. I didn't completely understand all the C++ STL concepts in detail, but I was able to grasp most of it and I will run through this course again to develop a deeper understanding."
07 Dec 2022
Abraham Hoogendoorn
"Thorough instruction, somewhat entertaining, effective."
27 Nov 2022
Ethan Whitesel-Jones
"One of the rare online courses I completed!

The instructor moves at a good pace, explains everything in clear detail, and builds each piece upon the previous one not leaving anything out or doing any magic handwaving.

I am a C# programmer, and did a brief intro course on C++ before and this course was great to help me get more used to C++ syntax and idioms. I want to learn the Godot or Unity engine for 2d games and hope the instructor makes a course on one of these pre-made engines one day.

A very practiced and talented instructor."
26 Nov 2022
Michael Elrod
"Worth every penny!Gustavo was very informative at every step of the way and now that the course is over I feel pretty confident I can build on this project further to really create something unique with what I've learned."
26 Nov 2022
Christien Mutton
"Drops serious knowledge!

There's a little 2d game, I don't remember the name of it exactly, but there is a character dropping things from the top of the screen and your little character has to run along the ground and catch what's being dropped in a little bucket. This is what I feel this course is like, so much knowledge is dropped throughout the course it's quite incredible. And the excitement watching things fall into place piece by piece as we go along is oddly a more thrilling feeling than any AAA game can give me.

Excellent stuff Gustavo, thanks so much! Valeu amigo :)"
11 Nov 2022
Albert Tsanaclis
Albert Tsanaclis
"This is really an amazing course!

I learned a lot of C++, game engine architecture, integration with Lua, and the running project is incredible.

Thank you!"
24 Oct 2022
Arturo Nereu
Developer Advocate at Unity
"Learn a million things while building a small 2D Game Engine.

I don't think there's any other resource that guides you step by step into building a Game Engine. Gustavo does a fantastic job teaching many concepts and technologies while guiding you through going from zero to a small configurable engine. His teaching style is dynamic, and while he doesn't go too in-depth into any particular topic, he'll give you hints to discover more. The limit will be your curiosity.

I encourage you to give this course a try. It is a small investment compared to the vast knowledge you'll get, even if you are not planning on building your engine.

Some highlights:
- ECS implementation!
- Modern C++ concepts.
- Lua integration for scripting."
15 Oct 2022
Oliver Dickson
"Awesome! Helped me learn something that had been a dream of mine."
14 Aug 2022
Ivan Vodopiviz
Game developer
"Just excellent!

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 ;)

100% recommended!"
08 Aug 2022
Kyle Halversen
"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."
02 Aug 2022
John Magne Bakke
"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."
31 Jul 2022
Ifeanyi Oraelosi
Software Engineer
"This course emphasizes the 'why'! It's refreshing to have an instructor run a program with errors so they can explain what the errors are and how to solve them. I really appreciate this a lot."
17 Jul 2022
Qiushi Yan
Data Science at Vanderbilt University
"Amazing content and teaching style. The instructor has deep expertise in the subject matter and organizes course materials in a very approachable way. Exercises are well designed to complement learning."
08 Jul 2022
Simon Steinaa
Software Developer
"Very inspirational and well explained. I love his way of teaching complex stuff."
23 Jun 2022
"It really amazes me how complete the course is. This course is amazing because Gustavo does not leave anything and anyone behind.

I already had knowledge of C++ when I enrolled in this course and I initially thought to skip over all the lectures which dealt with topics that I already was familiar with. Let me tell you that I'm glad I didn't skip anything. All the lectures are incredibly well laid out and you might still learn something even on already known topics. This course taught me how a game loop works which before was just pure black magic to me. I couldn't understand how you could serialize a process of updating and displaying things when by a gamer perspective everything seems to be happening at the same time.

I also enjoyed to learn the core mechanics of the SDL2 library and last but not least to learn about the ECS system which prior this course I didn't even know it existed.

I can say that I'm leaving with a better knowledge on the subject and that I have enriched my experience bag with useful information that will become handy in the future."
13 Jun 2022
Henrique de Lima Florindo
"Great course! I've really enjoyed it. It helped me understand how a game engine can be architectured, even though i don't plan on using modern C++ features on my projects. I just wish it went more in depth into alternatives for ECS, it seems great for a complex and generic game engine, but seems a bit overkill for small games, which is what i plan on making. Besides that, i do not regret the time i spent taking this course, and will likely try other courses from Pikuma later on!"
29 May 2022
Pablo Sanchez
Gameplay programmer at Pentakill Studios
"Gustavo brings an Awesome course, made by heart and with an open mind, I cant recommend this course enough!

It is awesome from the beginning, you will learn key concepts that will keep in your brain how to think and design an game engine. If you want to learn c++ and how to endure in this amazing world of patterns: just get this course, there isnt any course better than this in my humble opinion."
23 May 2022
Michal Jarnot
"Can't get better than this!

I have very little experience with C++ and the attention and level of detail that I during this course is hard to describe. If there were more teachers like Gustavo then there would be fewer javascript developers in the world."
09 Apr 2022
Thorbjørn Hedegaard
"Great for learning C++ and Lua! I think that this was a good way to get into C++."
30 Mar 2022
Tauan Flores
"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."
26 Mar 2022
"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."
06 Mar 2022
T Young
"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."
22 Feb 2022
Bill Jones
Bill Jones
"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!"
19 Feb 2022
Bob Marth
"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. ;)"
17 Feb 2022
Jaikrishnan Arun
"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."
12 Feb 2022
Joe Plain
"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."
03 Nov 2021
Shawn Wheatley
"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."
06 Sep 2021
Michael Leung
"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."
01 Sep 2021
"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."
01 Aug 2021
"As with all Gustavo's other courses - absolutely amazing!

I enjoy all content from Gustavo, this course is no different.

Gustavo is an incredibly knowledgeable lecturer with a talent for teaching and explaining complex topics!"
15 Jul 2021
Damien Hanns
"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."
26 May 2021
Ajinkya Borade
Ajinkya Borade
"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."
26 Apr 2021
Joseph Kennedy
"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 :-)"
07 Apr 2021
Ji Park
"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."
02 Feb 2021
Dustin Clark
Controls Engineering Technologist
"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."
30 Jan 2021
Joan Sabater
"Amazing teacher"
29 Jan 2021
Pedro Ganme
26 Jan 2021
Javid Gajievi
Javid Gajievi
"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!"
26 Jan 2021
Dylan Bennett
Tech officer at Portland Indie Game Squad
"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."
25 Jan 2021
Cristobal Andrade
Full Stack developer at Motion Displays
"Exellent course. I really enjoyed much this course. Is a really good course in terms of fundamentals. Exellent professor. Thanks for the course."
15 Sep 2020
Antonio Herrera Martin
"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."
08 Apr 2020
Milos Stojanovic
"Great Gustavo!"
26 Jan 2020
Alessandro Pacifico
"Really nice! Gustavo is a great teacher and tries to explain everything in detail."
04 Dec 2019
Nicholas Redi
Nicholas Redi
"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!"
06 Oct 2019
Francisco Esquibel
"Excellence course!"
16 Aug 2019
Sam Gooday
"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!"
20 Jul 2019
Σπύρος Μιλτιάδους
"An amazing course by an amazing teacher! Thanks for carefully designing the course
its one of the best resources out there.
20 May 2019