Gamedev the hard way – doing it all myself

Writing games is hard enough by itself, requiring a lot of different skills. So how can I make this even harder? How about I do literally everything myself, starting with nothing but a blank source file and write all the code by hand. No game engines or libraries. If I need something, I need to write it myself. And since we’re doing this the hard way, let’s write games for an embedded microcontroller based around a Z80 CPU.

Why am I doing this insanity? Hopefully it should become clear it’s not to get rich being an indie gamedev. If I wanted to do that, I could just sit in a coffee shop poking at Unity. I’m here for the challenge and the learning opportunity.

Over on my YouTube channel I’ve been making videos about the Agon Light, a small single board retro inspired computer that was heavily influenced by the BBC Micro. It’s powerful enough to make decent games, and the hardware isn’t trying to be any particular existing retro computer, so it doesn’t have to follow the rules of how old computers used to be.

I started this idea a few years ago with my Spectrum Next, and got quite far, but kept coming up against that machine’s main limitation – it was an evolution of a ZX Spectrum and had to operate like one. This meant while it had 2Mb of RAM, it was bank switched in small chunks so it fitted inside the Z80 CPU.

The Agon Light is powered by an eZ80 CPU which has 24 bit addressing, so the 512Kb of RAM it comes with can be accessed all in one go. Not having to look at the world in 64K chunks is a big deal.

You join me at the stage where I’ve been playing about with understanding the hardware enough to make some simple demo programs, and where I realised I need some more structure. My efforts so far have been to pick a thing at random that seems interesting, figure it out, then make a video on it. I’m kind of running out of ideas. Making a game should provide the structure, and might also make more interesting topics to talk about.

This part of my site will be where I gather together the written parts of the journey. I’m intending on making lots of videos about this, but given the way YouTube works the videos need to be entertaining. Walking through code isn’t that exciting and could be better explained in a blog post. So here we are. The videos will be the tl;dr version that show off visually what I’ve been up to and then there’ll be blog posts explaining things in more depth.