Latest news

What I'm Learning About Game Audio

My initial plan for audio in From The Sun was to have it be entirely procedural. It seemed like a promising direction for a game where player state is already influencing gameplay. The tones would be based on player speed, everything generated at run time. At first it seemed like it was coming together: I had a simple system set up to play arbitrary tones and constants available for the wavelengths of musical notes. Mostly I was generating sine waves, created a player that would combine all the currently playing sounds into a single stream. Eventually I had sound effects for most game events: shooting, collecting photons, taking damage, and dealing damage. They were ... harsh. The simple sine wave tones do not sound good. I would have to create filters for them to make different instruments voices. It would be a lot of effort to recreate something that's been being built up for years. On top of the sound quality not being good I discovered that Unity's WebGL, and maybe WebGL in general, doesn't support generative audio. I like being able to host builds online to show progress. I could have started hosting OS specfic builds, but combined with the low quality sound I was getting it was clear that generative audio is not the way to go.

So I started looking at authoring tools, of which there are tons. It's really overwhelming to sift through all the options, but I managed to find a pretty easy to use sequencer called LMMS. It was really easy to get started on and now I've got some better, although still not amazing, sounds effects and even a dinky little music loop. They've taken me just a few hours to put together, rather than the couple of evenings I spent getting a really low quality sound generator going.

I think the real take away for me from this whole process is that finding the right tool is always going to be faster and give better results than trying to make a new tool without having ever used one like it.

Now here's a link to a new build with that new audio in it.

See all blog posts

Hello World!