As of today, I’ve applied to 148 positions. 35 Rejections. Lots of ghosting.

It’s been a grind. I’ve enjoyed the opportunity to speak with companies, put my interviewing skills to the test, and learn about what the market looks like.

In addition to all the high level skills I mentioned in the last post, I’ve started refreshing some current skill sets. Python and C++ - notably C++. There have been some interesting additions to the language since I last played with C++14.

Rather than watch YouTube tutorials or read a book, I’ve opted to learn using a real-world example: build a 2D game engine.

Full clarification: I’m not going to write Game Maker - still my favorite engine to create games with. Rather, my task is to integrate with existing solutions to build out a simple engine that can be used to replicate a game I created in Godot: Gate Crasher.

Tech Stack

IDE

Going to use CLion from the fine folks at JetBrain. Normally, I’d just use Visual Studio. Unfortunately support for Mac has been dropped. Toggling between a Macbook and my desktop (Windows) is important.

CMake

CLion has great support for CMake, which will be the build system of choice for this side-quest.

Simple DirectMedia Layer

SDL3 will be the abstraction layer of choice for handling graphics, sound, and input devices.

Collisions

Box2D, the gold standard for 2D physics engines, will be used to handle collision detection. Initially, there is no plan to use the physics engine.

ECS

Probably overengineering a bit, but EnTT will be used for the Entity Component System (ECS). Probably not needed for such a small project, but using this as an opportunity to learn the system.

User Interface

Probably no surprise to anyone who’s done game development before, but Dear ImGui will be used for all things user interface.

If you aren’t already following Omar on X, you should be.

Plan of attack

This is a side-side quest, so it’s pretty low on the priority stack. SDL is already compiling and a basic texture/sprite system is in place. Next up is adding Box2D support so that sprites can receive collision events and mouse-over click events.

Once Box2D is integrated, EnTT support will be added. We’ll need this in order to efficiently handle rendering all of the gates for the game.

At some point, we’ll slap a UI on it….