Spatialization, Propagation, Occlusion, and Performance

I know this is not 100% an FMOD technical question, but I’d love to know what the community’s (and Firelight’s) experiences have been here.

We’re developing an open world Oculus Quest game, so performance is key. We also need some more advanced propagation (I know that kinda conflicts with needing performance). After weighing out the 3 usual solutions (Oculus Spatializer, Resonance Audio, and Steam Audio) we’ve come to a few conclusions.

  1. Steam Audio sounds the best to us. Its directional rendering, especially height, feels better than the rest. But it has no real-time occlusion on moving geometry. That’s pivotal to our game. It’s also the mist CPU expensive. Needs extensive time for baking.

  2. Resonance sounds the 2nd best to us, and appears to be the best optimized for mobile which we’ll need for the Quest. But it bypasses the mixer (deal breaker), has too sharp of an occlusion cutoff, and lacks pathing features we’d like to have. Also requires baking.

  3. Oculus Spatializer requires no baking, has teal-time propagation features as of 2018 but those features have been in “beta” for 3 years. Oculus has responded to us saying that these features are “heavyweight” and probably not suited to the Quest. It has far fewer controls on the FMOD side, and in many cases sounds the most dated with directionality. This solution still may be our best option, simply using the occlusion features and dealing with no pathing/portaling.

  4. Microsoft Project Acoustics sounds nice, but has no official FMOD counterpart yet, though they’ve told us that the source code is available under license and could be (and has been) adapted for FMOD. But it’s a younger option and there’s no available info anywhere on how it holds up on a Quest.

Any experience here that would help us figure out an FMOD-friendly approach? Is there anything incorrect with any of the information I’ve gathered about these options? To get simulated propagation is our best solution to code something that runs parallel to FMOD? Anyone done that before?

I can’t comment on which solution would be the best fit for your project’s unique needs, but I can say that it’s common to use both third-party and FMOD spatializing effects in the same project. This is because most third-party spatialization options are either more expensive or limited in how much content they can handle than the FMOD spatializer, meaning that it’s usually a good idea to use the third-party spatializer only in important events that require it for gameplay reasons, and the FMOD spatializer for less gameplay-critical events.

Other than that, it’s generally better to rely a product that already available than on one that’s expected to be released in future. This is partly due to the risk of delays, of course, but more importantly because the released product may differ in some respect from your expectations of that product, meaning that you’ll need to change your game project to accommodate the differences. This kind of change can be a significant development burden, especially if it occurs late in development.