Dev Log Week 6: Sound Ideas

If you’ve been following the blog so far (why?), you’ll know I promised a whole lot of counting to 4 for this post. My idea was to talk about a dynamic music system, where various instruments could be swapped out or change between simple and complex versions of their melody. As the musicians may know, this would mean keeping track of beats, measures, etc., which are usually in groups of 4. There were two problems with this approach:

  1. Music is hard, to put it bluntly. I was a pretty good percussionist in my high school band, and I can drop some “sick beats,” as the kids say, but those skills did not transfer to composing anything complex. I’ve tried working with some chiptune stuff before, and since chiptune is basically the pixel art of sound, I was able to hack something together, but it’s much harder to make something sound good when you can pick whatever instrument you want.
  2. Failing to make music myself, I started looking up songs that I thought might fit underneath the game. I didn’t really like any of them, to cut to the point. I thought they were always too busy and melodic for a relatively simple, atmospheric puzzle game. The closest I got was a track from Super Metroid (go to 17:37 if the timestamp doesn’t work), and while I quite liked its feel, I’m still not good enough at music to replicate what I liked about it in my own song.

In the end, I took an open-source ambiance track, put it under my other open-source sound effects, and almost called it a day from frustration then and there. While I’m bringing it up, I might as well talk about sound effect design. I was continuing to take cues from the SNES for my sound effects, which meant doing a bit of processing to the effects I took to make them sound a bit worse. Specifically, they had to sound worse in two ways – reduced sample rate and bit crushing – although those are really two sides of the same complex, not really worth getting into coin. Suffice to say that the SNES didn’t have enough memory to store sound in the quality we’re used to, so developers had to compromise. What the SNES could do, though, is pitch-bend the crap out of any sample you put in, so I experimented with doing the same. Some sound effects in the game are actually being played at half speed and pitch from their original sample. Gamemaker also allowed me to dynamically pitch-bend samples I put in, which is useful for getting good footstep effects that don’t sound repetitive. Minecraft, for example, has 3-4 footstep sound effects for each type of material, but by never playing the same effect twice in a row and randomly pitch bending the one you’re currently playing, it can create the feeling of constant, slightly different footsteps. I take a similar approach.

Anyway, after I had the version with the ambiance (which is decidedly un-SNES sounding, but whatever), I still felt like something was missing. I didn’t have a sound effect representing the beam itself, since I figured it was going to be a long, droning sound that would get masked by any music. I decided to take a cue from Portal 2 and add the barest hint of a melody under the guise of the beam sound effect. I decided to make 5 different pitches the beam sound effect can play at, and made sure they were in the same musical key and didn’t clash too badly if any pair were played together. Then, I added the sound effect in, where it was just loud enough to be audible. When the beam reflects off of something new, it changes the pitch and makes the effect louder for a second or so. Standing on the beam also makes it louder, and if a second beam object is in the game, both of them play their sound effect to create a chord.

Sorry for no pictures this time – not like they can help too much when talking about sound. Next week, though, I get to finally start showing off some level design! I plan on essentially spoiling 1 level every week, talking about its design process, any cool objects that went into it, and so on.

Leave a Reply

Your email address will not be published. Required fields are marked *