Let’s say you have a large, multiple level project with one sound bank per level and one generic bank that is loaded all the time.
You also have a variety of characters requiring bespoke sounds. These characters each appear in two or more of the game levels.
In order to hear these characters, their sounds will need to be loaded. Obviously. But where do I load the sounds? I can’t put them in the generic bank, because then they will be loaded in levels where they are not required, and I don’t have enough memory to waste loading sounds I don’t need to hear. But I can’t put them in level banks either, because it’s impossible to have the same sound in more than one soundbank (if you have one project with multiple soundbanks), and it’s EXTREMELY impractical to copy events between projects, because then you have parallel events to maintain.
The solution is surely to move to a database-driven design in which each asset (soundbank, event, sound definition, wav) has its own entry, and in which the relationships between assets can be edited freely. This way, a single event could be loaded in multiple banks efficiently.
Has nobody been affected by this before?
- PeteWard asked 9 years ago
It sounds like your system uses one project with lots of soundbanks. That doesn’t work for us because multi-user capability is very important to us. We are therefore using multiple FMOD project files so that one person can work on one level at the same time as someone else is working on a different level. The problem with this approach is that your solution doesn’t work anymore.
cough database cough 😉
Really?! You maintain hundreds of FMOD project files for one or more game projects?
What happens when you decide you want to change a setting on each of those projects? e.g. your source files folder changes, or you decide you need to change compression quality settings on all your banks to make them fit in memory?
Just out of curiosity a1psx, are you using fMod Designer or your own tools? The thought of creation of one bank per asset using designer sounds like "thousand monkeys at typewriters" kind of scenario to me.
I’m curious to hear how other people manage their banks/projects.
We are using one project file, with different banks for different categories. For example, all "action/reaction" sounds in one category, all environmental in another. Then from here, we split each category into multiple banks depending on whether sounds need to be streamed or cached etc.,
As to multiple people working on the project file – our internal network uses Subversion for version control.
I do know, though that there are.. Um.. Other game audio "solutions" out there that do have built in database / asset management and version control.
Personally I find those things kind of essential when managing a massive project with multiple staff – so it’ll be interesting to see how future releases of Designer incorporate such things.
I agree – I think asset and data management on large projects is FMOD’s major weakness. Other things it does very well indeed, but on large projects workflow and effective asset management is key.
I think that’s the most boring sentence I’ve typed all week 😉
We have it arranged more like groups, so we’ll have ‘enemies’ and some rooms in our levels have their own projects, but we’ll also have some assets with just one or two sounds in them
We use perforce, so our file requesters have the p4 extension which helps a little
lol @peteward – the really tragic thing is I understood exactly what you meant…
Just out of curiosity, do you guys use any asset management on the back-end – SoundMiner or something like that?
We have an in house tool for managing graphics assets which is web-based and works extremely well. I’m trying to decide whether to get our devs to make it incorporate sound assets – or whether it would just be easier to use something off the shelf like SoundMiner….
I guess I meant both (sometimes we’ll create multiple versions of an edit before deciding which one is ready for "prime time", or swap out during testing), but yeah particularly raw library stuff.
Having a look now at Basehead, thanks a lot for the tip.
We have a system where each object has it’s own bank (or banks), and the dependency link means when that object is loaded, it loads it’s mesh, textures and sounds. When the object is no longer required, it unloads all it’s data including it’s sounds.
It does mean we have a lot of sound banks, but because it’s all controlled we don’t ever have too much sound loaded, and if someone decides they want a fan on a new level, it just brings in the fan sounds.
This works for us very well.
Please login first to submit.