Between Friday 21st October and Sunday 23rd I took part in the first ever AWEdio Jam hosted by the Edinburgh Games Symposium at the Assembly Roxy here in Edinburgh. The event brought together people from a wide array of (largely, but not exclusively audio-centric) disciplines. We were divided into colour-coded teams of 5 or so, and given a theme to collaborate on over the weekend. The chosen theme for this inaugural jam, announced on the morning of the 22nd, was time travel.
As well as jamming out our sweet project over the weekend, the event also included talks from Will Morton (of Solid Audioworks), John Broomhall (who has worked on an eye-wateringly awesome array of titles) and Helge Borgarts (composer, producer for many indie and mobile titles), which were a real highlight of the weekend. It was a real treat to hear industry professionals talking about the work they had done, the processes they used and the challenges they had come up against.
Joining me on Team Violet was Dave Smith, Alex Williamson and Anton Vasiliadis, all alumni of the ECA’s Sound Design MSc, as well as Ross Gallacher who studies in Glasgow and Mathieu Carré who works as a programmer for Dehumaniser.
We began the day by going round our group, explaining our backgrounds and the kind of directions we wanted to take the project in over the next few days (or indeed hours, in total our time working on the project would be eight hours…). From this discussion it was generally agreed that we wanted to build a game in Unity 5, using FMOD audio middleware. The two main ideas we struck upon were the concept of moving around between five different ages (quickly established as Stone-age; Baroque, Industrial, Dystopian Wasteland, and Hyper-futuristic) via a time machine of some sort, and the idea that this time machine should be modular in some way. This idea of a modular time machine was then fleshed out, with the idea being there would be three pieces of the machine in each era, and all three needed to be located before the time machine would work.
With the project outlined we then set about dividing up roles for the weekend. Anton volunteered to take on the sounds of the Stone-Age era, Alex took Industrial and the Dystopian Wasteland, Dave took on the Baroque time period and Ross opted for the Hyper-futuristic zone. Due to the abundance of sound related people in our group, and my experience with Unity 5, I was tasked with building the game, constructing the time periods. Although Mathieu had never used Unity he has excellent coding skills, therefore we worked closely together on getting the game mechanics in place. I admit I was a little disappointed that my role would not be particularly sound related (given it was an audio jam primarily), however I really enjoy working in Unity, and it was great to work alongside someone as competent at coding as Mathieu.
Over the next two days we each busied ourselves with out allocated tasks. There were frequent conversations between everyone in the group about the work they were producing, which resulted in a lot of skills and tips being passed around. For example, Ross had never used FMOD until this point, so we quickly brought him up to speed on audio events, 3D panning, looping effectively and so on. It was also useful for those of us with more experience of FMOD, I myself learned some very handy things about nesting events within events and snapshots.
Building worlds in Unity
I made a decision very early on to use multiple terrain tiles all lined up along a horizontal axis and a simple OnTriggerEnter function to transport the players transform from one era to another. Mathieu then refined this script so that the player would transport randomly to one of the five eras each time they entered the time machine. If more time had been available I would have opted for a different approach involving a level manager script and separate scenes for each era, which would have allowed for greater control of different aspects, and would have been handier for the FMOD side of things, however getting that up and running would have taken perhaps more time than we had, so we opted for the one scene approach. To make this work visually I used the terrain tool to raise high hills around the edges of each tile so that none of the other areas would be visible, and created invisible boundaries so that the tops of the hills could not be reached.
On the subject of the time machine itself, Anton mentioned at one point he wanted to include something like the ululation at the beginning of Kubrick’s 2001: A Space Odyssey, as the noise of the machine itself. I thought this was an awesome idea and it also made me think that rather than trying to design something complex to represent the time machine, why not borrow the simple elegance of the monolith from 2001?
The construction of the eras themselves involved using some free assists from the Unity store, for example a church for the Baroque era, and stones which I used to create a simple cave and henge for the Stone-Age era. I have no experience in 3D modelling with software such a Blender, and while it’s something I would ideally like to learn, I have hesitated thus far because I recognise that trying to learn the finer points of FMOD, Unity and Blender all at once would potentially stretch me quite thin. Therefore, a lot of the identifying features of each era were made from simple 3D shapes in Unity.
As the first day of the jam ended (six of the eight allocated hours – although it was over three days the talks took up a good chunk of the time, which I am not complaining about, as stated, the talks were absolutely awesome) most of the elements were shaping up and it was decided that the following day would be used for integrating the FMOD project into the Unity scene. Over night Mathieu took the code home and refined it into a working mechanic, where the time machine would be invisible and inert until the player had located the three components, and it would then transfer you randomly to another era. Integration of the audio was of course a massively stressful and last minute affair. As a result of using one scene with five terrains the ambiences for each area had to retain their 3D panners, making them directional, which was less than ideal. However we got the majority of the sounds in (although Dave was unable to make this day of the jam and due to a poor internet connection we were unable to download his contributions, meaning the Baroque world was eerily silent) and the eras roughly modelled, so we had something fairly concrete to present.
After the teams had downed tools and the soup queue thinned out it came time to present the fruits of our collective labours. There were so many incredible projects presented that day it’s hard to pick a favourite. There was ‘The Grangemouth Incident’, a radio play performed live about scientists wreaking havoc by creating a wormhole in a lab in Stirlingshire; there was a game built in the Unreal Development Kit which involved exploring a maze of 12 rooms (representing the twelve hours on a clockface) each based on a different time period, with the objective being to explore them in order; Tom Demajo (a one man team) presented an incredible soundscape he had constructed using (among other things) Paul’s Stretch to stretch out the sound of clock ticks over billions of years, and one of the first recordings ever made of the last castrati. The range and inventiveness of all the different projects was astounding.
The presentation of our game went fairly well, people were positive about it to us afterwards, however I felt there was room for improvement, so over the next day or so after the jam I sat down and tightened up the project a little.
The immediate things I wanted to address with the project were the directionality of the ambiences in each era, the bahviour of the components of the time machine, and the fact that the sky box remained the same in each era.
I spoke about the issue with the directionality of the ambiences with Finbar (a fellow course mate, and sound designer on the UDK project) and we came to the conclusion that the 3D panners could be removed, so long as the ambience emitter for each area was mounted on a trigger zone the size of that terrain, and the emitter play state was set to Trigger Enter and the stop state was on Trigger Exit (a side note: the latest update to Unity and FMOD is an absolute blessing, in the previous version parameters had to be controlled via C# code, now there are sliders on the emitters themselves and a new FMOD prefab script specifically for changing parameters, making life SO much simpler). This solution worked a treat.
Things were not quite so straight forward with the behaviour of the components of the time machine. In the build for the jam itself the pieces were stationary, however we had talked about the possibility of implementing randomised movement, giving the player a better chance to explore each environment. I tried to implement this after the jam by baking a Nav Mesh on each terrain and giving each of the components a Nav Mesh Agent. I then tried to write a script that would determine a point on the Nav Mesh, move towards that point for a given amount of time at a given speed, then determine a new destination once the allotted time was up. The result was patchy at best. The frustrating thing was that with some of the components this approach worked pretty well, with others they wouldn’t move at all. I spent too long working on this behaviour, and eventually decided to bail on the idea entirely. Instead I gave each component a simple script to make it bob up and down, and a particle emitter to give it some visual interest.
Thankfully, changing the skybox for each area turned out to be one of the simpler fixes I implemented and also one of the most effective. I wrote a script for each area, which had a public material on it, and an OnTriggerEnter function which said, when the player enters this trigger access the render settings and change the current skybox to the public material attached to this script, then in each area I added a different skybox to each instance of the script, and presto! Different skies for different time periods.
Overall I really enjoyed my time at the AWEdio jam, and am pleased with the work we generated over the weekend. It was an awesome group of people to work with and I was really impressed by the stuff we threw together in such a short space of time. As previously noted, I was a little disappointed to have very minimal audio input (the sounds I contributed were the teleportation sound, and the sound components make when collected), however I recognise that as I had the most experience with Unity it as logical to appoint myself into the role of developer.
Of the jam itself, it was an interesting concept, and if I was to enter again next year I would definitely be keen to work on a purely audio based project, something more akin to the soundscape Tom produced. On the other hand it has really made me want to go to an actual game jam, and experience an environment where sound people were fewer on the ground and work only on that portion of game development.
With regards to the game itself, as I say I am pleased with what we conceptualised and built in such a short space of time, and really the only thing I would consider changing would be the randomisation of the eras you travel to. Having watched people play the game, it can sometimes be the case that they will get stuck in a loop of three or four worlds, seeing them so often that they assume they have seen all the game has to offer. A liner progression through the eras (from the dawn of time to the post-future) would certainly eliminate this problem, however it feels like too much of a departure from the initial concepts of the jam to actually change it. The game as it stands is what we conceptualised, with the work I did afterwards being superficial to the mechanics we initially outlined, and can really just be seen as tightening and tidying the project.
Play Team Violets Time Travel Game Here