Annulus Postmortem

David Stark / Zarkonnen
13 May 2017, 3:53 p.m.

In Annulus, you guide a stone-age tribe living on a ring-shaped space station. Apart from hunting and gathering, there are strange technological artefacts to study, and on occasion, there's an opportunity to shape the culture of your tribe.

As so often with game jams, I didn't really like the theme. It's almost part of the process for me now: the theme gets revealed, I complain about it, and then figure out some way of making it interesting to me.

In this case, I wanted to make a game about shaping the culture of a society through a series of decisions. The idea was that some decisions would have useful short-term consequences but establish problematic precedents, or vice versa. A big influence gameplay-wise was A Dark Room, which I both love and actually contributed a few features to.

I'd just started playing Horizon: Zero Dawn, and so a mix of high and low tech was on my mind.

Since I could already see from Twitter that a lot of people were making little globes, I wanted to do a different topology for my game, and settled on a torus. A torus is actually a lot easier than a globe to work with, and a lot of game maps, eg Civilization's, are torus-shaped.

But because I apparently wanted to make things hard for myself - and because I wanted to get some more experience with Unity - I decided to make this torus in 3D.

Roughly the first third of the jam time was taken up by trying to get Unity on Linux to work properly, then giving up and installing it on Windows instead. Once I actually had a functioning development environment, I was able to quickly write some code that created a torus out of cube-shaped prefabs.

I started creating different landscape blocks - forest, grass, water, and so on. For this I used MagicaVoxel, which I can heavily recommend for game jams. You can make decent-looking 3D models very rapidly, and importing them into Unity is also pretty straightforward.

One of the things I don't really like about Unity is its reliance on complex scene files made of prefabs. So as quickly as I could, I abstracted this away, creating some simple data formats for the world map and tile types. This worked really well, and by the end of the first day, the game could generate a torus of landscape blocks on the basis of the data files.

Now I just had to make, you know, the game. The interactive bit.

So next was creating a little tribesperson in MagicaVoxel and setting up controls that let it move around, and setting up the camera to follow it. I quite liked the vertiginous way the camera did not rotate along with the tribe's movement, and left it like that. Which admittedly did make the controls fairly confusing.

After a fair amount of fiddling with light sources and camera controls, it was time to add some content to the world. I put together a simple but powerful attribute and encounter system, again with a text-based format. The way it works is that every time your tribe moves, it checks each possible encounter in order to see if it applies, and pops up the first one that applies, if any. Each encounter would then have 1-4 choices which could modify attribute values, modify world tiles, or restart the game.

I tried this out with a simple encounter for gathering some berries - and then it was time to board a plane! Thing was, I had to be in Berlin on Monday morning to go to the Quo Vadis conference, which meant I had to travel on the Sunday. I spent my time in the departure lounge putting together more buildings and creatures for the game, including the, er Xanthelope:

and the Eruxoraptor:

Protip: If you make your animals aliens, it's not as obvious that you're really bad at 3D modelling.

After a number of delays - including having my luggage searched at Tegel Airport - "I'm not a drug smuggler, just an Indie developer!" - I arrived at my hotel room at roughly midnight local time. I had three hours left. The first hour I spent fixing up some bugs and adding in the new 3D models. The next 90 minutes I spent writing all the encounters in the game. The final 30 minutes I spent on building and uploading and submitting, finishing neatly before the deadline.

I'm pleased with the final result. The encounters are pretty basic, but I think they manage to convey the tone and experience I wanted the player to have. I know the controls are... weird, but I tell myself that's part of the game's charm. I do want to make a proper post-compo version of the game with a deeper story and more detailed ecology, but that will wait until after the judging.

Play Annulus