Many small bits make a whole


Laying Foundations

This game marks my first submission targeting personal computers rather than some sort of game console. I began with a clear idea for the game, but no notion of what system I wanted to put it on. The theme was “witchcraft”, and I immediately thought of an orchestra conductor. The meme is that nobody can distinguish a conductor from a sorcerer by pose. I wasn’t going to let a lack of a well-defined target stop me tho! I did the only rational thing: I began writing in C, in order to have the most options.

I realized that, when making PICO-8 games, my general style is to use Lua’s tables as a form of ad-hoc ECS. In order to allow for the same sort of style in C, I wrote a red-black tree implementation. This is a kind of self-balancing binary tree that makes for quick lookup of components. I spent a while agonizing over the complexity of the “delete” operation, but realized it won’t ever be used here so it isn’t worth the fuss.

In addition to the ease of forming an ECS, another thing the PICO-8 has going for it is its tracker. The one in the PICO-8 is fairly limited, but it accomplishes its goal. Yet often I’ll proselytize about the features of tracker-style sound formats! They’re particularly well suited to dynamic audio or synchronizing game actions with the beat of the music. But until now I hadn’t done any of that in my own work. This project set out to be a tech demo of that concept: the background music is just 13KB in size, and the game is sync’d to the beat. It may have been a better demonstration if I’d used a song that varies tempo throughout, but that would have made the system more difficult. Interested players can feel free to replace untitled.mod with any other four-channel MOD file tho!

Building Up

With a game idea in mind alongside the principles of keeping things small and limiting dependencies, I began. As this was my first time using SDL, most of my time was spent reading their documentation. Eventually I had enough put down that I could do what I wanted to do: tap along to the beat of the song. Then I noticed the time, and began a frantic dash to assemble a game! With less than 24 hours to go, I hastily implemented spellcasting. Perhaps backtracking in the pattern search would be ideal, but it was excluded. A few enemy types were tossed in: a phoenix, who lays eggs when set aflame, a slime who heals from water, and that indestructible egg. To be fair, I’m not sure if the egg is actually indestructible (that might be broken). In any case, a game emerged!

Putting it Together, Literally

All that remained was to compile and share the file. I’d never made a windows build of anything before, so I had to figure that out. Apparently there’s a tool called “minGW” that lets you do that from anywhere! Just had to install that, build, and add the appropriate libraries into a zip file :3

Thinking about the compilation step reminds me that the mac version (my native system) is without x86 support. Oops. I’ll go add that now!

Further Reading

Files

mac.zip 472 kB
Jul 26, 2021
windows.zip 747 kB
Jul 26, 2021

Get Casting Colosseum

Leave a comment

Log in with itch.io to leave a comment.