World Partition in Unreal Engine sollte auf jeden Fall aktiviert und Revision Control deaktiviert sein. Wenn du Änderungen speicherst, siehst du ein Sternchen auf dem Actor und nicht auf dem Level, da Unreal Änderungen in kleinen Actor Dateien speichert.

Working in a team with Unreal Engine 5

Games, VR/AR applications or animations are produced in a team produced in teams. A typical tool for exchanging files is them in a Dropbox or on a network drive. This works wonderfully with 3D and 2D tools such as Photoshop or Blender, but not really with the Unreal Engine. Here you have to resort to Version control.

by Matthäus Niedoba

Why Dropbox, Google Drive or a NAS don’t work with game engines is quite simple: because they synchronise changes immediately and because a game engine doesn’t have a single file that can be saved incrementally. For example, Blender saves everything in a *.blend file, Photoshop in a *.psd file, etc. However, an Unreal project consists of several files that are linked to each other. There is not “the” one Unreal file. For example, if you import an FBX into Unreal, this FBX is converted into a *.uasset file in its own structure. Each time a newer version of the FBX file is imported, the *.uasset file is simply overwritten. Unreal will not create a _v002.uasset. This is the opposite of Blender, where you have full control over the linked *.blend files.

This means that a game engine only understands one version of a file. The file on your hard drive (the *.uasset) is basically the only version that exists. Here comes the problem with Dropbox. Two artists can only work on the latest version of a map. Since the Dropbox synchronises continuously, they overwrite each other. In addition, Unreal “locks” files, i.e. makes them read-only when they are imported into a level. This also blocks the Dropbox synchronisation process. The whole project ends up in total chaos.

What is version control?

Version control comes from software development. Writing software is similar to developing a game. A compiler (exactly the same thing that generates the builds in a game engine) only understands one version of a file. And it’s no surprise that software has versions such as 1.3.4 and so on. These versions are managed by version control. Version control can organise files (it replaces incremental saving _v001, _v002) and synchronise files via a server. It therefore replaces the Dropbox. It is the basis for teamwork.

GitHub vs. Dropbox

Everyone has probably heard of GitHub and downloaded scripts or small tools there. It is the platform for open source projects and is only possible thanks to version control. The word “Git” from GitHub is also the name of the version control system “Git”, which we will look at in more detail in a moment. You can also use GitHub as a server for your Unreal project, where everyone in your team uploads and downloads their files. It serves as an alternative to Dropbox.

Unlike Dropbox, GitHub supports version control, which you need for your Unreal project. What you still need is a desktop application that uploads data to GitHub. Dropbox has its own application for this, while GitHub offers you a choice of many applications that are compatible with the “Git” version control system. We have collected a few well-known representatives in the box on the side.

An Unreal project is integrated into Anchorpoint.

How does version control work?

First of all, there is a central server on which all files are stored. In most cases, this is located in the cloud. Everyone has a local copy of the Unreal Engine files on their computer. It’s not like working from a NAS where everyone works directly on the server. A workflow with 2 artists can look like this:

Artist A (“you”)

  • You work in Unreal – and import new assets, change shaders and edit the map. You save and overwrite existing files. The end result is a series of modified files (usually a list of .uasset and .umap files)
  • The version control system recognises all these modified files and displays them in a list.
  • You upload these files – and so far Artist B hasn’t seen any of your work. That changes now. It is customary to attach a short comment to each upload, e.g. “I changed the light to make it look warmer”. Then you press the upload button and your work is uploaded to the server (e.g. GitHub).

Artist B (“Your team member”)

  • Works in Unreal, just like you.
  • Version control sees that there are new changes on the server (coming from you) and sends a notification to your team member
  • Your team member presses a “Download” button and has downloaded your files.
  • Your team member uploads their files, just like you.

That’s the workflow. It may sound exaggerated, but it’s not. Commenting and uploading quickly becomes a habit and creates transparency. You can see who did what at what time. To prevent two people from working on the same file, a version control system has a file locking feature. This allows you to make files read-only for all team members (except yourself) to prevent multiple people from working on the same file. DCCs (Blender, Maya and C4D) can also be managed within the version control system. This means that the file versions are no longer saved incrementally, such as character_v001, _v002, _v003, etc.. So you overwrite each file and publish my new version with a comment. This is then uploaded to the server, just like in the Unreal project. This can feel a bit strange when you have incremental saving in your fingers. If you prefer to stick with the usual incremental saving method, you can also do this and only version the Unreal project. This means that a new version is only created after the assets have been imported into Unreal.

Implementing version control in an existing Unreal project

In this example, we use the version control system “Git”. For this you need: A cloud storage provider. In this case, this could be GitHub A desktop application that uploads and downloads data to GitHub. In this case we use Anchorpoint. Your existing Unreal project, which is stored on your hard drive.

The GitHub interface when you log in for the first time. Ignore everything and create a new repository on “Create Repository”

GitHub

First create an account on GitHub and create a repository. GitHub is primarily intended for software developers, so the interface can be a little confusing. You must first create a repository. A repository is similar to a file folder that contains your Unreal project. The repository will be the place where your files will be uploaded and downloaded later. Once you have created the repository, you need to invite your team members (everyone needs an account on GitHub). Finally, you need to copy the URL to the clipboard. You will later paste it into Anchorpoint to tell Anchorpoint where to upload the Unreal project.

About the costs

GitHub is very generous when it comes to pricing. The free plan gets you a long way, and the Team plan ($3.67 per person, per month) offers additional options for security and automation. Unfortunately, the generosity ends with storage space. You have to buy so-called “Data Packs”, a kind of prepaid credit for storage space. These cost 5 dollars for 50 GB per month. If you don’t want this, you can fall back on alternatives from GitHub such as Microsoft Azure DevOps, which are much more generous in terms of storage.

Anchorpoint

Download Anchorpoint and create an account there too. The next step is to create a project of the type “Git Repository”. There you have to tell Anchorpoint where your Unreal project is located and enter the URL of the GitHub repository (which you have copied to the clipboard).
Finally, you need to add your team members via email and upload your project files to GitHub. Here you have to leave a short comment (e.g. “Have initially uploaded project to GitHub”) and press the blue “Push” button.

Unreal Engine

Unreal has the option to switch on Revision Control (or Source Control if you are using version 5.1 or older) at the bottom right. We deliberately leave this off, as the Git plug-in slows down Unreal Engine and we have a better overview with Anchorpoint. In any case, use World Partition, which has been available since Unreal Engine 5.0. World Partition splits a level into many small files so that several team members can work on the same level. Without World Partition, each team member has to wait until you have edited and uploaded the level, otherwise you will be working on the same file. If you’re thinking that you’re inviting chaos: World Partition is made for the layout or world building process. The customisation of materials, rigs and assets in general is excluded here.
Once you have finished working on your asset or level, you can open Anchorpoint. Anchorpoint scans all your files in the project folder and lists the modified files. Now you can enter a comment again and upload your work to GitHub via “Push”.

Conclusion

The first steps with version control feel unfamiliar at first. You have to write comments and manually press the upload and download button to exchange files. It’s different to Dropbox, where synchronisation is continuous. Once you have done a project with it, you appreciate the advantages of this system. The workflow is transparent, the security is higher (you can always jump back to a status in the project) and you have more control over the project.

Alternative version control systems

There are basically four version control systems for the Unreal Engine to mention. Unreal has a plugin for all of these systems.

  • Perforce: Mostly used in AAA game studios. Perforce is a well-established version control system that works well in huge projects.
  • Git: The most popular version control system for software developers. Git is open source and has the richest ecosystem in terms of community, tools and cloud providers. Anchorpoint is based on Git.
  • Subversion: A fairly old but solid and simple version control system.
  • Plastik SCM (Unity Version Control): The newest system on the market. It has been owned by Unity since 2021 and is also well suited for game development for Unreal Engine.

Matthäus Niedoba is the founder of Anchorpoint, a version control software for Unreal and Unity. Anchorpoint simplifies remote team projects and works with any storage solution.