Subscribe Now: Feed Icon

Thursday, January 7, 2010

Adaptive Music 101 - Vertically Fighting Lineararity in Game Music

Adaptive music,

It's the thing of legends, and many games seem to skirt around doing it... even very recent games.. which baffles me. Since music is literally the last thing most producers think about... this may baffle me, but it sure as hell doesn't surprise me. Ugh, damn you game industry for being so backwards. Moving on. Most games (I know you're listening Fallout 3 and Oblivion) do the ole tride and true "timed" method of adaptive music. They play an ambient cue sparsely during gameplay (which is on a random timer so it fades in on occasion and doesn't loop or get repetitive), fade that cue out, and fade in an action cue when enemies start attacking the player. While this method works, there are ways to make your music FAR more adaptive than that... you can make it sound more like a well timed film score if you really put some effort into it.

With audio engines such as Audiokinetics Wwise it's easier than ever to put together an adaptive music structure within a title you're working on. Adaptive music will almost certainly set you apart as much of your competition are still in the mindset that you can trigger a two minute piece of music within a level and have it loop. I know it can seem daunting at first, but here are a few ideas to get your brain thinking adaptively. In addition to the Timed method mentioned above, there are two more types of Adaptive Music structures that I'm going to eventually discuss: Horizontal and Vertical. While vertical is the most difficult to compose for in my opinion, it is the easiest to implement and the first I'm going to discuss.

VERTICAL INSANITY

When setting up a vertical adaptive music structure you're essentially composing a piece of music with different elements (read: tracks) and systematically fading said elements in as the gameplay changes. The real trick is, ALL of the tracks eventually have to work together in the form of the action element so it's a real pain in the ass to compose properly. Now, with a system like Wwise, you can fade out tracks if they become too cumbersome on your mix.. but if you do to much fading it totally defeats the purpose of utilizing this structure, so be weary! The screengrab below shows this vertical method set up in Wwise... neat eh? Lemme explain in a bit more detail whats going on there.



Essentially, you have three layers (which can have more than 1 track each), I prefer to call them Ambient, Tension, and Action... all in the same piece of music. Confused yet? Don't worry, after I show you the example I've prepared.. all will be explained. This system is extremely versatile and can be utilized for an onslaught of different gameplay situations. Even if you're working on a mod and do not have access to an audio engine like Wwise, talented coders will be able to find a way to implement this system for you in existing game engines... the interface just won't look as pretty. Blah.


Here's an example I put together a while back which should explain this vertical craziness a bit more. Essentially, I recorded some gameplay from Rainbow Six Vegas. Specifically, a terrorist hunt map which originally contained no music.... and added my own adaptive music structure on top of it. It's pretty amazing what some adaptive music can do to raise the tension! Pay attention to how when the tension layer fades in... it does so ON TOP of the ambient strings and synth pad. So everything is working together and gels no matter what layers are playing. Excuse the shoddy quality of the video!

URL: http://www.youtube.com/watch?v=oNDjSYrmmM4




Did that clear things up for you? Good! Not as crazy as you would think to set up some fairly adaptive music. Here's another RB6V example for ya which utilizes the same said music structure... just without the walkthrough.

URL: http://www.youtube.com/watch?v=MUswfD0PYwo




I also did an example showing off this said music structure within Oblivion. Once again, listen for how the layers all work fairly well together. I did this music in a hurry so it's far from perfect... and NOT my next opus... but it gets the point across. Once again, the video quality is absolute ****, but you should at least get the basic ideas as to what's going on here.

URL: http://www.youtube.com/watch?v=qbFhQs8M3N0




A WELL TIMED EXAMPLE

Now, I really shouldn't nay say the Timed approach. It can be done, and done well, if done properly. A great example is the Left 4 Dead series! Here's how you could go about setting up a timed structure similar to L4D:

- 3 sound "buckets" - Tension, Action, EXTREME TERROR
- Each bucket contains anywhere betwee 5 and 10 short (minute or less) pieces of music
- Each bucket is named appropriately (ie Tension, Action, EXTREME TERROR)
- When a bucket is called to play via code, it picks a piece of music at random within it and plays said piece of music.
- Tension could be on a timer which is ever changing. So it calls a piece of music to play when there are several zombies on the screen. After that piece is done playing it waits 3 minutes to call another piece of music. After that piece of music plays, the system changes the timing to 2 minutes then plays another. See? Isn't fighting repetition fun?
- When 5 or more zombies are aware of the player, code calls on the action bucket... which functions just like tension.
- If 10 or more zombies are aware of the player, or if the game engine wants to scare the player with a stinger, code calls on the EXTREME TERROR bucket.

Now that you're all fully confused.... I'll call this rant done and let you ponder the craziness that I just discussed :).

No comments:

Post a Comment