Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gamasutra: The Art & Business of Making Gamesspacer
arrowPress Releases

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Building a gameplay driven soundtrack

by Julien Ribassin on 05/31/16 10:53:00 am

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


For the last few months I have been working on a game for Windows, Mac and Linux called illumine. It is a roguelike in real-time in which I tried to explore a different approach to procedural generation. The game's world is not a static level generated before dropping the player in the game. In illumine the player is dynamically creating his own path. When designing the game, it appeared from the get-go that the audio would have to be very flexible because of the ever-changing nature of the environment. It was clear that I would have to create some kind of adaptive soundtrack.

Adaptive soundtracks have now become a pretty common feature in modern video games. Having a soundtrack that matches the actions of the player is a very effective way to reinforce immersion. Early examples can be found in the nineties in Lucas Arts games. In Monkey Island 2: LeChuck's Revenge, their in house iMuse engine allowed soundtracks to transition smoothly from one scene to another. The game felt like a big adventure and not like a succession of levels.

Another great use of adaptive soundtracks is for gameplay purposes. Elements of the soundtrack can be used as cues to inform the player about his surroundings. In The Legend of Zelda: Ocarina of Time, the soundtrack dynamically changes as the player approaches an enemy. The volume of an additional audio track rises as the distance to the closest enemy decreases. The obvious effect is that the tension is rising. However the most important effect is linked to spatial awareness. When the Zelda games moved from 2D to 3D, the player lost the ability to see behind Link. The developers thus needed a way to tell the player if there was an enemy behind him, otherwise the player might feel like the game was cheating if he got hit from behind out of nowhere. That's the real purpose of this additional audio track. If an enemy is creeping behind Link, audio kicks in, the tension rises, pushing the player to turn around or run away.

The game I am working on, illumine, is a roguelike without any combat. However, aggressive NPCs kill the player with a single hit. The player thus has no choice but to outsmart the AI. From a design point of view one of the biggest challenges is to make sure the player has at any given time all the strategic information he needs to make the right decisions quickly. Ideally, before exploring a new area, the player should have an idea of the positions and types of NPCs that await him in the dark.

illumine features dynamic shadows whose light source is the player. It basically means that if the player can't see any NPCs, they can't see him either. To convey information to the player about those NPCs hidden in the dark, audio was the obvious choice. However, audio tracks fading in and out for each type of NPC would have resulted in a huge mess. Instead I decided to assign to each type of NPC a short (< 400ms) and distinctive sound. I then gave to every one of them a musical score at 90 bpm that varied depending on the NPC's state (idle, angry, scared...). Without entering a room, the player can now tell what types of AI he will have to face. The next step is to figure out how to convey the positions of the NPCs.

illumine is a 2D game with a top-down perspective. Stereo can't help us and positional audio is thus extremely difficult. The only audio tool at our disposal is the sound volume of each individual NPC. Raising the volume as the player gets closer is the obvious application. To give the player an idea of the NPC's location I decided to add a visual representation of the propagation of the sound waves. Choosing different shapes also helped distinguish different types of AI when a lot of them are in the same area.The way the player interacts with the environment is by breaking down walls with a single press of a button. After a few tests, a problem appeared. All elements of the game were in rhythm, except the player. To fix this I implemented a small variable lag (at most 150ms) to make sure the player would break walls in rhythm. Incidentally this small noticeable lag also reinforced the sense of feedback.

As a result, we obtain a soundtrack dynamically created by the gameplay, with smooth transitions between the successive situations as the different parts of the soundtrack naturally fade in and out with the player's movements. Although very useful from a gameplay perspective, the soundtrack is so far pretty bland. It mostly consists of a drum kit and a few bass lines. To spice things up a bit, the idea was to add melodic adaptive tracks. To make sure that all those tracks would transition nicely to one another, they were all built in the same key and at 90 bpm. All those tracks also feature random variations that are triggered by the situation in order to raise the tension when a lot of NPCs are on screen for example.

In retrospect, this approach of audio design turned out to be much more difficult to implement than I had initially expected. For the last tracks there were so many constraints that composing the music had become a challenge in itself. The simplicity of the resulting music is a direct consequence of all those constraints. Amongst all the tracks that were created I always kept the simplest ones in order to avoid confusing the player. He or she should be able to decipher the soundtrack at all times. Despite this apparent simplicity, I am rather satisfied with the result. The soundtrack manages to not feel repetitive thanks to its procedural nature. However, I feel like I barely touched the surface. For example it would be very interesting to try to procedurally generate melodies in a game that would be appropriate.

A very positive effect that the soundtrack had on the game as a whole was that it convinced me to completely revamp the structure of the game. Halfway through development I realized that it was possible to transition smoothly from one track to another and I decided to ditch a classic structure with successive levels to adopt a more organic progression. And this is basically how the game became a roguelike. I'll write more about this dramatic change in a future post.


illumine is now on Steam Greenlight and is available on


Related Jobs

iD Tech
iD Tech — N/A, California, United States

Online STEAM Instructor/Mentor
innogames — Hamburg, Germany

Game Designer - Elvenar - Event Design & Live Ops
Sucker Punch Productions
Sucker Punch Productions — Bellevue, Washington, United States

Senior Systems Designer

Loading Comments

loader image