How to use version control for GameMaker with GitHub
Learn how to back up your files and to collaborate in a team using Git as a version control solution on your GameMaker project.
If you want to collaborate on a game project, resolving version control (or source control) is one of the first things you need to consider. If you are familiar with Git, you may have heard of GitHub. This allows you to store your game project on a server, so that everybody has access to it. GitHub is great for software development, but for games, there are better solutions out there.
Microsoft Azure DevOps is a Git server and a viable alternative to GitHub, GitLab, and Bitbucket. It provides unlimited storage for Git LFS, which is a blessing for game development with Unity, Godot and Unreal. The free plan allows up to 5 users, which is great to get started. Everything above 5 users comes at a reasonable price of $6 per user per month. This is keeping in mind that it does not bill you for storage, which you will need for textures, movies, audio and 3D files.
Azure DevOps is part of the huge Microsoft Azure ecosystem, which is a direct competitor to AWS from Amazon. It seems a bit overwhelming to get started and this tutorial will help you with that.
In this tutorial, we will use
Since Unreal Engine 5, changes on a level can be stored in multiple small files using One File Per Actor. This has multiple benefits:
If you are using World Partition, the One File Per Actor feature is enabled by default. It not, you have to enabled it here.
Go to dev.azure.com and create an account.
Now you have to walk through the typical account creation process. When you are done with that, you will be able to create a new project in DevOps. The process is a bit nasty, but you only need to do it once.
In the next step, you'll need a Git client. This is a desktop application that will push and pull files from your computer to the server. In this tutorial, we will use Anchorpoint, because it is suited for artists and has all the configuration for Unreal or Unity projects ready to go. If you don’t want to use Anchorpoint, there are alternatives like GitHub Desktop or SourceTree.
Setting up Azure DevOps can be a bit fragile. We experienced some login issues, that can be solved using a custom credential set. Just open up the section under "Use Custom Credentials" and follow the instruction on the screen.
Now it's time to turn your Unreal project into a Git repository that you can upload to DevOps. Create a project in Anchorpoint and select your project folder on your hard drive. Once you create a new project in Anchorpoint, it will be also created on Azure DevOps due to the integration.
Anchorpoint detects that you have changes that haven't been committed yet. There are files on your computer that are not on the server. You need to enter a message and commit them.
When you entered the message and pressed “commit”, you created a version, which is basically a checkpoint for your project. After that, you can press “Sync” to upload them to Azure DevOps.
Your workflow will be always like this:
During every push, Anchorpoint will check for file changes, which have been made by your teammates and download them, before uploading your changes.
Your team member needs to have an active Azure DevOps account and an Anchorpoint account. When you invited your team member to an Anchorpoint project, which you did in the step above, they will get a notification. They simply need to click on the invite and join the project. Anchorpoint will ask them, where to store the Git repository. They have to pick an empty folder on their hard drive and then Anchorpoint will download the game project from DevOps.
This is all you need to do to set up a game project with Azure DevOps and Anchorpoint. From now on, you can make changes in Unreal or Unity and commit, push and pull. That’s everything you need to know about Git.
Azure DevOps is free for 5 users and costs if your user count is beyond that. Take a look at their pricing. Right now, Azure DevOps does not charge for Git LFS storage. Read more on their blog. This however might change in the future.
A .gitignore prevents uploading files, that should not be shared, such as build results or DerivedDataCache. Anchorpoint is setting up a .gitignore file automatically. If you want to know how to customize it, take a look at this article on how to customize your .gitignore for Unreal Engine.
You can. Just make sure that you configure your .gitattributes file correctly to use Git LFS.