Home

Nunaway Train

Intro

I recently had the joy of participating in the Game Jobs Live Summer Game Parade 2021, and my team and I ended up creating a delightfully silly game about stopping a train from crashing into a nunnery: Nunaway Train.

The team was:

It was great building my Unity and C# skills further, and I feel like some of the fundamentals are starting to settle in. I'm keen to work in a team of programmers next time, as until now I've always been coding solo!

Another thing worth mentioning is that all three of the initial team were sound people, i.e. musicians or sound designers (we did have a 3D artist join us towards the end of the week). As such, we knew from the start that we would want to create an experience that gave us an opportunity to do some fun sound design, music, and voiceover (VO).

Ideation

The jam theme was 'One Time Use', and after a few interesting ideas about machinery that broke after one use, and single-clip weapons, we settled on the idea of doing an anagram puzzle game in which each letter could only be used once.

I've always enjoyed riffing on an image or scene the team enjoys - Nick had the image of a person stuck on a runaway train waving Semaphore flags and this is what we ended up pursuing because, uh, why not!

The idea was that in order to win, you had to stop the train hitting a nunnery by signalling the correct word to the railway operator, who could see but not hear you. Our gimmick was that we would make sure to choose a word for the win condition that contained a number of anagrams for other words in the hope that players would stumble across these words and trigger humourous situations.

To elaborate, our 'win condition' word was 'DODGE' (to indicate that the railway operator should divert the train), the letters of which can be used to spell a number of shorter words such as 'DOG', 'GOD', 'ODD', 'DOE', and 'EDO' (the previous name of Tokyo, didn't you know??). On inputting an incorrect word, the literally-minded railway operator would pursue a course of action related to that word, unfortunately resulting in the untimely destruction of the aforementioned nunnery.

The core loop was going to be as follows:

  1. Player inputs letters
  2. Character model animates the input
  3. Railway controller responds with VO
  4. Outcome (win or fail) with Narrator VO
  5. If fail, repeat

While probably a bit too simple to be interesting in itself (and as we later found out, probably a bit too hard!), we planned to make the experience interesting through humour and voiceover.

With the idea vaguely sketched out, it was time to get started!

Creation

I started with some basic visuals, and after some pretty terrible quick-fire Blender modelling we had our hero, Nameless to this day. Thank god for YouTube tutorials on rigging models with skeletons, and man I wish I was better at 3D modelling!

I was then able to create some animations which played out sequences of letters. Notice the inadvertent pentagram created by the Animation Controller... slightly worrying??

Next came some controls for the player; behold Unity's default UI in all its glory! We ended up getting rid of the exclamation mark option in the end, but for now it was a thing.

And then adding a section for the railway operator to respond to the player's signal. Since we were using the Universal Render Pipeline in Unity I was able to do a bit of lens distorion post-processing to add to the binocular vibe.

Here's a video of the core loop in its entirety, along with some 'moving' scenery (hint: the 'train' (currently a blue box) isn't moving!):

By this point we had some dialogue written, and it was time to put it into a format we could feed into Unity. We used Yarn Spinner since I'd used it in a previous game jam, and even though we didn't plan to have any player input in the dialogue system itself, it was a quick way of getting things up and running.

Around now one of our team managed to get 3D artist Jem Gursoy on board for the last few days (yay!) so we could expand the visual style beyond coloured cubes and spheres. I especially like the nun model - the pose reminds me a bit of the villagers in Minecraft.

With the train model in place, I was able to put together a quick intro cutscene with some placeholder text, as well as a sweet smoke particle effect (I do enjoy using the particle system!).

Then Rossano and Nick worked on the music and sound respectively. Both contributed to the voiceover, with Nick voicing the narrator (big Stanley Parable vibes here) Once they had drafts ready we were able to start the fun process of integrating audio into the game using Wwise - more detail on this shortly!

It was around now that I thought it would be a good idea to start using Git properly... It's not something any of us had used in our previous jams, but man am I happy that we made the effort to work it out! Once we got a GitHub repo set up, it made the collaborative process an absolute breeze, and really helped us keep things going towards the end and into the second week. You can check out the repo here, hopefully you can see my commit messages getting slightly less terrible towards the end.

It was rough energy-wise towards the end, but making this placeholder fail-state scene really made me chuckle:

After that, we were good to submit! The nice thing about this particular jam was that there was a whole extra week dedicated to polish and bug-fixing. I really wish this was more standard, as it made such a huge difference. Polishing for us mostly included little tweaks, fixes, and extra fun bits here and there. One thing we're glad we got in was a church model that Jem created for us right at the end of the first week, I think it makes the train crash scene all the better:

Music and Sound

It was great to work with two very talented sound people during the Jam, Nick Harbourne and Rossano Cariello.

Here's a sample of the in-game music:

To me, this is just the epitome of the brief 'runaway train'. It's catchy enough to be interesting, but not so repetitive that it becomes grating hearing it loop after loop. You can check out the whole soundtrack on Rossano's Bandcamp!

And some lovely sound design and VO detailing a response should the player input the letters 'D-O-G':

Put sound design, music, and gameplay together and you get this!

I learnt a good amount about how to use Wwise callbacks this time around and was able to use them to do some nice bits of detail, such as working out when a given piece of dialogue has finished to trigger a 'radio off-switch' sound effect. Something else fun was adding some fun beat-synced animation in the credits sequence, but you'll have to complete the game to see that ;)

Post-mortem

With it being an itch.io game jam, we got some great feedback from other jammers. A recurring bit of feedback was that the game felt a bit too hard, and I do agree. We included an Easy Mode that revealed what letters you were inputting, but without this I'm not sure anyone would have completed it! There simply wasn't any feedback for the player on what they were actually doing unless they happened to be proficient in Semaphore, which I'm pretty sure didn't happen.

It also occured to me afterwards that a system inspired by the board game Mastermind, in which one player tries to guess what combination of coloured counters another player has behind a panel, would have been a really interesting direction to take things in - maybe next time!

People did say the game was funny though, which is great - definitely something we were going for! Games Jobs Live did an awesome job of making sure as many games as possible were livestreamed publicly, and RichardStampDev summed our game up pretty well by saying "I like it not because it's well-presented, but because it's fun" - which I think is fair enough!

All in all, a very fun time was had. Bring on the next jam, and hopefully more of these blog posts soon!