Most game studios get this decision wrong not because they lack information, but because they benchmark against the wrong kind of project.
I’ve watched teams migrate from Git to Perforce mid-production and nearly collapse. I’ve also watched teams insist on Perforce for a 3-person indie project and spend three weeks setting up infrastructure they never actually needed. The version control question is genuinely one of the most consequential early calls you make, and the internet is full of confident takes from people who’ve only worked one side of the fence.
I’ll be honest: I had strong opinions on this before I actually went deep on it. What surprised me was how much the right answer depends on factors most articles don’t even mention.
Why This Comparison Is Harder Than It Looks
Git and Perforce aren’t just different tools. They’re built on fundamentally different assumptions about how people work.
Git is distributed. Every developer has a full copy of the repository history locally. That’s elegant for code-heavy projects, awful for a 200GB texture library. Perforce (specifically Helix Core, which is the product name you’ll see in job listings as of 2026) is centralized. There’s one server. Developers check out files, lock them if needed, and check them back in. The server knows who has what.
That locking behavior isn’t a limitation. For game dev, it’s often the whole point.
Binary assets are the crux of this. Git can store binary files, but it handles them badly. Every time you change a PSD or a Maya scene, Git stores the entire new version. A 50MB texture touched 20 times? That’s potentially a gigabyte of history just for one file. Git LFS (Large File Storage) exists to solve this, and a lot of studios use it, but it doesn’t give you file locking natively in a way that prevents two artists from overwriting each other’s work on the same asset. You need Git LFS + additional configuration to approximate what Perforce does out of the box.
Perforce has exclusive checkout. Artist A locks character_hero_v001.fbx. Artist B tries to open it, gets a notification that it’s locked. No merge conflict. No “who’s version do we keep.” This alone is why you’ll find Perforce at essentially every AAA studio making games with large art teams.
Where Git Actually Wins
I want to be fair here because the “AAA uses Perforce therefore Perforce is better” logic is sloppy.
Git is genuinely better for branching workflows. Branching in Perforce exists, but historically it’s been heavier and slower to work with compared to Git’s lightweight branching model. If your team is doing a lot of feature branches, hotfixes across branches, or code-heavy work (systems programmers, engine teams), Git’s branching and merging is noticeably more fluid.
Git is also free and self-hostable via GitLab, Gitea, or just GitHub for small repos. Perforce’s Helix Core has a free tier: 5 users, 20 workspaces. Beyond that, you’re paying for licenses. Pricing isn’t publicly listed in a clean way (which, candidly, is annoying), but from conversations with studios licensing it, expect to budget several hundred dollars per user annually at commercial scale. That’s real money for a 20-person indie.
What surprised me was how many mid-sized studios (say, 15-40 people) are running a hybrid: Perforce for art assets and binary files, Git for pure code repositories, with some integration layer stitching them together. Unreal Engine projects in particular sometimes use this setup because Unreal’s own tooling has historically played better with Perforce, though Epic has made real progress on Git compatibility over the last couple of years.
The Unreal Situation Specifically
| Scenario | Team Size | Engine | Setup | Result |
|---|---|---|---|---|
| Indie roguelike | 8 people | Unity | Git + GitHub + Git LFS (audio only) | Shipped in 22 months, $4,000-6,000 saved on licensing |
| Open world game | 35 people | Unreal | Git LFS (4 months), migrated to Helix Core | 3 asset corruption incidents with Git; zero incidents post-migration over 14 months |
| Hybrid codebase | 60 people | Unity + C++ plugins | Perforce (art/engine) + Git (plugin code) + sync script | Improved programmer velocity on plugin work, no art pipeline disruption |
If you’re building in Unreal Engine, you need to think about this more carefully than Unity developers do.
Unreal’s asset files (.uasset, .umap) are binary. You cannot merge them in a text editor. You cannot resolve a conflict by looking at a diff. If two people edit the same map file simultaneously in Git without locking, one of them is losing their work. Full stop.
Epic’s own recommendation (as of 2026) leans toward Perforce with Helix Core, and they ship built-in Perforce integration in the editor. You can use Git with Unreal, but you’re fighting the grain of the engine slightly, and you need to be disciplined about Git LFS configuration and file locking. Teams that skip that discipline pay for it later.
I talked to a producer at a studio that shipped a mid-budget Unreal game last year. Their setup: Helix Core for everything Unreal-related, GitHub for their backend server code. Overhead to maintain both? About half a day per month from their tech lead. Worth it to them. Not the right answer for everyone.
Scenario 1: 8-person indie team, Unity project, code-heavy roguelike, small art team. Action taken: Used Git with GitHub, added Git LFS only for audio files, skipped Perforce entirely. Result: Shipped in 22 months with no version control incidents worth noting. Saved roughly $4,000-6,000 in Perforce licensing over development.
Scenario 2: 35-person studio, Unreal project, open world game with large environment art team (12 artists). Action taken: Attempted Git LFS for first 4 months, experienced 3 separate asset corruption incidents from merge conflicts on binary files. Migration to Helix Core at month 5: zero binary conflict incidents in the following 14 months of production.
Scenario 3: 60-person studio, hybrid codebase, Unity with significant native plugin work. Action taken: Kept existing Perforce but moved all C++ plugin development to Git in a separate repo with a sync script. Result: Programmer velocity on plugin work increased measurably (team reported faster branch/review cycles), with no disruption to art pipeline.
The Setup Cost Nobody Talks About
Here’s where I’ve seen studios make a painful mistake. They pick a tool based on features, then wildly underestimate setup and maintenance cost.
Perforce server administration is a real skill. Someone on your team needs to own it, configure typemaps correctly (this determines how Helix Core handles binary vs text files, and getting it wrong causes problems you won’t catch until you’re deep in production), set up regular checkpoints and backups, and manage workspace configurations. It’s not brutal, but it’s not zero. If you’re a small team without a dedicated technical director or DevOps person, budget time for this or hire someone who’s done it before.
Git, especially through GitHub or GitLab, has a much lower floor for initial setup. The ceiling for complex configurations (monorepos, LFS at scale, branch protection rules) can get involved, but most small teams can be up and running in an afternoon.
One honest admission: I underestimated Perforce administration costs when I first started recommending it to smaller studios. A 12-person team I advised in 2023 spent nearly 40 hours of their tech lead’s time in the first two months getting their Helix Core server properly configured. That was time not spent making the game. It was still the right call for their Unreal project, but I should have flagged it more clearly upfront.
Sources
- Perforce Helix Core documentation (current): Official guidance on typemaps, workspace configuration, and binary file handling at perforce.com
- Git LFS documentation (current): GitHub’s official specification for large file storage behavior and limitations, including known constraints on file locking
- Epic Games Unreal Engine Source Control documentation: Epic’s current recommendations for version control integration, available at docs.unrealengine.com
- “Version Control in Game Development” (GDC 2022 session): Industry discussion of hybrid Git/Perforce setups at mid-sized studios, sourced from the GDC Vault
Photo: cottonbro studio via Pexels
Samantha Roberts





