the TinyBit game engine - part 1 - origin
One morning on March 24th, 2024, I got the idea to write a game engine in pure OpenGL. I'm not quite sure why, but it's one of those ideas that hits you at 7 AM and refuses to let go. This felt like a project that needed to happen for two reasons:
- Building it would teach me a lot about computer graphics, and maybe help me remember the linear algebra I forgot after university
- Having a custom game engine would let me build games for my Linux-based handheld console
Some initial research suggested this was totally feasible. I could just do this thing. This optimism lasted about 20 minutes before reality hit me in the face — my linear algebra wasn't as good as I'd hoped. Matrices are hard when you can't remember what a dot product does.
discovering sdl2
After googling around to see what other people use, I found the thing that would shape this entire project: SDL2. As one does in the age of AI, I asked ChatGPT a question that now seems embarrassingly basic:
Is SDL2 easier than using OpenGL? What are the advantages?
The answer cemented my direction. SDL2 is easy to use, extremely portable, works with C (my language of choice), and includes audio capabilities. No more wrestling with OpenGL contexts or figuring out how to load a simple image.
What really sold me was discovering that other people actually use SDL2 for real projects. Not just toy examples, but proper games and game engines. One of those being PICO-8, which is a project I absolutely love.

why pico-8 changed everything
If you don't know what PICO-8 is, you're missing out. I first encountered it through Celeste, which started as a PICO-8 game before becoming a full PC release. The original PICO-8 version is even included as a bonus in the commercial game.
PICO-8 is what they call a "fantasy console" — a virtual game development environment that mimics the constraints of retro hardware that never actually existed. It gives you a tiny sandbox with strict limits: a 128×128 pixel display, a 16-color palette, and built-in tools for code (Lua), sprites, maps, sound, and music.
The constraints are the point. They make it easy to finish small games and create a distinctive lo-fi aesthetic. There's a thriving community sharing games through a built-in "cartridge" format, and honestly, browsing the PICO-8 forums can kill an entire evening.
building my own fantasy console
This was exactly what I wanted to build. A fantasy console with my own arbitrary restrictions and a collection of games to go with it. I didn't know yet how much time I would sink into this project, or that it would become the most beautiful timesink since I started programming.
The plan was simple: create a tiny game engine with SDL2, impose some interesting constraints, and build a few games to test it. What actually happened was much more complex and way more fun.
Looking back, starting with PICO-8 as inspiration was perfect. It showed me that constraints breed creativity, that small games can be incredibly satisfying, and that there's something magical about building your own little world with its own rules.
In the upcoming posts, I'll walk through how this simple idea grew into something much bigger. How I built the rendering system, implemented a scripting language, created development tools and audio engine and eventually even made custom hardware. It's been a wild ride, and we're not even at the end yet.