Can git source control prevent multiple people from working on a project?

On an unreal engine, is git source control not available for multiple people? Our team wants to have a large number of people to modify a project. However, if someone else creates blue prints through the current source control, an error occurs when you sync.

Git (and other source control systems) are designed to allow multiple people to work on a project. Gits decentralisation and branching means that its ready for potentially very large change sets to be committed, merged and shared between members.

However, what source control will struggle with is merging files it doesn’t understand. Whilst it has a good attempt at dealing with merge conflicts, it’s much more successful with some filetypes than others (cpp, h, txt files are more successful than usasets etc).

So, with binary filetypes (like uasset) you will need a way of managing this. Generally speaking you’ll want to avoid many people editing the same file at once, or you’ll want to split the game to use as many blueprints / maps etc as possible so that there is less of a chance that more than one person will edit the same file at the same time.

If multiple people do edit a file and commit those changes, you’ll get a ‘merge conflict’, which I assume is the error your seeing. You can resolve this by trying to handle the merge yourself (tricky with non text based files), or by accepting one version over another. If you do this then someones work will be lost.

Basically, no source control is an automatic solution to ‘just sharing’ the project, unless it’s completely live, online editing (which UE4 is not). You need to establish some rules and discover what works best for your team.

Thank you! Is it cheaper for a small team to develop rules than to edit a project online?

In the case of UE4, I’m not even sure it’s possible to edit online (I’m not aware of any system that will allow it). Even if it were, it’s probably not advisable as people will be working on different tasks and you’ll constantly be fighting each other. It’s better to plan the work to minimize disruption.

Hi, I am the author of the Git plugin in Unreal Engine.

What you are asking is in fact existing and called Git LFS 2 File Locking, created and supported by Github.
You can try to install my updated standalone version of the plugin that I maintain separately Git Plugin v2 and that somehow support this advanced feature.

That being said, for a serious Unreal Engine 4 project, with a big team, I would seriously recommend either the default game industry standard Perforce, or the cheaper challenger Plastic SCM. I also developed and maintain the UE4 Plastic SCM plugin.

edit: in the contrary, raw Git is almost the perfect solution to prototyping alone, or sharing a small unreal engine project

Cheers!

2 Likes

Would git be able to pass projects that mainly use Blueprints or does it have to be c++ only?

Huh I see, That’s really weird that it kept giving me an error every time I passed a blueprint only project.

Git will handle whatever you want. It’s easier to manage conflicts in code (simply because it’s easier to compare) but other than that, it’ll handle whatever you throw at it. Keep in mind that if you are going to have a large repo with lots of large assets, you might want to look at using Git LFS.