I am a software developer transitioning to UE5. I am looking for a collaboration platform for a team of 5 members working on a narrative project (Blueprints or C++ coding).
Hi,
It depends on budget, scale and how disciplined your team is, but more importantly what you’re building. For Blueprint-heavy projects the problem is not version control, it’s binary assets and conflicts.
So I’d look at it like this:
1 Perforce Helix Core
This is the most natural fit for Unreal. Yes, a bit more setup and potentially some cost, but Helix Cloud solves most of that (backups, maintenance, scaling, etc.). You can be up and running in a couple of hours. Not talking about Perforce service from another provider but from actual Helix Core Cloud.
The important part is not “enterprise features”, it’s file locking.
Blueprints don’t merge well, so preventing conflicts is more important than resolving them. For a small team this usually removes most of the pain.
2 GitHub (Git + LFS)
Works well, especially if you already use GitHub.But this comes with its own flow
No real locking unless you enforce it ,Binary conflicts can happen , its not common in 5 person team but still. Requires discipline and clear ownership So it works, but you are relying on people, not the tool.
3 Plastic SCM
Lightweight and easy to get started. That said, for long-term Unreal projects I don’t see it offering a strong advantage over Perforce Helix Core, especially around ecosystem and maturity.
If you have budget go with Perforce , its not a big cost but actually a long term win cause it will decrease time spent on Dev Ops than actually time spent on building the game by a very streched team. If you can add teamcity on it, you are a AAA studio in a micro level .
It may sound unpopular, but we (team of ten) do use SVN for our project. It’s free and UE’s editor has built-in integration, including asset locking when changed. So everything is fine as long as you keep your changes to the trunk (main branch). And it’s quite simple conceptually, so everyone on the team should have no trouble understanding the workflow.
In case you need C++ support
note: we do use it for BP/C++ project. In case you’ll need to consider C++ – all you need is just to upload editor binaries (from %projectroot%/binaries folder, only development-editor ones are needed) to SVN as well so everyone would have fresh ones. Yes, it will be a bit heavy to push project binaries with C++ commits, but it’s bearable in a span of a few years
We did try Git for this, it’s also free and has integration, but I didn’t find any pros vs SVN. It’s harder to teach the designers and its idea goes around branching, but it doesn’t support cross-branch locks. So really no different from SVN. Maybe LFS kinda solves some other problems.
Didn’t try other VCS, since SVN is okayish for our goals.
I concur with SVN. Esp for a small non technical team. I’ve had very little issues with it using for over 23 years on game dev related projects with teams up to 14 people. Supported by most build pipelines, natively handles large binaries. Easier conceptually than Git.
Hello, thank you for your very helpful suggestions. Is there a similar solution for Blueprint? I would be grateful if you had a solution for blueprints as well.
I mean, for blueprints you just commit all content/*.uasset files you have changed. Yes there is no way to merge two binary files automatically, but there are two tools that help solve\mitigate this problem:
Files locking- svn (and other vcs as well) can lock files on vcs level. That means, that ones you locked it, nobody can commit it before you release lock (usually automatically along with commit). This was only one dev can work on a given blueprint file at a time. As long as other devs don’t use dirty hacks like stealing locks - you’ll never run in blueprints merge confict. And as i said before - ue editor has integration and if everything is set up correctly - editor will automatically lock files you working on for you, hence no need for manual management of this.Blueprints diff- even if by some reason you’ve managed to run into merge conflict, editor has internal visual bp-diff tool. This was you may easier see what you changed in your bp locally and manually port this changes onto incomming file,
If in your question you meant something different - please clarify what exactly is troubling you.
on a side note, the only cons of svn i remembered - it’s a bit less convenient to setup commit-ignore list than in git. But it’s still manageable. I recommend tortoise-svn as a gui tool for all of this
If you are coming from software dev and are used to work with Git. I would try to stick with it. There is Git LFS, which is very easy to configure nowadays and hosters such as Azure DevOps allow you to store binary files (as long as they are pushed via LFS) without any limits and costs. It sounds strange, but that is how it works now.
Regarding file locking with blueprints and assets, you could try Git LFS file locking. Another solution would be to look at Anchorpoint, which works with Git and has it’s own locking system as well as an Unreal Plugin. I am one of the developers of it and can help you out during the setup.