It’s been a stressful and exhausting week for us, but a pretty great one too. The pre-alpha is public now, and everyone seems to be having a good time with it :) We’re really happy with the reactions so far.
The launch also went smoother than expected! We didn’t get swamped with bug reports, and most issues that have been reported are minor, so that’s awesome. Major credits for this go to our $40 Kickstarter backers of course who tested the game during August and diligently sent us reports. Your help has been invaluable!
For this weeks devlog entry, Gordon wrote how he’s approaching coaster sounds!
Devlog
Hey everyone! Gordon aka A Shell in the Pit here doing my first update on the audio of Parkitect. I run A Shell in the Pit Audio in Vancouver and have been working semi-quietly in the semi-background writing music and supervising all the sound design going into Parkitect. Since it’s what I’m working on right now and also serves as a great little intro to dynamic audio for those unfamiliar with it, I thought we could talk about the rollercoaster sounds. I will be doing my first Twitch stream tomorrow (Monday, Sept 14th) at 1pm PST and will be creating the sound for the Wild Mouse so if you find this interesting please stop by twitch.tv/ashellinthepit.
Time converter at worldtimebuddy.comTime converter at worldtimebuddy.com
Audio is one of the most mysterious-to-the-public parts of game design, and a lot of cool stuff goes into it that I love explaining to people because it’s rad. A lot of developers I work with start out knowing nothing about audio and audio implementation, or even having an opinion on the matter, to getting right into it and very excited about the possibilities. Sebastian has been a wonderful programmer to work with and Garret and I have a very cohesive view on what the soundtrack should sound like.
OK, coaster sounds. It’s a lot more involved than grabbing a recording of a rollercoaster and triggering it when it starts moving and stopping it when it stops moving. We need it to be representative of and reactive to:
This requires sound source of multiple different speeds of coaster. I have chosen climb, slow, medium, fast and very fast. Unfortunately my arrangements to record at the local amusement park fell through–the person I was dealing with a year ago no longer works there, and to record there through the channels they want me to go through now is prohibitively expensive–thousands of dollars for a couple hours :S.
Luckily the game audio community is amazing and word got through to another sound designer in Pittsburgh, Marc Straight (@MarcStraight) that I was looking for fresh recordings of coasters. He is doing music for an amusement park in his neck of the woods and had been granted access. I subsidized the purchase of a Sony M10 and he has been able to provide me with some excellent recordings.
After receiving the recordings I brought them into Pro Tools and made perfect loops (perfect meaning there is no ticking or noticeable loop point) of each velocity from a recording of a single ride, and removed the people-sounds from them using the expensive but incredible audio repair software called Izotope Rx and a process known as “mind-numbing tedium”. Since we can have empty coasters, we need the sound of JUST the rollercoaster and will have to add screams in engine depending on who is on the ride.
Before Rx:
After Rx:
I was able to create loops of slow, medium, fast and *really* fast of the wooden coaster. Sebastian and I are able to tie data generated by coaster velocity to a parameter in a Timeline Component of our audio middleware tool, Fabric, to fade between loops depending on how fast the rollercoaster is going. Note to budding game audio folks: it is always best/easiest on your programmer to drive parameters with data already being generated for other reasons in the game. We are already tracking coaster speed, so I didn’t need Sebastian to create anything new. I see a lot of Fmod tutorials by inexperienced people that use a million custom parameters, but each one would be extra work for your hypothetical programmer to create.
This is what a Timeline component in Fabric looks like:
Anyway, so far it seems to be working quite nicely! There is a 3d audio issue that Sebastian and I need to sort out (coasters get quieter as they get higher) but we’re on a great course. I had considered doing something more granular, but this seems like a more elegant and simple solution and I think probably sounds better as well. Unfortunately we won’t be able to use authentic recordings for every single ride simply because of lack of access, and I may have to fake a couple couple of coasters using sound design trickery but that’s OK. It will all sound great in the end.
Bookending is a crucial tenet of Sound design. Things generally sound better with a definitive beginning, middle and end and we’re using recordings of the hydraulic brakes to serve as the beginning and end of the coaster rides. These are not looping files but one-shot sounds.
We still have to add sounds for the rubber rollers and the screams of the riders (I am throwing a party for the pre-alpha release and the cost of entry is a scream in my vocal booth :)), that said getting dialog is going to be a huge ball of wax in itself and screams are definitely a party of the dialog.
That’s the basics! Hope you found it interesting. There are several other things I’d like to talk about with regards to audio in the future, so expect to hear from me again soon!