How to login to Azure DevOps (Quick Tip)
Due to the complexity of Azure services, it's often not obvious how to log in to Microsoft's Azure DevOps portal. This quick tip will show you how.
Developed by CollabNet in 2000, SVN is the granddaddy of version control systems and was widely used in the early 2000s and 2010s. In 2009, it became Apache Subversion and was distributed as open source under the Apache license.
Already since the 1990s with the forerunner of SVN, which was called CVS, as software and game development became more complex, the need for a version control system became more apparent to everyone and during the decades, and especially after 2010s, many systems have been created, some open source, some limited to their environments.
Most studios host SVN on their own systems, as there is no plug-and-play hosting solution like GitHub. However, the hosting provider Assembla allows you to have hosted SVN repositories in the cloud if you want to avoid the admin work. You would have to weigh up the cost of hosting against the time saved at your end.
If you are considering moving away from SVN, you have many alternatives to choose from these days. Typical reasons for moving away from SVN are limited MacOS support, consolidation of version control solutions (e.g. getting everyone on Git) or any other reason for moving to a more "modern" solution. It's worth comparing not only the version control solution, but also the ecosystem around it.
These days we have several systems that can help you develop and maintain your version control setup, starting with Git, the most popular open source system, with a huge community like GitHub, GitLab and so on, up to in-house professional systems like Perforce, or other cloud systems like Unity Version Control.
Git is a widely used decentralized version control system, especially by open source developers, where even Epic Games hosts the Unreal Engine source code for its customers to build certain custom versions that are not normally released on the main Epic Launcher branch. It thrives in a vast environment of desktop and cloud applications and services, including GitHub, GitLab, and Azure DevOps, making it a great version control solution for teams of any size.
Acquired by Microsoft in 2018, GitHub has become one of the most popular cloud services for version control, especially for open source software. You can find the source for some game engines, game mods, Windows tweaks, just about anything you can imagine. You can join to participate in the development, or just use the source to build special versions if they are not already provided. At the same time, you can host your project, and if it is small, you can use it for free with some limits on bandwidth and storage. To commit to the cloud repository, you can use the Git commands or a desktop application like GitHub Desktop or Anchorpoint.
Based on Git and compatible with cloud providers like GitHub, GitLab or Azure Devops, Anchorpoint aims to be a more artist/designer friendly version control application. It has powerful features for handling file locking and single file operations, presets for .gitignore configuration, asset management with visual thumbnail generation, advanced file reviews and provides editor version control plugins for popular engines like Unity and Unreal.
Mostly used in medium to big game companies, Perforce is a centralized version control solution with its own tools. It's very scalable, making it a good choice for big projects, but is a bit slower than Git, and it requires constant connection to a Perforce cloud type server.
The core app has the best system for single file operation where it is not needed to update your project when you want to submit changes of single files, and has very reliable access control on a file and folder level, where you grant the whole access to a repository including all the files. Unfortunately it has a legacy type UI, which can be confusing for artists and designers to work with, along with elevated cost based on team size and addons like Perforce Helix Dam.
Helix Dam is a web-based asset management solution that integrates seamlessly with Perforce Helix Core. It allows users to efficiently search and review assets as their libraries grow, but requires an additional license in addition to Perforce Helix Core.
If you are using Unity as your game engine, it comes with its own version control, formerly called Plastic SCM, it can be used with other software as well. It’s a fast and responsive desktop client that can work with centralized and decentralized workflows, along with the Unity plugin.
Unity Version Control can handle binary files without any configuration and provides file locking, but unfortunately you are locked-in just like with Perforce, where you have to rely on the Unity cloud and its desktop app for everything.
While the desktop application doesn't offer .fbx thumbnails, file reviews or tagging, the Unity plugin lets you use your editor's explorer to organize your assets. This is a little less optimal than a proper asset management feature, as you are gonna rely on filename and correct artist description for asset review.
Here and there, you might hear the term mercurial, especially on developer forums. Honestly, I have never seen this being used in a game development environment.
Alienbrain was developed as an artist version control solution for game development. However, the development of Alienbrain seemed to stop years ago, so I would not consider this as a “modern” alternative to SVN.
As a game developer, I have worked over the decades with all three ecosystems described in this article. For small to medium projects we used the nice and clean GitHub desktop application, later we moved to Anchorpoint for file locking and proper asset management (file tagging, filters, file reviews), and especially now for the Unity and Unreal plugins.
At large companies, I worked with SVN and later Perforce, as that is the standard these days, and it worked well as long as you have a DevOps officer or Programmer in charge of depots and access controls.
My recommendation is to use whatever is easier and suits your needs. While application X may be better than application Y, you can still use application X because you are very familiar with it, it is easier for you to use, and it may even speed up the overall version control process.