Tutorial — Source Control Setup

Augmented Traveler local tutorial. Back to Unreal — Tutorials · next: Tutorial — Getting Started with Unreal Engine 5.8

How the studio keeps one shared, versioned copy of the Unreal project and all source art. A remote team in several cities can then work on the same figure without overwriting each other. Read this before opening the project for the first time.

Draft. The CTO fills in the server address and confirms the choice in section 1 before the first hire starts.

1. The choice (September 2026)

Option Cost for us Strengths Weaknesses
Perforce P4 (formerly Helix Core; renamed March 2025) Free for up to 5 users and 20 workspaces if we host the server. P4 Cloud (hosted by Perforce) is $39/user/month with 64 GiB Industry standard for Unreal; best editor integration; file locking; UnrealGameSync; handles huge binary files Needs a server (self-hosted or P4 Cloud). Over 5 users on the free tier drops to a 1,000-file cap
Diversion Free for 5 users (100 GB, 5 repos); $25–35/user/month after Cloud-hosted and simple; Unreal plug-in; hard locks on the Studio tier Newer; smaller ecosystem. "Officially recommended by Epic" is Diversion's own claim
Git + Git LFS (ProjectBorealis UEGitPlugin) Hosting cost only Familiar to programmers LFS locking is less robust for artists; the plug-in must be compiled; binary merges are painful
Unity Version Control (formerly Plastic SCM) Free unlimited cloud seats from March 2026; pay per GB over 25 GB/month Artist-friendly; has an Unreal plug-in Less common in Unreal studios
Epic Lore (open source, MIT, June 2026) Free Epic's own system, from UEFN Pre-release (0.x). Epic's roadmap puts file locking in 2026 and the official editor plug-in in 2027. Not for production yet; review it again for UE6

Recommendation: Perforce P4.

2. What goes in, what doesn't

In source control Not in source control
AT_Studio/ Unreal project: Config/, Content/, Source/, Plugins/, .uproject Binaries/, Intermediate/, Saved/, DerivedDataCache/ (generated)
Source art: .ma, .zpr, .zprj, .usd, .dna, textures (PSD/EXR) Personal scratch files; renders; mocap raw video (goes to archive storage)
Pipeline scripts and presets (Pipeline/) Secrets and API keys (use a secrets manager)
Corpus text and question bank (or a separate depot for the AI team) Visitor logs (never; privacy)

3. Perforce set-up (CTO, once)

  1. Server: install P4 Server on the cloud VM, or create a P4 Cloud instance. Use SSL; create users for each person; turn on two-factor sign-in if available.
  2. Depot and stream: //AT/main (a stream depot). Add a //AT/release-<venue> stream for each shipped build if needed later.
  3. Typemap: apply the typemap from Epic's Using Perforce as Source Control for Unreal Engine page. It makes .uasset and .umap binary and exclusively locked (+l), so only one person edits an asset at a time.
  4. .p4ignore: exclude the generated folders listed in section 2.
  5. Create the project workspace mapping and submit the initial project.

4. Each person's set-up

  1. Install P4V (the desktop client), or P4 One for artists.
  2. Create a workspace: <name>_<machine>_AT, rooted at a fast local drive (for example D:\AT\). Map //AT/main/....
  3. Get Latest.
  4. In Unreal: Revision Control → Connect to Revision Control → Perforce, with the server, user and workspace. The editor then:
    • shows who has an asset checked out;
    • locks it for others;
    • offers to check out when you edit.
  5. Maya, ZBrush and MD files: check out in P4V before editing, and submit when done.

5. Daily rules

  1. Get Latest before you start and after lunch.
  2. Check out before editing. If someone else holds the lock, talk to them; never "make writable".
  3. Submit small and often, with a message: Mitchell: fix bodice clipping at elbow (outfit v004).
  4. Never submit broken work to main. If it isn't ready, shelve it.
  5. Don't hold locks overnight on shared assets (character Blueprints, program levels).
  6. One File Per Actor (on by default with World Partition) saves each placed actor as its own file. Two people can then edit the same level without conflicts. The file names are encoded, so use the editor's changelist view to see what you're submitting.

6. Builds and UnrealGameSync (later)

7. Check before the first hire

Sources