Setting up Source control for Studio

Hey there,

We´re a small studio producing linear content for TV/Commercials etc.
We recently finished our first large scale production almost entirely with Unreal Engine and now want to push more of our projects too.

We used Perforce as source control on our first project and it worked very well.
But for a large scale studio setup with many different Project types and Projects, this might quickly outgrow the free tier offered by Perforce with the 20 Workplace limit.

We want to create a system, where we:

  1. Have a master Unreal template containing general project settings, cvars, defaults and plugins.
  2. Have a master Material library that is constantly growing with new projects.
  3. Have Project specific templates branching of from that, that are based on the master template and can also write new materials etc to the Material library or the Unreal template.

Here is a little graph to show the setup idea:

I can see two ways of doing this:

A) Branch off from the Type templates (Type A would be Greenscreen Projects, Type B Studio for Productlighting etc) for each Project.
Pro: Biggest degree of separation between projects.
Con: In Source control that would mean ONE workspace per Project AND User working on it. Of course this would quickly outgrow the workspace limit.
B) Only Branch of to the Type Templates.
WIthin those simply have Folders for each new Project.
Pro: Comfortably stay within the Workspace limit.
Con: Lesser degree of separation between Projects, easier to accidentally save in wrong folder etc.

I know there are also other ways of using source control, like Subversion or Git.
Since we´re mostly producing linear content right now, we don´t care at all about merging or branching code, we do care about a ton of large binary files needing to be synced (like megascan nanite meshes, EXR sequences etc).

I also have zero experience with either GIT nor Subversion, so I can´t tell if they would even be an alternative to Perforce for our usecase.

I tried to understand your case and making sense of the branching. But honestly, I don’t really understand, why branching would help you when creating templates. Wouldn’t it make more sense having project templates in folders which will just be duplicated for each new project?

Regarding source control. I am a big fan of putting only the Unreal project into the repository and keeping the EXR sequences, asset packs, or anything that does not need to be versioned outside of the repo. This is also the case for Maya and Blender files. I have worked with productions which use a tool called Anchorpoint, that can manage these files pretty nicely.

They also have an integration for Git: Source control with Git and Unreal Engine 5 (in 2022) - YouTube and an option to use a “cloud NAS” (for the EXR sequences etc.) Setting up a cloud NAS for your VFX assets on Backblaze B2 - YouTube

Storages like their cloud NAS or Dropbox/ Google Drive are optimized for just bumping heavy files in it.

Sorry for the late reply, I don´t seem to get notifications…
The whole idea of the branching comes from the fact, that we don´t HAVE any templates or libraries yet so it would be very much work in progress.
With every new project we´d grow our asset and material library, figure out better presets for rendering etc.
And with branches I thought it might be the easiest way to merge back those new assets into the main templates.
But alas, its too complicated for one dude with little expertise in this area, it would take an admin to run this constantly.
So, we´re probably going to go the route of having a source controlled template project separately from all the other projects and then just manually migrate and maintain the asset/template library and duplicating it for new projects as needed, as you said.
For the source files we´re probably just going to use Qsync, the sync tool from Qnap, which is the brand of our nas storage.