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.

Computer Productivity

I've spent a lot of time over the years tinkering with my computer workflow. While I can safely say I developed a particular fondness for creating these little solutions, generally I think it's saved me considerable time.

E-Mail

I've found that using my inbox as a sort of a 'to-do desk' has worked well for me. I snooze, archive or delete anything that isn't relevant to me for the day. I also send myself e-mails, which I use as reminders, and I will often snooze those to the appropriate date as well. I've spent a lot of time customizing the way my inbox looks and behaves so that it only has and responds to the essential things that I need.

My customized g-mail.

The default way to snooze and send yourself emails in gmail requires a few steps, so I've created workflows that cut the time these tasks take.

I set up an Alfred + Keyboard Maestro workflow that lets me snooze emails to specific dates and times using shorthand syntax. So, assuming I have one or more emails selected in Gmail, I will toggle Alfred and use the keyword z.

Some examples:

z 2tue : snooze two Tuesdays from now
z w    : snooze 1 week in the future

! go to store, 8h : create a new reminder (sending an email to myself) to go to store and snoozing it for 8 hours.

z 11a  : snooze to the next instance of 11 am, which may be tomorrow.
z 2mo  : snooze for 2 months
z d20  : pick a random time to snooze to within the next year (my personal favorite)

I built the syntax parsing in node.js, on top of a pre-existing natural language date parser called chrono, so it also takes more verbose commands, days of the week, full dates, etc. I just added custom syntax where I thought it could be more efficient and suit my workflow better.

Once the date parser figures out what date and time you're requesting and spits it out in a format that is then passed from Alfred to a Keyboard Maestro macro via osa/AppleScript. Then Keyboard Maestro handles all the keyboard input steps necessary to open the snooze window, input the date etc.

This workflow is available to use to your heart's content on github.

Was It Worth It?

Was It Worth It?

For all you freelancers out there, I built a 'project personality matrix', for fun and to hopefully help me to continue to make thoughtful work choices.

The idea is to grade current/future/past projets in different categories that matter to you, which gives you a score out of a 100. It's fascinating to see how various projects line up.

Adjust the weights / categories of importance to suit your needs !

Link: WiWi Score