Journey to create a game engine with C++ / SDL2. Great, updated resources?


Hello everyone.

I have been working in the gaming industry for the past 10 years, mainly as an academic by teaching game production in many countries (just came from India where I gave a Master in Game Production)

But this year, I want to fulfill my dream: create my own video game.

I have a BS in CS and my passion had always been inclined to create my own game engine.

During these years I have been learning and creating small projects with many Many tools and languages, including SFML. But I have decided that I want to work with C++ and SDL, at least to begin with.

I am starting to gather all the information I can about SDL. I found some tutorials on YouTube and LazyFoo’s classic tutorials are awesome.

Besides all these, is there any good list of resources that you can offer me related to learn SDL (and C++ too) Like from 0 to hero?

I followed a tutorial on YouTube to create a Tetris game in SDL ( but honestly I got discourage, besides it was too fast, he didn’t teach me anything about the current implementation of the code.

I don’t mind at all reading from a book, article or video.

Thanks for your time everyone.


I came across a title recently, “The Black Art of Multiplatform Game Programming”, by Cengage Learning. Very easy to follow and its introduced by Andre Lamothe. He (Jazon Yamamoto) covers mostly SDL 1.2 but does have a chapter on migrating to SDL 2. Check out the website and download the example code and video files to get a grasp of what material is covered. Good luck on your engine!

Book Website


Hey @robhilly,

Thanks for your kindly response. I have followed some books from LaMothe (those amazing “The Black Art of …”) but I didn’t know they have worked on one using SDL. That’s amazing, I am going to take a look at it.

Keep having a great one!



not sure if this is super instructional but I’ve been fiddling with this 2D game engine on and off for the past 2 years. You’re most welcome to mess around with it. Not sure it’s good or even the right path but it has always been a good testbed/start when building small prototypes, testing design patterns and algorithms.


Thanks for your kindly reply.

I am looking it right now. Looks wonderful, you have a good work there! Gonna play with it.

Thanks for sharing.


You may need some GUI for the game, it may make no sense to make it without GUI, as GUI can be done quite simply. You may look at my GUI widget toolkit, this is in another thread here, maybe you saw it [kiss_sdl] (Kiss_sdl - Simple universal GUI widget toolkit for SDL) . As you mentioned LazyFoo, if you want to make a GUI similar to the code in the LazyFoo tutorials, so that you don’t need to know much more than is written in these tutorials, yet you can change everything there, then that GUI toolkit may be for you.
kiss_sdl - Simple generic GUI widget toolkit for SDL2


Thanks @actsl for your reply.

You are right about using a GUI, and the one you create looks amazing. I am going to try it out.

Thanks once again!


Just to write it here too, kiss_sdl is now at the following link, for the time being, it may be back at its original url again.


Hi, I have just started a tutorial series on youtube you may find of use. This will take you through the process of creating a 2D engine and in the future a game using SDL2 and C++. In each video I am going to implement a new feature. And good luck with you dream!


Thanks buddy for the update. Let us know if the url is back to the original again.

Hey @CarlBirch this is fantastic! Exactly the kind of resource I was looking for. I am finishing some other tuts, as soon as I end, I will jump to yours. Thanks so much for this.

Thank you!


Hi I am learning SDL2 right now. I am willing to build a 2D game engine on top of SDL2. Hope it works. :slight_smile: :blush:


Yes it’s back to the original now, .
kiss_sdl - Simple generic GUI widget toolkit for SDL2


Thanks @actsl, I have updated my bookmark. Keep having a great one.


Totally forgot about this post. I’m glad you liked it. I’ve been getting a lot of traffic to the github page lately and a lot of it apparently came from here. If you’re still using the library feel free to hit me up with ideas or changes. Pull requests are always welcome. :smiley: