Foreword: Fruits of the Desert

My colleague Noah Kellman asked me to write the foreword for his recently published book, ‘The Game Music Handbook’.

In visual media, there is a tendency to treat music like polish. Hired late in the process, composers typically begin working on a project that's otherwise nearly complete. Our task is to put the contributions of the rest of the team in a more flattering light.

In video games, we have a chance to cultivate a different way. With the prevalence of small, flexible, independent teams, and a growing stable of smaller, more creatively lenient publishers, we as composers can take on a more involved role. We can exist more like artists and collaborators, and less like the last-minute afterthought, taken for granted. We can stop being outsiders and start to embed more deeply with our colleagues. We can create more opportunities to earn their trust and respect. We can play a critical role in shaping the trajectory of the games we make.

There are a million and one ways to structure music in games. Take 'The Secret of Monkey Island', where the score modulates effortlessly from song to song as you travel the Caribbean. Or perhaps 'Uurnog Uurnlimited', where music algorithms evolve alongside player choices that other games rarely acknowledge. The scale of what's possible continues to grow year over year. And within this space are ways you and I can contribute that sidestep typical expectations.

Doing your best work generally requires time and freedom beyond the norm. You need more of both — so that you have the space to maneuver out of false starts and dead ends. The more you intend to challenge yourself and dance along the edge of what is possible, the more flexibility you need. You can't go out to the fringes without the trust of your coworkers, and you can't make your way back in a beneficial manner without sufficient time. So, if you can, get involved early, and don't forget to take breaks. Deep work requires deep rest.

If you do find yourself on board at the outset: Congratulations! Welcome to the desert. At this stage, everything is uncertain, and anything is possible. In this unfamiliar territory, you may not always have a 'feel' for the trajectory of a project, and your colleagues may not either. There can be anguish in trying to write music for a game that has yet to figure itself out. You may find it fruitless developing a musical style in such foggy surroundings. It can, therefore, be beneficial to put off the content aspect of production until you have a better sense of the scope, scale, and essence of the project. For the moment, research & development may be the best use of your time.

I found myself in this position during the development of #Solar Ash. It took years to solidify the identity and mechanics at the core of the game. If I had spent much of that time making music demos, trying to hit a moving target, it would have been rather inefficient. It proved more fruitful to focus on weird, novel, and spontaneous ideas, workflow tools, and audio systems.

#Solar Ash was the first fully 3D game I ever worked on, and I treated the experience like being in an educational sandbox. Learning about tangential disciplines has a way of stoking the mind, and I learned a whole lot of math. I challenged myself to reinvent wheels, building things I'd seen other people do. I developed a tool for doing doppler effects (how the pitch of a sound changes as you move quickly). I also built a dynamic reflection system, something I'd seen in AAA games, like Overwatch. But I tried to find new ways to use them. You could use dynamic reflections as a stylistic effect instead of a realistic one. What if doppler pitch effects were used not just to alter the pitch of moving objects, but music? I became singularly focused on building out systems that could react in dynamic ways as you move through three dimensions. Being so engrossed in a new context lead me towards ideas for systems I'd never seen before as well. One example is a forest of trees that sing to you as you move through them. Your angle and velocity relative to each tree yields a different musical note. By diving so deep into sound propagation and vector math, I better understood the challenges and possibilities of this new paradigm, the 3D environment. And I came out the other side with ideas I would never have come up with otherwise, and a newfound ability to implement them. When you work in a more generalized way, you're more likely to create something with multiple use cases down the road. I've already reapplied much of the new math I learned while working on #Solar Ash. When I need a way to modulate a sound based on its positional relationship to other objects, for instance, I can take the dot product of two unit vectors. Whether you're personally familiar with these examples is unimportant. With time and space to play, you can collect an assortment of tricks, forever available to you and your peers (if you're kind), for the benefit of the game, and beyond.

There are ways to contribute besides music, though it can be challenging at times. You may be working with subject matter, people, or genres unfamiliar to you. I wouldn't have a great idea about how to contribute to the design of a fighting game, for instance, beyond giving feedback about whether it feels good or not to play. There are times when it's not a natural fit to chime in beyond musical boundaries, or perhaps you don't feel like it, and that's okay. Still, there may come a time when your unique background, skill set, and perspective afford you insights no-one else has. This pre-production period is a great time to interface with new ideas outside of your comfort zone. When the pressure to deliver content isn't there yet, you have the opportunity to pick up new skills and learn from your colleagues.

We all have capacities that extend beyond our outward specialty. I used to build websites and I love making logos. The sound designer I currently work with has also directed game projects. You might have an affinity for literature. You have more to offer than what it says on your business card or website. Getting involved early allows others to know you better, and gives you a chance to put more of your personality into the game. You get to be a part of the prototyping phase, whether you're exploring ideas in a musical silo or iterating on cross-disciplinary concepts with other members of your team. You, as much as anyone else on your team, can theoretically steer the direction of the project. Sometimes even the smallest contributions, ideas, and suggestions can have an outsized impact.

Over time, there is a cumulative effect to all of this novelty exploration. You start to fill up your bag with hard-earned tricks, lessons from success and failure, and curiosities worth a look down the line. Some of these will be unique to games, while others may overlap with other musical forms, like film or theatre. It could even go beyond into other mediums, like poetry or painting, should you ever find yourself there. For instance, in my bag, I know I can effectively create procedural sequences and iterations on many things (music, writing, etc.) using Markov chains. Or I can shift any note in a diminished chord down a half step to get to a dominant chord (and eventually to other keys). I know that a mono reverb in the middle of a signal chain can help to fill out a sound, which for me cross-pollinates with the way I use layers and effects in Photoshop. And by giving musical elements different bar lengths, one can create musical variations that go on without repeating for years.

The resourcefulness you accumulate in your creative travels may allow you to sidestep a mental block. I bring back old ideas from the dead all the time. The scores I've written for successful games like #FEZ and #Hyper Light Drifter contain tons of old, repurposed ideas. But I think we benefit from first stretching ourselves in those uncomfortable moments, continuing our search for new territory. There are always new hurdles to cross, and if you want to do your best work, prior experience alone won't leap those bounds for you.

Early on in my career, I worried that sharing ideas and discoveries freely with others would dilute my uniqueness, jeopardizing my chance at success. But we all benefit tremendously from the collective knowledge accumulated by those that came before us. And even with an open spirit, sharing what you know with others, you will still have a bag of tricks wholly unique to you. There are some things we can't effectively externalize, and we all see things a different shade. There's a little bit of the specific, a little bit of the broad, and a whole lot of you in every creative experience. Take some time to look through your bag, reflecting on what you've learned. Give your brain the time and space to make new cross-connections. It can help you make better sense of your work, your colleagues, and the broader creative world around you.

The groundwork for the 'tried and true' approaches to video game music has been laid down and built upon for decades at this point. And you will find this book to be an excellent primer and guide to applying those techniques and concepts. But many exciting possibilities lie beyond the well-worn path, in the endless desert of creative hypotheses. If you can, spend a few weeks there, trying out novel ideas: Explore an implementation approach that you've never heard before. Follow a silly thought experiment down a rabbit hole. Flip your usual strategies upside down. If you can stomach the struggle, the benefits you return with can be extraordinary.

Sure, you will sometimes find you've unintentionally reinvented the wheel. Or learn you've failed at something someone else already discovered didn't work. But none of this exploration truly goes to waste. If you do uncover a gem, it may not suit the game. And trust me, when you come back from the desert, you may return with some inappropriate ideas! But you can always store them in your back pocket, for use at a later date. If your time was not overtly fruitful (to be fair, the desert doesn't have a lot of fruit trees!), you've at least learned something. And the more you wander, the more you'll learn the cost of your creative choices. You'll be humbled by what you could never accomplish without help. And you'll wise up to hairy problems that are hard to pull off even once.

Working on video games is not always fun and games (go figure). But creatively speaking, it has put me in some of the most compelling and confounding circumstances I've ever come across. So I guess what I'm saying is: don't be afraid to step into an oddly original landscape. You'll inevitably find yourself in a predicament anyway. So you might as well have a say about your surroundings.

Take this invaluable book, or a book like it, with you on your travels. You may enjoy breaking the rules more if you know what they are.

Presentation: Abracadata!

I gave a microtalk at GDC 2018 as part of a session at the Artificial Intelligence Summit called 'Turing Tantrums: Devs Rant!'. I shared a thought experiment about exploring the possibility space of abstracted data relationships that cross disciplinary boundaries. Unlikely data marriages!


As a bit of an outsider I thought instead of ranting, it might be better to > share a thought experiment around an area of interest for me lately ...


Games are a treasure trove of data.

A lot of what happens in games has something to do with numbers and math, and this stuff is great for creating and reinforcing the internal relationships in a game.

The most common relationship is player input, and how it drives just about everything. But let’s focus elsewhere.

Maybe your game has an enemy. A blue rectangle OH NO! It’s being shuffled around the world with some movement instructions. And you spruce it up with an animation, and maybe it feels good with some tweaking, but if physics and animation share their data, maybe they make even better decisions. Also that bearded man is now a giant dog thing.

Of course, you may not want all yours systems to share, and sometimes a hand-authored, isolated thing might be what you need. But tying camera movements to explosions or using text to drive a gibberish voiceover are examples of ways that tentacular relationships can improve the way a game feels.

Speaking of gibberish, I spend a lot of time thinking about sound, and lately I’ve been thinking about data sonification: using a data input to generate a sonic output. When a gameplay event occurs, like a footstep, we like to trigger a sound. This is a very useful and simple form of data sonification.

Another common practice is to map an object’s spatial position visually, to a relative spatial position, sonically. For instance, mapping the X position on screen to the stereo pan position of a sound, or mapping an object’s distance from the camera to a sound’s volume and brightness.

These mimic the way we hear things in the real world and are simple victories. But the examples I’ve given so far are well known and commonly employed. They’re perfect for clarifying, giving the player more coordinated feedback about what they’re interacting with.

But I want to talk about some of the less utilitarian places these relationships can go. Why not do more to re-contextualize this data instead? We could springboard ourselves into explorations of relationships that are weird, novel, counterintuitive and wonderfully asymmetric.

Here’s a silly one. There’s a game called ‘Sonic Dreams Collection’, where changing the size of the game window on the main menu changes the pitch and speed of the music. But what if it went beyond that? Suddenly you might care about window sizes in this strange new context, and it might elicit a reaction normally not reserved for the size of your window…

Or what if you tied the movement pattern of the ripples of a nearby river to the hair physics of your player, but only inject the data as you move away from it? What is this environment trying to evoke? Negative magnetism? (what does that even mean)

Finding meaning here can be a bit like trying to parse through a tarot card reading. You draw some random sources and try to map meaning onto their relationship.

Maybe the gag about window size didn’t inspire a deeper search for meaning, but what about a more opaque & esoteric data abstraction ? You might experience it as a kind of intelligence. And we could employ these relationships in subtle but cumulative ways.

Bees, for instance, perform a figure-8 called the ‘waggle dance’ that relays important locational info to other bees. You could create a dumb version of this cooperative relationship using abstracted data, and employ it within a system of similar objects. Maybe the relationship relies on distance between the objects, so that when they get close, they appear to share information with each other through sound or movement.

As worldbuilders, we could hint at a deeper ecology, through layers of data abstraction that might seem cooperative, adversarial, emergent, or mysterious and difficult to verbalize. We can suggest that with or without the player, the actors in this ecosystem are hopelessly entangled, and will carry on with their ebb and flow, just like we all do. Could be cool ...

The nice thing is that unlike the "waggle dance", you don’t need to prove it out with science. Maybe even the most arbitrary data relationship could feel like real intelligence if it’s been sufficiently abstracted. Players will conjure up their own interpretations, they like to do that. So you just need to convince them that they are experiencing something meaningful.

In other words, I think that by making different parts of a game communicate and share information in non-traditional ways, we can emulate the vitality we experience from real intelligence, and as a result it may be possible to manufacture a deeper sense of meaning and causality.

And the more liberal the different parts are in communicating with unlikely partners, the more things may start to get downright ecological.

And an interesting ecology of data relationships would probably have different kinds at play ... opaque ones, transparent ones, those that seem arbitrary, those that are rational, the esoteric (opaque+arbitrary), the absurd (transparent+arbitrary), the accessible (transparent+rational), the intelligent? (opaque+rational) (i totally made this up)

I think the abstraction and recontextualization of data can lead to all sorts of results. But if we sense there are meaningful relationships of cause and effect at play, that could lead us to suppose there is intelligence, and that could bring more depth to our experience.

So give it a shot! Things will definitely happen if you let your systems co-mingle.

You could let the volume level of a creature’s mating call drive the probability that other creatures respond in kind.

You could light a room using the average color of the last 60 frames.

You could take the wave propagation system used to drive visual wind FX and map it to the size of an NPC’s shoes.

But in any case,


Or perhaps … Abraca...dada?(ism)

Link: GDC Vault: 'Turing Tantrums! AI Devs Rant'

Presentation: Serialism & Sonification in Mini Metro

I gave a talk at GDC 2018 as part of a session at the Artificial Intelligence Summit called 'Beyond Procedural Horizons'. I talk about how we combined data sonification and concepts taken from the musical approach known as Serialism to build a soundscape for Mini Metro.


Serialism & Sonification in Mini Metro

or, how we avoided using looping music tracks completely, by using sequential sets of data to generate music and sound.


In music, there is a technique called Serialism that uses sequential sets of data (known as series), set about on different axes of sound (pitch, volume, rhythm, note duration, etc), working together to create music.

In Mini Metro, we apply this concept by using internal data from the game and externally authored data in tandem to generate the music.

You might have noticed that the game has a clock - the game is broken up into time increments that are represented as hours, days and weeks. (though of course faster) And before diving in, it’s important to know that we derive our music tempo from the duration of...

1 In-Game Hour = 0.8 secs = 1 beat @ 72 bpm = our master pulse.

We use this as our standard unit of measurement for when to trigger sounds. In other words, most of the sounds in the game are triggered periodically, using fractional durations of 0.8 seconds.

In Mini Metro, the primary mode of authorship lies in drawing and modifying metro lines. They’re also the means in which everything is connected. They serve as the foundation upon which the soundscape of pitches and rhythms is designed. The lines are represented by a unique stream of music generated using data from different sources.

The simplest way to describe this system is that each metro line is represented by a musical sequence of pulses, triggered at a constant rate with a constant pitch. This rate and pitch is constant until they are shifted by a change in gameplay. Each metro station represents one pulse in that sequence. Each pulse has some unique properties, such as volume, timbre, and panning, and these are calculated using game data. Other properties still are inherited from lower-levels of abstraction, namely unique loadouts for each game level. Some levels tell the pulses to fade in gradually, other levels might tell the pulses to trigger using a swing groove instead of a constant rate, and the levels are differentiated in other ways as well.

[1, 2, 3, 4, 6]

All of this musical generation is done using sets of data. And referring back to Serialism, the data is quite often sequential, in series. These numbers actually represent multiples of time fragments. Or, to put it more simply, rhythms. In the case of rhythms and pitches, the data is authored, so we have more control over what kind of mood we’d like to evoke. This data is cycled through in different ways during gameplay to generate music.

So we’ve got some authored data generating musical sequences, but what about using game data? Ideally we could sonify it to give the player some useful feedback about what is happening.

Combinations of game and authored data are found throughout Mini Metro’s audio system. There’s lots of game data and authored data being fed into the system, working in tandem. Authored data is often used to steer things in a musical direction, while game data is used to more closely marry things to gameplay. In some cases, authored data even made its way into other areas of the game. Certain game behaviors like the passenger spawning were retrofitted to fire using rhythm assignments specified by the sound system.

You might ask why go through the trouble to do things this way? Well, it is really fun. But beyond that there are a variety of answers and I could go into a lot of depth about it, but I think the most important reasons are:

Immediacy & Embodiment

Immediate feedback is often reserved for sound effects and not music, and immediate feedback in music can feel forced if not handled correctly. This type of system allows us to bring this idea of immediacy into the music in a way that feels natural.

The granularity of the system allows the soundscape to respond to the game state instantaneously and evolve with the metro system as it grows, and a holistic system handles all of the gradation for you. When your metro is smaller and less busy, the sound is smaller and less busy. As your metro grows and gets more complex, so does the music and sound to reflect that. When you accelerate the simulation, the music and sound of your metro accelerates. When something new is introduced into your system, you’re not only notified up front, but also regularly over time as its sonic representation becomes a part of the ambient tapestry.


And this all (hopefully) ties into a sense of embodiment. Because all of these game objects have sounds that trigger in a musical way, and all use a shared rhythmic language that is cognizant of the game clock, and use game data to further tie them to what is actually happening in the game, things start to feel communal and unified.

It’s an ideal more than a guarantee, but if executed well, I think you can start to approach something akin to a holistic experience for the player.


Link: GDC Vault: 'Beyond Procedural Horizons'