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.

Matthäus Niedoba
April 19, 2023
9
min read
Content

tl;dr

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.

Git, Anchorpoint, Plastic SCM and Perforce are possible version control solutions for Unity
Git, Anchorpoint, Plastic SCM and Perforce are possible version control solutions for Unity

Git

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 a decentralized source control software. This makes it fast and allows for offline work. With Git LFS (the extension for large file storage) Git becomes even centralized, so that it only stores the large files on your disk that you need.

GitKraken - A Git desktop application for developers
GitKraken - A Git desktop application for developers

Advantages

  • 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.

Disadvantages

  • 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

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.

Anchorpoint uses Git under the hood and provides an artist friendly UX
Anchorpoint uses Git under the hood and provides an artist friendly UX

Advantages

  • 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.

Disadvantages

  • Dependent on some limitations of Git
    The biggest missing element are fine grained access controls on file and folder levels.
  • 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.

Unity Collaborate

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.

The Unity VCS (former Plastic SCM) desktop application
The Unity VCS (former Plastic SCM) desktop application

Advantages

  • 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.

Disadvantages

  • 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
    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

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.

The P4V Perforce desktop application
The P4V Perforce desktop application (the screenshot shows an Unreal project, but it works the same way for Unity)

Advantages

  • 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.
  • Scalable
    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.

Disadvantages

  • 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.
  • Lock-in
    Similar to Plastic, it’s a closed system. You cannot choose between hosting providers and desktop applications.

Conclusion

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

Anchorpoint can add version control to your existing Unity project. It's the easiest solution for artists. Try it today. No credit card required.
Learn about Anchorpoint

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.