Recently I came across TIC-80 , which:
TIC-80 is a free and open source fantasy computer for making, playing and sharing tiny games. There are built-in tools for development: code, sprites, maps, sound editors and the command line, which is enough to create a mini retro game. At the exit you will get a cartridge file, which can be stored and played on the website. Also, the game can be packed into a player that works on all popular platforms and distribute as you wish. To make a retro styled game the whole process of creation takes place under some technical limitations: 240x136 pixels display, 16 color palette, 256 8x8 color sprites, 4 channel sound and etc.
This is such a cool project in the first place. In the Age of AI it is even more cool because its API is incredibly minimal and easily fed to an LLM, much stuff fits in a single file, lua’s a pretty easy language to read, and you have enough surface area to build your games but not so much that you need to invent the universe.
Since discovering TIC-80 last weekend I built two playable games, after over a decade of not successfully building a single one. I went to college to study game development (literally a degree in “computer games development”, which still exists in a somewhat different form today), though I never completed the course, having accepted a job offer in my third year. I think I knew even then that I wasn’t cut out for really working in the actual games industry, but working in mobile games for a while in the early ’10s, just post farmville, really clinched it for me.
The idea of making my own games never really left me though, and watching channels like GMTK always made me wish I could follow through on the ideas I had.
With the Age of AI I thought I’d finally have a chance, but the intersection of “things I know about” and “actual gamedev” is pretty small these days. Other than being reading and writing code, the capacities of a real gamedev and me are pretty far apart. Similar to how I can write letters down in the right order but I’m no author. (“the capacities of x and y are far apart”? What does that even mean?)
I tried a few times to make a couple of things with Excalibur.js, which seems like a great library for building stuff these days, but the surface is pretty large and the priors are a little in the unknown unknown territory for me now.
TIC-80 is so easy. You have like 50 functions in the entire SDK. You get functions for drawing pixels, lines, rects, circles, triangles, sprites, and maps. You get functions for reading buttons, keys, mouse input. You get functions for audio. And it’s rounded out with utilities and some low-level memory stuff if you want to cosplay as a gameboy programmer.
It’s all basically described in a single doc that’s pretty easy to grok. And as with many things, what’s good for the goose (human mind) is good for the gander (large language model). I just added this doc to the claude code context and started building my first game in over a decade. It honestly couldn’t have been easier.
Finally I get to live in a world where I can just describe the type of game I want, or the kind of gameplay change I want to mess around with, or whatever, and moments later I can have it.
You can play some of the games I’ve made at the arcade.