Video Game Audio - Under the hood is a series of blog posts that will shed light on the not so glamorous, technical aspect of implementing audio in video games. In this installment I will break down Eon Altar’s Music System, from our initial designs to the first prototype and finally to what actually made it in the end product.
Eon Altar is a mobile enhanced RPG PC game. Eon Altar uses the best of both free roaming exploration and turn based combat.
Eon Altar was built in Unity 4.6 using Master Audio Unity Store Add-on as its audio middleware solution and PlayMaker used for visual scripting. The majority of the music system was done by myself with limited access to a junior programmer. Most of the audio systems were built in PlayMaker FSMs (Finite State Machine). Master Audio came with PlayMaker FSM Actions as part of its package. You can find links to both PlayMaker and Master Audio at the bottom of this blog.
The original music design we came up with on Eon Altar was an adaptive music layer system. The music system would add or subtract the different layers of the music track depending on what state the party was in. Each level was broken into different musical themed “areas” and each level could have up-to three or four different tracks.
We started off the level with the Quest layers. This was the base track we used for player exploration of the level.
The Danger Zone consisted of when enemies were close to the party or if the party was in a dangerous “Area”.
We needed a way to detect how far away the enemies were from the party so the junior programmer created a module called the “Enemy Detection Sphere”. This was a sphere attached to the party and once an enemy spawner prefab entered the sphere the party became in danger.
With the enemy in the detection sphere a PlayMaker Event Play “Danger Zone” was sent to the music master FSM. (queue up the Kenny Loggins track Danger Zone from Top Gun sound track). This was on ongoing gag throughout the production of Eon Altar.
Pre-Battle is the state where we a player could go into combat at any time. The idea was to once increase tension through the music while enemies were visible on the screen.
As stated at the beginning our combat system is turn based, so the player, or the enemy, could engage combat at any time.
The last state “Low Heath” is when the players are doing poorly in battle and are about to die.
Since Eon Altar is a co-op game we took a percentage of the party’s heath, once we past that threshold we were now in low heath state. We once again sped up the tempo of the track and would add low pass filter to all the SFX, letting the music punch through.
When battle was finished in a victory, the music system would transition to an appropriate music state, Pre-Battle, Danger or Quest. When battle ended in death the music would fade out and play a death musical stinger on the Game Over screen.
The first question was is this even possible with the tools I had? The answer was yes!
The Master Audio Music System was way more robust then my first impression (a jukebox). Master Audio Music Playlist has an option to synchronize all tracks in a single playlist. This synchronized option allowed the playlist to play all at the same time and in sync. This was exactly what I needed to build the adaptive music system we designed. Master Audio PlayMaker bundle also had every FSM action I needed to create a working prototype.
The first prototype was built as a proof of concept in our test level.
Here is a video capture of the Adaptive Music prototype.
The one thing I have learned in all my time working on video games is, at any moment the design of the game can change and will change. This affects audio most of all because we are integrated into most, if not all, systems. Be it design changes, cut features, budget or time constraints, technical difficulties, or it simply doesn’t work. As much as you may think your idea is awesome you can’t be locked in to your design. Eon Altar was no different.
We had to cut the Pre-battle layer due to gameplay improvements with how the camera worked. The design change allowed the player to use the movement mark to pan the camera around to see ahead of the party. We needed to cut this layer as players would be going in and out of this state all the time.
Low Heath State was cut due to technical limitation of Unity 4.6 and Master Audio. There was no way to do dynamic mix states. The only way you could do any type of DSP (Digital Single Processing) was on a per audio source bases. Master Audio had no DSP support on an Audio Bus. (This all has changed now with Unity 5 and its audio mixer.)
Design changes and technical issues are one thing, but it all comes down to time. There is never enough time when it comes to anything artistic. During production I sat down with the composer and we hashed out what we were able to deliver in the amount of time we had. At the end we decided to combine Quest and Danger into one track.
We cut almost 90% of the original music design. We went from an Adaptive Music system to a basic Exploration and Battle track design. I built a hybrid system that could take either two separated tracks or a single track with a layer option. This gave the composer different options for when he was composing for the different levels.
These are the basic events in the music system, exploration music when we are not in combat or Cinematics, battle music when we are in combat. Change the exploration and battle music to a different track. Change track from the two track system to single track and layer system. Last but not least play cinematic music. When leaving a cinematic we could go into battle or quest music. Changing music track were done by placing trigger volumes in the level or build off other gameplay FSM.
During production the design of what happens when the party dies changed from the level ending to being restored back to a check point (Destiny Marker). I had to design the music system to Fade-out the music on the visual fade-out and play a death musical stinger as the players were teleported to the last activated Destiny Marker. On the visual fade-in the music would fade-in as well. The tricky part of this system was that depending on what Destiny Marker the player returned to the music needed to change to the that “areas” quest and battle music and re-enable any of the levels Music Triggers.
The Pause Menu and Session End came very close to the end of the project. This might have been the easiest part of the system to build as Master Audio has a “Pause All” PlayMaker action. This action paused all active audio busses and the music playlists as well. The end of game flow was added to this FSM as it was controlling most of the audio anyways.
Here is a video of the final Music system that was shipped with Eon Altar.