How to handle reverb? (reverb zones, baked-in reverb)

Hi guys,

In our game, there are different areas. An area can be inside a cave or outside the cave or in a building. Now I’m wondering about a few things. How should I handle reverb in my project? In which situations would you want baked-in reverb, and in which cases would you use reverb zones or convolution reverb?

Also after doing some research, I’ve found that convolution reverb with IR might sound too realistic for the game we’re working on.

So I was thinking of using reverb zones (snapshots), but how do I determine which SFX or ambience loops should be affected by the reverb zones and which should use baked-in reverb?

And if you are using sounds that have baked in reverb and some that will use the reverb from the reverb zone snapshots, how to make sure that the sounds will sound cohesive even though they are using different reverbs? For example, the reverb that I am using in my DAW is a third party plugin which is not available for FMOD. The built-in reverb from FMOD sounds totally different.

I was thinking about applying the reverb from the snapshots to player sounds (footsteps, weapon sounds etc.), enemy sounds and other reactive SFX. And baking the reverb for ambient SFX (that are designed with the environment and looping constantly). What is the best way to approach this? I also don’t want to do anything that’s too CPU heavy so I am not sure what to do.

Would appreciate any advice!

Since you have asset with reverb from your DAW baked into the render, the simplest way to handle this would actually be to use convolution reverb. If you capture an impulse response of the reverb you’re using in your DAW, you can use that IR in FMOD’s convolution reverb for a similar effect.

As for the actual implementation of the reverb across events, approaching this as a matter of routing instead of using a snapshot may be a more suitable approach. Our general we’d recommend would be to use a global parameter to automate the reverb level in some way - for example, placing individual sends in events that send to a reverb return in the mixer, and using a global parameter to automate the level of those sends. Creating a default/preset event with the sends you want, or converting the sends to preset/shared effects, can be helpful in making setting this up more simple.

It’s true that convolution reverb is more CPU intensive than the usual reverb effect. However, instead of trying to avoid it ahead of time, it may be worth trying a setup with convolution reverb, and seeing whether the CPU usage is too high for your needs. Having many event instances that are routed into only a few mixer returns with convolution reverb on them will save CPU usage, and FMOD’s mixer won’t do any processing for those convolution reverbs when there is no signal flowing into them. Recording a profiler session via Live Update using the Studio Profiler will let you gauge the performance impact, and diagnose if you are running into any issues.