nmdist-log

Audio

As part of my effort to put together a shooting gallery map for playtesting, I decided to add the planned audio system to nmdist. My goal for the shooting gallery playtests is to determine if the weapons feel good to use, and a large part of that experience is the audio feedback.

While doing my preliminary research, I came across the Steam Audio library which provides spatial audio capabilities. I had no idea Valve published a library like this, so I was excited to integrate it into nmdist. I also selected the kira crate to handle talking to the audio device. After making some changes to Steam Audio to support ARM64 on Windows, I had the basics of spatial audio working in my engine.

Steam Audio provides the ability to process geometry and information about materials into an audio scene used for spatial audio calculations. Right now, every surface is tagged as “concrete”, but properly tagging all of the materials for each surface is high up on my todo list.

There’s still more work to be done to tie in the audio system to every aspect of the game, namely weapons, but I have enough for a neat demo. Right now, the ambient_generic entity, door sounds, and footsteps are hooked up.

Here’s a quick demo:

Hopefully I can get some time to hook up weapon sounds soon.