I’m in the process of implementing audio into an online multiplayer game.
(Using FMOD Studio and UE4 Integration)
When simply hosting a game and testing things like music adaptivity or SFX in the map, it all works fine.
However, when a client joins, every FMOD event that is triggered is globally audible (such as PlayEvent2D), even though the containing classes and event triggers are local.
But the main problem is that by their actions players can change other player’s FMOD parameters (which are not stored in any global or exposed variable – parameter changes are simply triggered).
As such, conflicting state changes in music result in stuttering switches between music tracks; transition samples being triggered machine-gun style (again, globally) and many more glitches.
Once the client leaves, everything is back to normal.
Our blueprint structure in theory should not allow for events / paremeter changes to affect other players, since they are triggered locally and owned by local components.
Is it an FMOD-specific setting or issue; is there a way at all to “tell FMOD to only talk to its own client”, so to speak?
Any help would be greatly appreciated!
EDIT: Some further testing revealed that sound / event changes triggered by UI elements / widgets stayed local and didn’t affect other players. This is what I’d like to achieve with the whole sound logic; is there a good, elegant approach as to how this would best be handled?