Choosing the best source control software for Unreal Engine
This article we will evaluate Git, Anchorpoint, Plastic SCM, and Perforce to help you to find the best source control software for your next Unreal project.
Choosing a source control software is like choosing a game engine. Anchorpoint (which is based on Git) provides the best artist UX and, due to Git, the biggest ecosystem of cloud storage and tools. If you develop AAA games and have deep pockets, then go for Perforce. If you want a similar workflow like Perforce, less cost-effective and don’t worry about being locked in to the Unity cloud, go for Plastic SCM.
When developing a game in Unreal Engine, using source control software is essential for fostering collaboration among team members. Selecting the appropriate source control software is comparable to selecting your game engine. We analyzed and compared four solutions to help you in selecting the optimal solution for your Unreal Engine project, with a focus on binary files.
GitHub is a popular cloud hosting provider that is based on Git, the source control software. It is widely known as the go-to place for open source projects. Epic Games is also hosting the source code of Unreal Engine on GitHub. That's because Git is the most popular source control system, with a vast ecosystem of editor extensions, desktop apps, and cloud services, including GitHub, GitLab, and Azure DevOps. This makes it an excellent option for teams of all sizes, and while it primarily uses a command-line interface, there are plenty of Git clients such as GitKraken and GitHub Desktop available.
Git is a decentralized source control software, which means it needs more disk space since it copies the files of the latest version in a cache folder. However, this makes it fast and allows for offline work.
When it comes to using Git with Unreal Engine, the built-in integration is still in beta and not ideal for working with. It can slow down the editor, uses the check-in/checkout language, which doesn't make sense with Git, and is limited in its feature set. Instead, it's better to use the newly refactored Git Plugin by Project Borealis, which is based on the Git Plugin from Sébastien Rombauts.
- It's fast
Committing, branching, and merging (creating new versions) is way faster than in Perforce because you don't need to wait until the files are uploaded to the server. Git puts them in the local cache (the hidden. git folder) and uploads them in the background while you can continue working.
- Open source
There are so many tools, scripts, and add-ons for Git. It is developed by the community and also pushed by companies such as Microsoft, which is the owner of GitHub.
- Biggest community
Almost every software developer knows how Git works, which is great for onboarding and outsourcing development efforts. If you need help, there is a Stack Overflow response for everything. Chat GPT works here as well.
- Git clients and cloud services are available at reasonable prices
Remember, GitHub is also based on Git. Everything is compatible with each other, and you are not locked in. You have plenty of choice when it comes to your tool set that is based on Git, including hosting it in the cloud.
- Works offline
Git is decentralized and works when your internet connection is interrupted.
- Continuous integration (CI)
Almost every Git hosting provider has CI tools that allow you to perform daily builds of your game. Furthermore, you can add local or cloud runners that will create builds for multiple platforms.
- Requires more disk space
That's due to the decentralized nature of Git and the benefit that you can work offline. A rule of thumb is usually your game assets folder size * 2, which can be a lot because Unreal Projects tend to have multi GB sizes.
- Most Git desktop applications are made for developers
Git is the most popular solution in the development world, and Git LFS (the extension that made it useful for games) was introduced almost 10 years later.
- Single file operations are clunky
Git (as well as developer desktop applications) does not really offer a good way to handle single file operations, like restoring a single file version. However, you need this when working with game assets. Luckily, Git plugins for Unreal can handle that.
- Lack of proper file locking
Git LFS has file locking, but it's not as fast and good as other solutions.
- To work properly with binaries (textures, 3D models, etc.), it requires configuration effort
Git LFS needs to be configured and does not work out of the box. That can be annoying for users who are new to Git.
Think of Anchorpoint like an extended Git solution for Unreal Engine. It is based on Git and compatible with any hosting provider such as GitHub, GitLab, or Azure DevOps, and it has its ways of handling file locking and single file operations. It has presets for .gitignore configs and comes with other artist-friendly features.
Anchorpoint has asset management features, like thumbnails for FBX, Blend, or video files, which is great for the whole DCC workflow that comes before Unreal Engine.
- Extends Git for Unreal Engine projects
This includes better single file operations and better performance for heavy projects. It can e.g. show almost a million of changed files in the change lists.
- You benefit from all the Git benefits
Whether it's working offline, the speed, the huge community, Anchorpoint is based on Git. You can host your files on any Git cloud provider.
- Has file locking
Anchorpoint uses its file locking system to prevent conflicts when working together.
- Simplified UI
Anchorpoint simplifies the whole workflow to a simple two-button solution. Artists just need to "push" and "pull," and the rest happens in the background.
- Quick to get started
Anchorpoint's installation is a one-click solution. It configures Git LFS and .gitignore files automatically. It also has presets for Unreal.
- Asset Management features
Unlike any other source control desktop application, Anchorpoint is able to show visual thumbnails of common file formats that you need in game development (PSD, FBX, GLTF, etc.) and allows you to create folder structures and to tag single files and folders. With that, you can improve the whole workflow with Blender, Maya, Cinema 4D, etc. that comes before Unreal Engine.
- Dependent on the limitations of Git
This is the requirement for more disk space (your assets folder size * 2)
- Lacks advanced developer features of Git
You cannot do pull requests or show all branches next to each other. For that, you would need to use a Git client for developers such as GitKraken.
- Not fully open source
Anchorpoint is a proprietary application, and the core of the applications is closed-sourced. However, the whole Git feature set is built as an Action, which are basically open-source integrations.
The industry standard for AAA game development, and also very popular in the Unreal world. It’s also the oldest one in this comparison, because Perforce has been there since the 90s. It’s centralized, which means that it is constantly connected to a cloud server, which makes it slower than Git but also more scalable. Perforce uses a check-out and check-out workflow, which is similar to Git’s commit and pull.
On Perforce, you usually host the server yourself. This can be done locally or on a Digital Ocean droplet or AWS EC2 instance. The only plug and play solution is to use Perforce via Assembla cloud.
Unreal Engine provides a pretty good Perforce integration that allows to submit change lists directly from the editor.
- Industry standard for AAA
If you would like to learn a source control software and you are sure to go the AAA career path, it makes sense to get your hands on Perforce.
- Best usage for single file operations
Unlike Git or Plastic, Perforce does not require you to update your project when you want to submit changes of single files. You can keep submitting an asset without interruptions.
Perforce it known for it’s huge scalability of TB sized repositories. This is a typical requirement for AAA development.
- Security options
Perforce provides access control on a file and folder level. This is more granular than Git, where you grant the whole access to a repository including all the files.
- Unreal Plugin
Perforce has a great Unreal plugin that allows to submit change lists from the editor.
Perforce does not expose public pricing, and users report it to be very expensive. The only way to host Perforce via a plug and play solution, which is common in Git, is via Assembla. It’s free for a team up to 5 users.
- Outdated UX
Compared to Anchorpoint or Plastic SCM, Perforce feels pretty old and not so pleasant to learn.
- Branches (streams) are not as good as in Git or Plastic
Branching and merging is not as fast in Perforce compared to Git.
- Once internet connection is gone, you cannot work
Because of it’s centralized design, you cannot do anything when your internet connection is gone. Even when it’s interrupted, a file submission has to be restarted, which is cumbersome.
It’s a closed system. You cannot choose between hosting providers and desktop applications.
Plastic SCM - Now, Unity Version Control
Unity Version Control is a source control software that can deal well with binary files. Unity acquired Plastic SCM by Codice after the deprecation of Unity Collaborate. While it sounds that this is a product only for Unity, it can be also used for Unreal Engine. Unreal also has a Plastic SCM integration which works similar to the one from Perforce. Unity Version Control requires a Unity account with a valid credit card. There is a free tier to test things out and there is also an Unreal Engine integration.
- Fast and responsive client
Plastic has a great desktop application with a fast and responsive UI when it comes to viewing change lists or searching for files.
- Can deal well with binary files
You don't need to configure anything. It deals with binary files out of the box.
- Has file locking
You can also lock files to prevent merge conflicts.
- Branching as good as in Git
Plastics branching system is better then Perforce and as good as the one in Git
- Requires leaving credit card data to try it out
It feels uncomfortable not knowing when and what you will be charged. This can happen quickly when you exceed the free storage limit. Luckily, an indicator shows you how much storage you are using.
- Cannot self-host it in the cloud other than using their enterprise plan
If you need greater independence and would like to self-host your server instead of relying on the Unity cloud, you have to pick a typically expensive enterprise pricing plan
- Lock-in, not open source
Unlike in Git, where you can choose between cloud services and desktop applications. Since Plastic SCM belongs to Unity, the future in connection with Unreal is quite uncertain.
- Cannot display thumbnails correctly
The desktop application is e.g. not able to show you FBX files, so you have to rely on filename and a correct artist description.
In conclusion, choosing the best source control software depends on various factors like team size, budget, and ease of use. We recommend Git as the most popular and widely used source control software, while Anchorpoint adds missing features for game development. Perforce is a well-known choice for AAA development. Plastic SCM (Now Unity DevOps) is also a good Perforce alternative, which is less expensive but forces you to go into the Unity cloud.
Frequently Asked Questions
What is source control software?
Source control software is a type of software that manages changes to a project's source code, images, 3D models, etc. It is designed to help developers track changes and collaborate effectively on a project by keeping track of all the different versions of the project's files. Source control software also helps to ensure that changes made by different developers don't conflict with each other. It allows for rollbacks and collaboration with other developers who may be working on the same codebase.
Where can I download the Unreal Engine source code?
You can get the Unreal Engine source code on GitHub. Epic Games hosts the source code for Unreal Engine on GitHub, and you can download it from there. Keep in mind that you will need to create an account on GitHub and link it to your Epic Games account to access the source code.
What is Git LFS?
Git LFS (Large File Storage) is an extension to the Git version control system that enables the management of large files within Git repositories. LFS files are non-text files and usually include textures, 3D models, audio, and .uasset and .umap files. Technically, they are stored in another location to keep the Git repository performant. Git LFS is free and open source and is supported by a range of hosting services, including GitHub, GitLab, Azure DevOps, and Bitbucket.
What is the best Git cloud hosting provider for Unreal Projects?
Based on an article we wrote in 2022, the best option to store your game project in the cloud with Git is Azure DevOps from Microsoft. It does not charge for storage, which means that your Unreal project can grow to GB sizes without worrying about costs.
What is Unity DevOps or Unity Version Control?
Unity acquired Plastic SCM and rebranded it to Unity Version Control in 2023. It is part of Unity DevOps, which also includes cloud build services, etc. directly from Unity. Certain services, such as Unity Version Control (which is Plastic SCM), are also available for Unreal Engine users.
Tutorials and Development Updates
Anchorpoint for indie development - Midheimur
How the team behind the Midheimur project creates beautiful landscapes for a game about Slavic history.
Anchorpoint for indie game development - Nightmare Studios
How Nightmare Studios uses Unreal Engine 5 and clever marketing tricks to build and release their first indie game.