Having recently finished a project of mine in Unity, I wanted to learn something new. The goal of my games at the moment is not to be a smash hit, but for me to learn, understand and improve my skills. I came up with 3 objectives to keep in mind:

  • Get familiar with C++

  • Develop a stronger understanding of system/game engine architecture

  • Learn new ways to do things

It seems that most AAA games are made in C++, due to it being lower-level than some other programming languages and its’ control over memory. Lots of big games use Unreal engine, but lots also use proprietary engines. Unreal has its’ own terminology and quirks, and I read some good advice not to necessarily learn Unreals’ C++, but to learn C++ simply by trying to build small-scope things. This satisfied my other objectives too.

I used Raylib to get started, and was quite quickly able to re-invent Pong. But I found myself having to jump around some hoops with naming conventions, because Raylib doesn’t use a namespace, but other std library imports were conflicting. So I installed SDL3 and made my way through the examples. I have an amazing book by Robert Nystrom Game Programming Patterns which is a great reference for design and architecture patterns, which was great for helping me along.

I wasn’t sure at first what I was trying to make; I was just adding bits and bobs of functionality - but I landed on an idea that you are a lil guy with a spear and you have to fight off some enemies - that was good as a starting point at least. I really like the small-sprite animations by Brandon James Greer, so I designed my own character in the same style. Then I had to implement animations, collision & hitboxes and so on. So far the game is pretty simple but also cheerful and fun.

From here, clearly the little slime should eventually perish, and then more and different enemies should come to attack you!