FMOD, Unity, Git and game jam setup - tell me if this is a good appraoch

Heya

I know that this has been asked and answered many times but that’s also slightly the problem, I have a bookmark folder with many entries on how this can be done.

For this jam we’re setting it up as follows. We have more than 2 persons working on audio.

  • FMOD session in the repo but outside of the asset folder.
  • separate banks eg., sfx, music, dialogue.
  • gitignore based on this post
  • non-audio people do not need to have FMOD studio on their comps but are encouraged to pull often to avoid stray audio files coming back to pester.

Suggestions are welcome. I expect there to be some commit conflict but here’s hoping for as little nail biting as possible :rofl:

Thanks
J

That all seems fine at a glance, but I would recommend reading over our documentation on using source control with FMOD for Unity, which has a slightly updated gitignore, and also the following advice from the FMOD Studio documentation on using source control:

One option you may wish to consider, depending on your needs, is to have two separate repositories for your Unity and FMOD Studio projects, and to only commit the built banks to the Unity repo as needed.

1 Like

Thanks Leah, that’s really helpful.
I think we’re sticking with the approach we’re using now just because it’s familiar to the team but for future projects your advise will be very useful. Thanks for gitignore update link I’ll have a look and see what suits us.

Best

J

1 Like

I’ve set up the Unity, FMOD, Git combo many times these last few months, and this is my current preferred setup:

I’m gonna use a project called “In Ruins” as an example.

Folder structure

This is the root folder of the git repo. The Unity project is in the “In Ruins” folder.

For some projects, I like to keep the FMOD project folder in it’s own repo, which also works just fine.

Gitignore files

FMOD project gitignore.

Should be located in the FMOD project root folder, alongside your .fsproject file. I’ll sometimes ignore the profiler folder too, since wav-files in those sessions can get quite large.

# FMOD project files

# User-specific files and locally generated files
.cache/**
.unsaved/**
.user/**

Unity gitignore

Should be located in the Unity project root folder. Note that I’ve only pasted the FMOD-related parts here.

# FMOD stuff

# Never ignore DLLs in the FMOD subfolder.
!/[Aa]ssets/Plugins/FMOD/**/lib/*

# Don't ignore images and gizmos used by FMOD in the Unity Editor.
!/[Aa]ssets/Gizmos/FMOD/*
!/[Aa]ssets/Editor Default Resources/FMOD/*

# Ignore the Cache folder since it is updated locally.
/[Aa]ssets/Plugins/FMOD/Cache/*

# Ignore bank files in the StreamingAssets folder.
/[Aa]ssets/StreamingAssets/**/*.bank
/[Aa]ssets/StreamingAssets/**/*.bank.meta

# If the source bank files are kept outside of the StreamingAssets folder then these can be ignored.
# Log files can be ignored.
fmod_editor.log

FMOD Settings in Unity


I like to use either single platform build or multiple platform build. My bank files are located in a folder named “FMODBanks”. This folder is located in the Unity project root folder, alongside the Assets folder.

Event linkage is set to GUID, so I can rename events somewhat safely.

FMOD project settings


Here’s the folder path for built banks. Since it’s relative, it’ll work for anyone else working on the FMOD project as well.

1 Like