Post by quo on Oct 6, 2022 22:26:36 GMT
I've started using MasterAudio for my project recently and getting familiar with MasterAudio's way of handling sounds. I like it a lot so far and it has all the functionality I need! However, I'm worried if it'll scale well with my project since my project is a bit unorthodox.
I have a one scene game. All level graphics, collisions, enemies, etc enter or exit the scene via script calls. (Levels are created externally in TILED - they're just XML files). A one scene game worked really well for my last game. However, my last game also had over 700 different sound effects. (~50 different enemies, each one having anywhere from 5-15 sound effects for their different behaviors, hit rxns, etc. Add in impacts, footsteps, tools, UI, etc.) The number of sound effects climbed really quickly. I expect my current project to feature a similar number to my previous game.
So this is where I'm a bit worried about whether MasterAudio will scale well with my game's project setup. Assuming I have 700 different sounds again, that would mean my one scene game would have 700 different sound groups, one sound group for every different type of sound. Each sound group will have one or multiple voices. For example, we'd need ~3 voices for the player's gun (if they shoot quickly). We'd need ~3 voices for monster frog croaks (since they attack in packs), etc. Potentially we could be looking at 3000+ voices in a scene. And each voice will be its own game object, with its own audio source...
I know the load is alleviated somewhat since only a handful of voices are ever active at any one time. BOSS sound effects can be marked addressable since they only occur in a specific area/room, etc. Still, assuming 3000 voices, and assuming only about 20 voices are active at one time, there'd be 2980 voices just sitting inactive in memory. It kinda seems like a lot?
The weakest platform I'm aiming to have this game on is Switch. Is ~3000 voices in a scene considered a lot? Or is that actually an okay number to have? If it is too much, what are my options to ensure smooth performance?
Are there script functions to create Sound Groups at run time? (For example, only create the sound groups associated with a boss monster when actually fighting said boss - then Destroy its associated sound groups once the boss is defeated. That type of thing?)

I have a one scene game. All level graphics, collisions, enemies, etc enter or exit the scene via script calls. (Levels are created externally in TILED - they're just XML files). A one scene game worked really well for my last game. However, my last game also had over 700 different sound effects. (~50 different enemies, each one having anywhere from 5-15 sound effects for their different behaviors, hit rxns, etc. Add in impacts, footsteps, tools, UI, etc.) The number of sound effects climbed really quickly. I expect my current project to feature a similar number to my previous game.
So this is where I'm a bit worried about whether MasterAudio will scale well with my game's project setup. Assuming I have 700 different sounds again, that would mean my one scene game would have 700 different sound groups, one sound group for every different type of sound. Each sound group will have one or multiple voices. For example, we'd need ~3 voices for the player's gun (if they shoot quickly). We'd need ~3 voices for monster frog croaks (since they attack in packs), etc. Potentially we could be looking at 3000+ voices in a scene. And each voice will be its own game object, with its own audio source...
I know the load is alleviated somewhat since only a handful of voices are ever active at any one time. BOSS sound effects can be marked addressable since they only occur in a specific area/room, etc. Still, assuming 3000 voices, and assuming only about 20 voices are active at one time, there'd be 2980 voices just sitting inactive in memory. It kinda seems like a lot?
The weakest platform I'm aiming to have this game on is Switch. Is ~3000 voices in a scene considered a lot? Or is that actually an okay number to have? If it is too much, what are my options to ensure smooth performance?
Are there script functions to create Sound Groups at run time? (For example, only create the sound groups associated with a boss monster when actually fighting said boss - then Destroy its associated sound groups once the boss is defeated. That type of thing?)
