I’m struggling with finding a good workflow to use FMOD together with source control. For our previous project we have been using git and I soon ran into the problem that there was no way to properly gitignore a folder in FMOD studio. It works fine for the audio files themselves, but if there are some meta files generated they are not placed next to the audio files. This makes it extremely difficult to exclude unused or “local” files from source control completely.
In Unity we have a Local folder which is placed in gitignore and everyone can drop some local tools and such in there without having to deal with metas because Unity places them next to the original files with the .meta extension.
To have a similar workflow in FMOD I have done some scripting in and out of FMOD. This is my .gitignore in the root of the FMOD project:
.*/ [Bb]uild/ /Assets/Local Audio Files /Metadata/AudioFile/** /Metadata/Asset/** /Metadata/DataFile/**
So as you can see I ignore all audio in my Local folder. Same goes for all (for me) relevant meta files. Now when I make a build I run a script that looks at all the audio files I use. If they are in the Local folder I move them to a Used folder so they get recognized by git.
Then after the build I run a second script that loops over all meta files and checks if the Used folder can be found in the file. If so, I add the meta file to another gitignore that unignores that specific meta file. This way, all actually used meta files get into git and the unused ones do not.
This actually works pretty decently, even if it’s not the prettiest solution. But now for a new project, we are moving to PlasticSCM for a large number of reasons. PlasticSCM mostly works the same way when it comes to ignoring and unignoring files and folders, except for one thing. They only allow a single ignore.conf file (their version of .gitignore). This will force me to append all the meta files to unignore to this single file and, preferably, I don’t want to get that messy.
My preferred solution would be to be able to freely move the meta files outside of their regular folder. Or at least allow nesting so I can move all meta files I actually use to FMOD/Metadata/Asset/Used/ for example so I can unignore that specific folder.
But I am always open to other suggestions.