We are currently working on game on UE4 and have decided to use FMOD. I’ve already worked with this software, but only on the dynamic music part. And on this project I’m dealing with the full spectrum of the audio, meaning sound design and music.
There are a few questions that we need to answer, because at the moment, the code / optimisation team feels more comfortable with using the native UE4 audio implementation than FMOD because of a few interrogations we have.
I’m french, so I’m gonna try to be as clear as possible. If some stuffs are not clear enough, don’t hesitate to ask for more details or tell me what part you don’t understand.
So here are the questions :
How is handle banks loading in UE4 ?
I’ve read the documentation and made some tests by creating the Master Bank, and a few additionnal banks ( first person, third person, ambiant, dialogs, environment ). The test map I have made is pretty simple : FMOD Ambiant sounds starting when the map is loaded.
And no matter what sound I choose everything is loaded correctly and plays fine in the test map. So our interrogation is : does that mean that every single bank is loaded by default. Or FMOD is clever enough to load the needed banks when the level loads ? Or do we need code our own loading system to optimize loading performances ?
If it is automatic, and FMOD knows how to deal with the events… one example I have in mind is : if I create an audio event and assign it to two different banks ( let’s say level1.bank and level2.bank ), if the same sound / event is assigned to each bank, is FMOD able to load only the level1.bank if I start level1.map ?
How much cost IR ?
Impulse reverbs are gorgeous. And as a sound designer I want to give tools that are easy to use for coders and level designers. So, for testing purposes, I’ve created at the moment 5 returns with 5 different IRs ; and I’m using snapshots to control what reverb is used. I think it’s way more easier to say to coders “trigger this snapshot” than “get this return, load this sample and activate the return on this channels”… also it allows the LD to trigger reverbs whenever they want.
So my interrogation is, is it viable ? Is it something you’d recommend ? At what point is it too much returns (because we could have at least 10 different reverbs) ? How does it impact performances to have that much returns with impulses loaded ?
Is there a “cheatsheet” about performances for a multiplateform game ?
I’ve checked a lot the profiler while I’m creating different tests cases. And there is something that is actually difficult for me to anticipate : what is the average / optimal numbers for the different important parts of the FMOD engine ( CPU usage, CPU mixer, CPU update, memory, file IO, voices, instances ).
For instance, let’s say we are on PC ( some kind of big gamer PC that can handle the most heavy games ), how much instances, voices, cpu usage, memory is best ? And what about a tiny PC ?
Also, I haven’t seen “per plateform” setup for “max instances” for example. So for me, besides the audio compression setup, I need to configure and setup my FMOD project for the lowest capable plateform… is it ?
Thank you in advance for you answers,
And also thank you very much for this kind of middleware that fits perfectly my needs and allows me to create some really cool sounds and music. Keep up the good work.