Choosing the best version control software for Unity
This article compares Git, Anchorpoint, Plastic SCM, and Perforce. It will help you to find the best version control software for your next Unity project.
All of these work pretty well for Unity projects. If you want the most flexibility, avoid lock-in effects, and get the best UX for your artists, go with Git and Anchorpoint. If you want a solution that is tightly integrated with Unity, go with Plastic. If you are making a AAA game, go with Perforce.
When developing a game in Unity, having a version control software in place is the cornerstone of collaboration among team members. Choosing the right version control software can be like choosing your game engine. We compared four different solutions and evaluated their pros and cons to help you choose the best option for your Unity project.
You have definitely heard of GitHub. It’s a cloud hosting provider based on Git, the version control software. It is the place to look for open source projects. Git (the version control software) is the most popular version control system out there. It has the biggest ecosystem of tools (editor extensions, Desktop apps) and cloud services (e.g. GitHub, GitLab, Azure DevOps), making it an excellent choice for teams of all sizes. Git by nature has a command-line interface but there are plenty of Git clients like GitKraken and GitHub Desktop out there. Most of them are made for developers.
Git is also a decentralized version control software. This means that you need a bit more disk space because it copies the files of the latest version in a cache folder. But this makes it fast and allows you to work offline.
- Biggest community
If you need help, there is a Stack Overflow response for everything. Chat GPT works here as well. Furthermore, almost every software developer knows how Git works, which is great for onboarding and outsourcing development efforts.
- Open source
There are so many tools, scripts, and add-ons for Git. You can extend it with your own tools if you wish.
- Git clients and cloud services are available at reasonable prices
You have plenty of choice when it comes to your toolset that is based on Git, including desktop apps and cloud services. Remember, GitHub is also based on Git. Everything is compatible with each other and you are not locked in.
- Works offline
You don’t need to worry when your internet connection is interrupted.
- It’s fast
Creating new branches and merging them happens instantly. Also, committing (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 and uploads them in the background while you can continue working.
- Continuous integration (CI)
Almost every Git hosting provider has CI tools that allow you to perform daily builds of your game. We had the best experience with GitLab and tested cloud build as well as local runners in the form of a barebone PC for our Windows and a macMini for the mac build.
- Requires more disk space because it's doing all operations locally
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.
- Most Git desktop applications are made for developers and hard to understand for artists
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) do 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.
- 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
Anchorpoint is Git extended and specifically designed for Unity and Unreal development. It offers all the benefits of Git, including open source, a huge ecosystem, and CI possibilities, but also adds missing features you need in a daily Unity project workflow, such as file locking, single file operations, and a simple UI for artists. Anchorpoint shows thumbnails like FBX, Blend, C4D, etc., and comes with a preconfigured Git LFS and a Unity .gitignore.
- Adds missing features which you will need in a daily Unity project workflow
This includes better single file operations and better performance for heavy projects. It removes the configuration effort to work with binary files in Git
- You benefit from all the Git benefits
Whether it’s working offline, the speed, the huge community, Anchorpoint is based on Git. The source code of the Git feature set is also open source, so you can customize it if you need.
- Has file locking
Anchorpoint uses its own file locking system to prevent conflicts when working together.
- A simple UI for artists and a simplified workflow
You don’t need to worry about Git operations such as stage and commit. Anchorpoint simplifies the whole workflow to a simple two-button solution. Artists just need to “push” and “pull”.
- Shows thumbnails
Unlike any other version control desktop application, Anchorpoint is able to show visual thumbnails of common file formats that you need in game development (PSD, FBX, GLTF, etc.)
- No Git configuration required
Anchorpoint’s installation and launch are a one-click solution. It configures Git LFS and .gitignore files automatically. It has also presets for Unity.
- Dependent on some limitations of Git
This is the requirement for more disk space (your assets folder size * 2)
- Lacks advanced developer features of Git
Anchorpoint as a desktop application 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.
- Missing Unity integration
Up to today, there is no way to push and pull from the Unity editor via an integration.
While a version control system directly integrated into Unity sounded like a great idea, it has since been deprecated due to user-reported issues and limited features. Instead of developing its own system, Unity acquired Plastic SCM from Codice in 2020. We will deal with it in the next section.
Unity DevOps (Former Plastic SCM)
Unity DevOps is a version control system that can deal well with binary files. Unity acquired Plastic SCM by Codice after the deprecation of Unity Collaborate. Unity DevOps has advantages like being integrated into Unity, having a fast and responsive client, and can work with centralized and decentralized workflows.
- Integrated in Unity
You can submit new versions directly from the Unity editor and don’t need to open the external desktop application. Setting up a repository is extremely easy because everything is part of your Unity hub.
- Fast and responsive client
Even if you can use the Unity integration for basic operations, their desktop application has also a great UX and is worth giving it a try
- 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.
- 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
Unlike in Git, where you can choose between cloud services and desktop applications, you have to rely on Unity for everything.
- 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.
- Workflow issues during testing
During our testing phase, we encountered several workflow issues. We renamed several files and folders, and a workspace update re-downloaded files with the previous name. After switching from Unity VCS (which is their main desktop app) to Gluon (the simplified app), we had problems with undoing changes. Users reported of Unity being blocked or not able to commit. Maybe these are all small issues that require a bugfix that will be shipped in the future.
Perforce is mostly used in AAA development and known for its scalability and access control options. Perforce exists since the 90s, so it’s older than Git or Plastic. It is a centralized version control system that also has a Unity integration. 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.
- Most AAA games run on Perforce
If you would like to learn a version 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 is known for its huge scalability of TB-sized repositories. It performs well on huge file size and file count.
- 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.
- Very pricey
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.
- Outdated UX
Compared to Anchorpoint or Plastic, 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 the internet connection is gone, you cannot work
Because of its 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.
Similar to Plastic, it’s a closed system. You cannot choose between hosting providers and desktop applications.
Choosing the best version control solution depends on various factors like team size, budget, and ease of use. We recommend Git as the most popular and widely used version control software, while Anchorpoint adds missing features for game development. Unity DevOps is a good option for those who want an integrated solution, and Perforce is a well-known choice for AAA development.
Version control setup in a matter of minutes
Frequently Asked Questions
How to use Unity and Git
First, select a Git hosting provider. Then, download a desktop application such as GitHub Desktop or Anchorpoint. Create a Git repository on your Git hosting provider and clone it to your computer. Paste your Unity project into it and create a .gitignore file. Set up the .gitattributes file to configure Git LFS. Change some files in Unity. In the next step, stage all the files, commit them, and push them to the Git hosting provider.
Your team members also need to have a GitHub account and can then clone the repository to their computer.
How to use Unity and Anchorpoint
Using Unity and Anchorpoint is similar to using Unity and Git. It does not require any LFS setup. We also have a tutorial on how to use GitHub and Unity with Anchorpoint.
How to use Unity and Plastic SCM
First, create a Unity account. Then, in your Unity dashboard, go to DevOps and then to Version Control. You will need to go through payment processing, and after that, you can create a new organization. Once you have created the organization, you can create a new repository within the organization. Then, go to https://www.plasticscm.com/download to download the desktop application and install it. When you log in, you should be able to see your repository. Open it and navigate to an empty folder. Then, paste your Unity project files in there.
In the desktop application, click on Pending Changes, write a message, and press Check-in. This will push the files to the Unity cloud.
How to use Unity and Perforce
If your team is smaller than 5, you can apply for an indie studio pack and get Perforce for free. After that, you have to contact their sales team and get a quote. Once you have purchased a license, you can host a Perforce server on a Digital Ocean droplet or an AWS EC2 instance. Once the server is set up, you have to download their p4v client and connect to the server. Then, you need to set up a workspace, and this is the place where your depots (the repositories) will be.
Once everything is configured, you can check out files, do your work, and submit your changes.
Introducing a new GitLab integration
Introducing our new integration to GitLab, which creates repositories and add members directly from Anchorpoint. The integration supports GitLab's cloud and self-hosted versions and makes it easy for artists to setup projects without learning a new interface.
How to set up a .gitignore file for Unity
Add a .gitignore file to your Unity project to avoid uploading unnecessary files. Learn how to customize it for your own needs.