Witchcraft - A Jam Game Postmortem

I signed up to the Secret Santa Jam on an impulse. I attempted to do the last two Ludum Dare jams while at home, and it just didn’t work. A game jam is kind of an altered state, and to get into that state, it helps when I’m in a different place, surrounded by other jammers. Sitting at home meant I couldn’t get into it.

The idea of Secret Santa Jam is that you sign up and make a game for a specific other person who’s signed up. It also lasts for a month rather than just days. Having someone specific to make a game for - and to disappoint if I didn’t make one - helped me stay on task.

My giftee sent me a lovely letter detailing his interests, and I suggested three possible games I could make for him based on that. He picked “witchcraft/gardening sim”, which I suggested because I finally wanted to make something like the potions game I wrote about seven years ago.

So my goals were to make a game about being a witch that does gardening, brews potions, explores, and helps people. I also wanted to make it non-violent and have no failure states. As suggested in the old post, to make this happen, you’d have a magic amulet that would teleport you back if you were in immediate danger. So functionally, it’s pretty equivalent to dying and respawning, but without the actual death part.

I went back and forth on the perspective for a while. I wasn’t going to make it 3D - I don’t really do 3D games - but would it be side-on or top-down? The original conception was for a side-on game, but I’m pretty terrible at getting side-on movement and platforms to not feel awful. And making a game about exploration with a side-on view is also harder.

I was also starting to collect ideas for obstacles for the player to overcome, and initially, most of these seemed to fit better with a side-on view, but I found ways to make them work with top-down, so that’s what I went for.

Next, to ensure I didn’t get too wrapped up in graphics, I went for a retro color palette, the basic AAP 16 color palette, and for a resolution of 320x240 - upscaled, of course. The weird thing is that I didn’t grow up with these kinds of games. We had no TV, no consoles, no DOS, but rather Macs. So my own retro feelings are anchored in something like 640x480 monochrome - high resolution but low bit depth.

Oh, and of course today’s retro pixel art is rendered on LCDs instead of CRTs, which makes a huge difference. So pixel art really is a modern visual style inspired by past ones.

I started putting together the game in HTML5, using my standard JS/canvas template. It does very little, just setting up the main game loop and a convenience function for drawing pictures. I like using it for jams because it lets me concentrate on building stuff rather than dealing with the quirks of an engine. Sure, it has zero bells and whistles, but I can just make those as needed.

Over the first few days, I put in basic map drawing, moving around, falling and teleportation, inventory, and a save/load system.

From previous bad experiences I knew that if I wanted the game to be able to save and load cleanly, I needed to put that in right from the start. Being able to just reload the game and continue on from where I was also really helped with development. The game autosaves once a second, so if it crashed, reloading would naturally put you back just before the crash happened, making it easy to reproduce and fix.

Having a quick cycle of testing and fixing is incredibly important to productivity, another reason why I like using this kind of simple JS setup.

While I was coding these first parts, I was also super super stressed because one of our cats had fallen off the balcony and gone missing. When we finally managed to find and catch him again, I was relieved but also exhausted and took a long break from working on the game. I had a cat to cuddle and bring to the vet and fatten back up. (He’s fine now!)

Eventually, with a few days left before the end of the jam, I got back to the game and rapidly implemented all the other things, like brewing, books, killer robots, more animations, a map editor, the actual game map, and so on. I uploaded and submitted the game with a solid ten minutes to spare in the jam.

It was mostly bug free, though my girlfriend did rapidly discover a technique for sliding in between wall tiles and getting around obstacles like that. Collision code is hard!

A few days after, I returned to the game, fixing some bugs and balance issues, and adding a lot more sound effects. Now I’d consider it done, a sweet little game about potions and gardening. I’m pretty pleased with it, and happy that the different format of the Secret Santa Jam helped me actually finish a jam game for the first time in nearly a year.


Witchcraft1.1.1.zip Play in browser
Dec 23, 2020


Log in with itch.io to leave a comment.

“A game jam is kind of an altered state” <3 Wonderful write up for a really really lovely game pok pok