On this occasion I would like to welcome you to the first of a series of posts dedicated to looking at game audio and how sound is implemented during the development of a game. I wanted to talk about something in more detail rather than simply give some updates on the projects I have been working on, but I was more than aware that I still hadn’t got around to writing anything about the sounds I’ve been recording and/or creating, or the techniques I’ve been using. That was until I had a bit of a ‘eureka’ moment – why not take the time to look at what is used/needed while working on sound for video games?
Let me set this up better. As it may already be known, last year I was taken onboard by 4th Wall Games to create sounds for their first game (Droggon Attack), and from there we have been in talks regarding my involvement in their future projects. This rekindled an interest in me I’ve had since high school (some *mumble* years ago) – working with computer games!
Sadly, through my years at university, none of the courses I attended covered game audio (in fact, my Masters course was meant to but the tutor left before my academic year started). This, and my own ignorance, meant that I never learnt anything about the ins and outs of game audio.
This is where my ‘eureka’ moment comes in. Anyone who read my last post will remember I mentioned that I had been taken on board to create sounds for Betrayal’s Wings (Lost Key Games); I have also joined another independent team (msGameDevelopment) in the development of Contamination Europe (originally a pen-and-paper style game, which can be found here). As I have been talking to the teams, my interest in the area of game audio has been increasing and leading to me wanting to be able to do more…but what does that entail?
Unlike when working with music or film, there isn’t really a standard DAW for the industry – people use what they are confortable with. It can, however, be seen that there is a particular favorite when it comes to an audio editor – Sony Creative Software‘s SoundForge is used by most (especially as an audio editor, at least after a sound has been created/compiled). GoldWave is another audio editor I have seen recommended.
Unreal Technologies‘s Unreal Development Kit (a.k.a. UDK) is one of, if not the, most popular game engines used. This is both due to how powerful it is, and the fact it is available to download and use for free (licenses only needing to be purchased once selling a project commercially). Another notable engine is Unity – both Betrayal’s Wings and Contamination Europe are being developed using this engine, and due to this it will be the engine I first explore for game audio implementation.
Other engines worth mentioning are: Gamebryo, DICE‘s Frostbite, Havok, Unigine, Synapse Gaming‘s SunBurn, Crytek‘s CryENGINE, Bethesda‘s (just released) Creation Kit, Microsoft XNA Game Studio, and YoYo Games‘s drag-and-drop engine GameMaker.
Digital Asset Management Systems
Asset management systems allow developers (and sound designers) to have all elements of a project kept in order and to see the changes being made. Popular choices for this: Perforce, Alienbrain, Apache‘s Subversion (a.k.a. SVN), SmartSVN, Razuna, Temerity, Southpaw Technology’s TACTIC, ShotRunner, and Give Software’s Project Overlord.
According to one source, it is felt that Alienbrain is the most expensive yet not so good when working with games. Razuna has the advantage of being open source and free; it is also seen as in league with others mentioned above, but still not the best. The most popular suggestions seem to be for using SVN with TortoiseSVN or Shotgun, or SmartSVN with Tortoise.
Audio Implementation Middleware
Middleware is often used for implementing interactive audio into video games – the most popular of these are FMOD and Audiokinetic‘s Wwise (tutorials on using Wwise can be found here). Other programs worth noting for this section are Creative Technology‘s OpenAL and RAD Games Tools‘s The Miles Sound System.
According to Wikipedia, OpenAL has a disadvantage whereby it does not account for sound propagation delays, and because of this it cannot be used to calculate sound arrival time differences. [I should note I am well aware that Wikipedia isn't always completely reliable, and on the page mentioned above there isn't a reference given for the statement, but I still felt it was worth mentioning.]
Before completing this article I also came across XACT – this appeared confusing to begin with as I kept seeing articles claiming it as middleware and didn’t seem to be tied to anything. Wikipedia further caused confusion with stating that it is no longer supported by Windows. I ended up going through the tedious line of contacting Microsoft to get answers. Eventually I got a response stating that it is actually a part of the Microsoft XNA Game Studio. According to this source, XACT is an implementation tool that is useful for sound designers who have little-to-no knowledge of coding, or they lack the desire to code. For detailed information on this either follow the links here, or here.
It has been found that a certain amount of coding can also be required, depending your level of involvement and/or the manner in which audio is being implemented. Languages for this, quite obviously, revolve around the languages used to program the other elements of games – so the likes of C/C++, and Java (information on Java sound can be found here). XML is another coding language found to be used for audio programming – a simple introduction to using XML with games can be found here, and an introduction for audio scripting in XML can be found here. Lastly (at least the last I am mentioning), is Python – this is a language that is free to use (even commercially), and runs on Windows, Mac OS X, and Linux/Unix.
Along with the above-mentioned languages, there are an abundance of text-editing programs to replace Notepad/TextEdit and to increase productivity, etc. While looking around I’ve only seen UltraEdit being mentioned, but a comparison list of the available programs can be found here.
Also, as previously mentioned, there are possible work-arounds for those who don’t know how or want to code – i.e. XACT.
So I’m going to be putting up posts now and again about particular things I’ve been looking at and learning, and anything I happen to think of particular interest, regarding game audio and audio implementation. I would like to state that this is a learning experience for myself, along with it being for people who might be interested in game sound to get some insight. With that being said, if anyone sees any information I have given that is incorrect or would like to advise on anything that may be useful to look into and/or use then do please get in touch (either by leaving comments or sending me an email).