Yet Another Game Engine

4/28/2026

Use an existing engine!

Existing game engines are great! Use those! They save you time, effort, tears, etc.

I started out learning Unity in 2022. I followed a handful of tutorials.

Eventually I had a simple idea for a racing game, and I knew enough from the tutorials to start making it.

Of course it grew into a larger idea, a fighting game, about Sisyphus, the guy pushing the boulder.

The game is called

Sisyphusticuffs

These mp4s play audio, some of them are loud. The audio clips for sisyphusticuffs are from GachiMuchi, IYKYK ;^))

You and friends play as Sisyphus. You pick up and use various weapons, throw rocks, throw boulders (the big squares)

I had no idea what I was doing. None of the Unity abstractions made sense. I was cobbling together nonsensical terms like rigid bodies, colliders, bounding boxes.

My total lack of understanding didn't stop me, and it was easy enough to continue stacking on more mechanics.

Eventually I built up an 'affliciton' system. Various types of damage would cause various afflictions, like bleeding/burning/paralysis.

I added tons of animations and weapons, each animation had its own animation set, and even movement mechanics like dashing. The majority of this was inspired by Dark Souls.

Over the course of 9 months, I created a modular combat system, with atleast a dozen different weapons, 5x animations per weapon, and even experimented with networked play.

By September of 2023, Unity announced the runtime fee update. The majority of mobile games then were made with Unity. So Unity wanted a larger cut of the revenue they were generating. But they targeted all developers.

The runtime fee meant that for every download of your game, you, the developer, would owe Unity a few cents, even if youre game was free.

This didn't last long, they rolled it back in 2024, but my trust with them was already ruined. I thought long and hard about what to do next in September of 2023 and I decided to learn to make my own engine.

Of course there are other engines you can use, with less predatory practices. Godot or Unreal. If you were starting today I would recommend Godot.

I had no idea what I was doing when I first started programming my own games. There were plenty of tutorials but I was terrible at programming.


Games are just loops!


    bool isRunning = true;

    while(isRunning){

        ProcessInput();
        GameUpdate();
        Render();

    }

Kevan Hollbach and I learned Zig a few weeks ago, and made a tiny game. Making the game was the easy part actually.

Once we understood how to use the Win32 calls from Zig, we were easily able to handle input with arrow keys, and wrote a very simple collision check to push squares around.

Soon enough we had a little software rendered sokoban game!


Back in 2023, once I understood that games are loops, that enabled me to start experimenting.

Neverending Rabbit Holes

Initially, I was too scared to try to write anything myself, so I spent dozens of hours figuring out how to build various libraries with Cmake.

You still need to write your own code if you want a game, so you will need to get your hands dirty at some point.

I was following some 3d graphics tutorials, and decided that I could start writing a 3d engine (big mistake)

So I embarked on the never ending rabbit hole of 3d graphics programming. I started with cubes.

But all I had was shapes floating in a void. There was no concept of distance or shapes relating to eachother in that space.

I like real time games, where objects can bounce off eachother. This means I need some sort of collision testing.

In my ignorance, I didn't think to do a blunt n^2 collision loop, and skipped about a dozen steps and immediately started learning about spatial partitioning.

So it goes, I had spent a month into building systems I didn't understand, and had no use for yet.

Around that point I heard about 'Voxel Engines'. Like Minecraft. Cubes. I was comfortable rendering cubes so why not move on to voxels?

That was how I spent the next 2 years of my life :^)

In October of 2024 I started following handmade hero. It is singlehandedly the greatest resource on programming I have ever found. All you need are the first 30 episodes!

Handmade Hero Episodes

I started making devlogs around this time, so for a deep dive on each step, see my youtube.

Youtube

Eventually I reached the conclusion that I could either spend another decade pursuing rabbit holes, or strip everything down and make a game.

So I repurposed a little software renderer and started on a tiny 2d engine.

Naturally I got carried away again, and made my own window chrome, wrote my own physics engine, and even added physics to the window.

Since February I've felt an intense pressure to ship something, which has spurred me to rapidly implement basic systems I want in a game.

I'm getting closer, but there is always the risk of pursuing bottomless rabbit holes.

Game engines arent impossible!

If I can make an engine from scratch, you can too! The only question is if you actually want to :^)

Engines are just a few systems stacked together. They are not magic, they are not hard. You can build them yourself if you want full control.

Or use an existing engine/framework if you want speed.

Thanks for reading!

Those voxel engine clips have audio from these sources, in order of appearance:

Super Castlevania - Stage 3 The Submerged City

Super Castlevania - Stage 2 The Forest of Monsters

Intense - Only You