Notable games Jon has been involved with:
All Points Bulletin (Realtime Worlds)
DiRT 3, DiRT: Showdown, F1 2012, GRID 2 (Codemasters)
Brad: A two part question first of all.
Can you tell me a bit about your educational background? And did you always plan on being a programmer, or more specifically an audio programmer in the games industry or were there other industries you considered?
Jon: My education was pretty standard for most Scottish kids – I began at nursery, where I learned how to make friends, play games with others and generally be a functioning member of society. In primary and secondary school I performed above average in the subjects I enjoyed (Art, Computing, Music) and sucked at the ones I didn’t enjoy (Maths!). I was quite a creative child, so I spent a lot of time drawing and making things. My family also had a big impact on my education, mostly with how I approached learning. My dad is quite analytical and I think that rubbed off onto me. After school I graduated from The University of Abertay Dundee with a 2:1 BScHons in Computer Games Technology.
Did I always plan on being a programmer? Not at all. Up until the age of 10 I wanted to be a comic book artist for DC comics (I love Batman). Then at the age of 14 or 15 I started learning the guitar. I got quite good at it, and thought I could make a living as a session guitarist. At ~17 it was pretty obvious I couldn’t compete with the guys who’d been playing a lot longer than me, so I chose a profession in game programming.
It’s funny that I took so long to decide to be a programmer, because I started programming at a very early age. Games were always a part of our family, and my older brother programmed a little in AMOS on the Amiga. We had games like “The shoot-em-up Construction Kit” that I played with before I could even ride a bike. I became a bit of a Deluxe Paint ninja and made loads of little visual programs in AMOS. I then progressed to stuff like Macromedia Director, Adobe Flash and Visual Basic until finally getting stuck into C++ at University. For most of my teenage years I much preferred the creative aspects games. I loved animating (something I picked up from my brother) and I loved writing music (something I picked up from my dad) and seeing it all come together as one product was a very good feeling. The programming was simply a means to an end.
However, in 3rd year of Uni I started programming shaders in DirectX. This was really hard, and I barely understood it to begin with. The coursework forced me to really dig deep into how it all worked, and I found that I really enjoyed it. I think this was the real turning point for me. Almost like a switch went off in my brain and I became someone else. Programming was enjoyable, I understood it, I liked investigating new things and I felt I was good at it.
You’ll notice, apart from some music references, that I haven’t mentioned much about audio yet. That’s because I wanted to do almost anything apart from audio programming; I didn’t want to be stuck in a niche position. Ironically, being niche has probably been the best thing that’s happened to me. My first attempt at audio programming was in uni. I did it in a few group projects because no one else would do it. Fortunately my audio programming got me noticed during the Dare To Be Digital competition in Dundee. Realtime Worlds hired me as an audio programmer off the back of DTBD and since then I’ve been very happy doing audio programming (I still suck at maths though).
Brad: That’s interesting that Maths isn’t one of your strong points, generally people think that to be a programmer you have to be really good at Maths.
How different is audio coding from other disciplines in the games industry? Do you feel as if you have to take a different approach to your work and does knowledge of music and audio in general help you?
Jon: Even though Maths isn’t my strong point it’s still important for a programmer. I’m now comfortable enough with basic calculus and trigonometry, but when you get into serious digital signal processing it can get pretty challenging. I just keep sticking at these things until I understand them.
Audio programming is easily comparable to other types of game programming. You’ve got high level coding, which is similar to gameplay programming. This would include stuff like hooking up triggers and logic for controlling the sound. Then there’s more architectural audio programming where you structure how the sub systems talk to each other, and making sure the code is as optimised as possible. Techniques here could be applied to almost any system that needs to run fast (graphics/AI/physics etc.). Finally you’ve got the signal processing aspect, which is where the maths comes in handy. The approaches would be similar to a rendering programmer writing shaders; relatively small bits of code but quite algorithmically complicated. Brian Schmidt gives a great comprehensive breakdown of these three types of audio programmers in his article here:
All of these areas of audio programming benefit from having knowledge of sound and music. Understanding the needs of your sound designers makes them more effective, and always results in better sounding games. I’ve found having a creative passion helps to push you technically; you won’t instantly dismiss something if it’s too hard, because you know it’ll sound amazing if you get it right!
Brad: I’m sure this also works the other way around right? I guess it’s always helpful for designers to have a basic understanding of what you do; the limitations of code and how difficult something will be for you to implement.
Before we get on to the unfortunate business of leaving you stranded on an island for the foreseeable future I have one more question. Are there any games that have been so technically impressive that you have found yourself analysing them and wondering how they were coded?
Jon: Totally – I find when you both have an understanding of each other’s work then quality and productivity improves.
One game I’m still really impressed with is Uncharted 2. The way the sound reacts to the environment, especially in the multi-player, is inspirational. I spent ages walking around trying to find flaws in their occlusion and reverb, but at the time it seemed perfect.
As soon as I hear something that sounds too good to be true I stop and try to break it. I try to think of ways the developers could have implemented it – completely dissecting the feature. Then I go through as many edge cases I can come up with, hoping the system falls over. More often than not it does, but Uncharted’s environmental processing is great.
I hear GRID2 sounds amazing too…
(You can leave that last bit out if you like!).
Brad: No, the GRID 2 comment is staying!
I know you can’t say what you are currently working on but I presume its Banjo-Threeie, it’s also an N64 exclusive for the hardcore fans that still own the console! To promote the game a real life Rusty Bucket ship will set sale with the Rare devs onboard. Unfortunately the hull plating will be breeched by a series of rocks along an island.
Luckily, being a boat full of games industry folk there were plenty of games on board. Your priority (other than surviving) is obviously to grab some games. You manage to grab a haul of your favorite games, jump into the ocean and find a bit of driftwood.
So you’ve grabbed 5 games (one of which happens to be a collector’s edition) and 1 game soundtrack. What were your choices?
Jon: Your ship wrecking stories keep getting better and better!
Brad: Yeah, I find keeping the scenarios quite realistic works well.
Jon: My games would be (in no particular order):
1) Warhammer 40,000: Dawn of War II (PC)
The campaign is great and the sound is what I’d expect from a Warhammer 40k game.
2) Halo 4 (Xbox 360)
Don’t care much for the single player, but the multi-player is great for unwinding after a long day of holding onto driftwood.
3) Counter-Strike: Source (PC)
Probably the most addictive game I’ve ever played. I would lose whole weekends to this when I was at uni.
4) Geometry Wars: Retro Evolved 2 (Xbox 360)
I’m determined to get the high score on “Pacifism”.
5) Batman: Arkham Asylum Collector’s Edition (Xbox 360)
Both of the new Batman games are fantastic, but the Batarang from the Arkham Asylum collector’s edition would come in handy while I’m stranded.
Soundtrack – Command & Conquer
Game soundtrack is easy – I’d take the original Command & Conquer soundtrack. All I need to do to re-live the 90’s is listen to that. “We’re going to have to act if we want to live in a different world”.
Brad: You have chosen some time consuming games there and I like your thinking with the Arkham Asylum collector’s edition, so all round good choices!
As I’m sure you are aware your scenario only gets worse when on the island. While strolling along the beach you come across the Rusty Bucket shipwreck, naturally you investigate. To your horror you see the remains a bird, suddenly a bear chases you away. You both reach the base camp and the bear starts slashing away at anything in his path. As he nears your prized games collection you reach out to grab them but only one can be saved.
So Jon, which game do you save?
Jon: Assuming I survive the encounter with the bear then I’d pick Counterstrike – I’m still not bored of playing ‘office’ and ‘dust 2’ after all these years. Perhaps the bear could play with me?
Brad: I like your thinking. I’m sure you do survive and with the backing of Microsoft I think the funding for a rescue helicopter will be secured in a few years.
Thanks for taking part Jon!
Jon: You’re most welcome 🙂
About the choices
Warhammer 40,000: Dawn of War II
Developer – Relic Entertainment
Publisher – THQ
Platform – PC
Release – 20th February 2009
Developer – 343 Industries
Publisher – Microsoft Studios
Platform – Xbox 360
Release – 6th November 2012
Developer – Valve Corporation
Publisher – Valve Corporation
Platform – PC
Release – 1st November 2004
Geometry Wars: Retro Evolved 2
Developer – Bizarre Creations
Publisher – Activision
Platform – Xbox 360 – XBLA
Release (EU) – 30th July 2008
Batman: Arkham Asylum Collector’s Edition
Developer – Rocksteady Studios
Publisher – Eidos Interactive, Warner Bros. Interactive Entertainment
Platform – Xbox 360
Release – 28th August 2009