MiniAudio Integration
MiniAudio is a leight-weight, cross-platform audio solution. Its integration is provided as a free alternative to the FMOD integration, for games that have fewer requirements for game audio. It is also easier to set up and use, especially if you are unfamiliar with FMOD.
The MiniAudio integration supports both positional (3D) and non-positional sound sources. The MiniAudio listener component is used to control from where sound is perceived.
The MiniAudio sound asset is used to get a .WAV or .MP3 file into the engine and contains options for randomizing sound playback.
Sounds can also be played programmatically, e.g. from visual scripts or AngelScripts, using the script function ezSound::PlaySound()
.
Scene Editing Settings
The MiniAudio editor plugin adds UI elements to mute sound entirely and to adjust the overal volume:
Limitations
Currently, all instantiated sounds get played, no matter how far away they are. There is no sound virtualization and no culling. This is typically no problem for small games, but when you start making games with larger scenes, you may run into performance problems.
The attenuation model of MiniAudio is also not particularly well suited for first-person and third-person types of games, as it lacks control for game designers.
Overall, the feature set of MiniAudio is not comparable to what FMOD offers, and the integration into EZ is even more limited. Some functionality can and may get added to the integration, but if you do need significantly more control or plan on building large worlds where many sounds may play simultaneously, FMOD is the better choice.
The concepts of how MiniAudio and FMOD are integrated into EZ are nearly identical, so it is possible to start with MiniAudio and switch to FMOD when needed. However, be aware that you would still need to adjust every object and every script that plays sound, as you would need to switch from the MiniAudio sound component to the FMOD event component and adjust asset GUIDs in scripts.