Tim goes to TasJam - He likes jam.

Does anyone else find the term jam kinda weird..?

Our valiant organisers. Photo by @parisba

Our valiant organisers. Photo by @parisba

So last weekend I attended the inaugural TasJam game hackathon. I normally consider myself part of the Tasmanian game developers general group but up until this year it hasn't really been anything but a few people who nod at each other when they meet up in the street.

Thankfully this is all starting to change and TasJam was a big part of it. I was pretty confident that TasJam was going to be me, Secret Lab, Giant Margarita, and maybe Kritz. When I got there I was pleasantly surprised to see a whole bunch of people I didn't know or only barely knew. I am glad that the little Tasmanian game group is growing and huge kudos to Jason and Ducky for arranging TasJam to help it continue to grow.

Let the games begin

TasJam was your fairly standard game hackathon, you show up, set up a laptop and make something a bit silly but lot's of fun. We were given a theme of Voices, with a secondary theme of Access.

I joined up with Matt and decided we should make something a bit silly. We are both programmers and were pretty confident we could smash something pretty cool in Unity but we felt like doing something a bit different. We both had the idea we wanted to make a choose your own adventure game.

After a fair amount of debate we settled on a murder mystery but with a twist, first you get to be both the detective and the suspects, and second everyone was going to be a butler so we could make a butler did it joke. Neither of us are writers and we knew what we were doing was a bit gutsy but we thought we'd be able to get plenty done.

Tied up in string

So we pretty quickly decided to use Twine because it seemed to be the go to tool for text adventures. Specifically we used Twine 2.0 because it is the new kid on the block, it looked pretty, so we gave it a shot.

That was when we ran into our first problem, we planned on using git to let us work independently of each other and then merge the changes in. Twine 2.0 does some very weird things, the save file it creates appears to be randomly changed every time you open the file. This makes merging impossible. In the end we had to use separate files and then manually merge them together. Even this was made trickier by Twine not letting you copy and paste individual passages from one story to another.

Our "finished" story in Twine

Our "finished" story in Twine

Ok so we had our little system ready to go and we started writing, the very first thing we learnt is that writing is really hard. We both knew we weren't writers, and we both didn't arrogantly assume every other skill in game development is easy like some programmers, but we totally overestimated how much we could write.

We chose eight characters, Butler, Priest, Femme Fatale, Duchess, Great White Hunter, Professor, Maid, and Doctor. We assumed we'd be able to get 4-6 of those done, we got 2...

I always knew writing was a specific skill, but I have even more respect for it now, still I hope the two characters we finished came out alright.

Finally we had a very clever idea to use a large matrix of possibilities to make the story dynamic, this is where we ran into more Twine issues, Twine 2.0 has terrible documentation. Matt and I are programmers so we are used to terrible documentation and how to get around it but I can't see writers digging into forums to find the answer to their problems. If Twine 2 ever wants to be more they have to fix their documentation.

This was where we also ran into another interesting side effect of Twine, it doesn't handle dynamic linking and stories very well. If your story is just straight forward, Option A, Option B, or Option C, Twine is a great choice, but if you want to dynamically build up the story it gets messy really quickly. As programmers we got frustrated by what were essentially nothing more than loading and retrieving data from arrays.

Which leads into arrays, in Twine they are called arrays, but then don't let you use the standard $varName[index] format to store/retrieve data for fear it will confuse people who aren't programmers. Which is fair enough, but then why call them arrays? List makes far more sense.

With all that said, Twine was a lot of fun, and totally worth everyone having a go at. Assuming they fix the documentation and iron out some of the oddity, it'll be an excellent tool.

Fellow Jamlords

Anyway, enough complaining about Twine, there were heaps of people at TasJam all doing really cool stuff. If you care to take a look, all the submissions are available at itch.io

I was particularly impressed with felius and John Dalton, a team of kids, made a side scrolling game about a music powered machine that saves the world.

There was also another bizarre entry from Kritz that I think was about the danger of mobs, but I am really not sure, it looked cool though.

Secret Lab made some sort of crazy single stick shooter featuring gnome copters and wizard hats, not really sure it fits the theme, but it was fun.

There was also a whole bunch of other games being made but I didn't get a chance to play them.

Bring on the scones

So, that is my terrible and quick blog post about TasJam, I cannot wait for the next one. If for some reason you want to play our game, take a look at ButlerConf

Actually take a look at all the games people made.

Huge thanks to the judges and mentors Kamina, Lauren, and Katie for giving up their weekend and flying down from Melbourne to judge and mentor us puzzled devs.

See you at the next TasJam!