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.
This is a collection of tools and services (free and paid) that are compatible with a Git-based pipeline for game development. So if you are a DevOps person or manager, this article is for you.
Git is the most popular version control system, used by 93% of software developers worldwide. It is open source and therefore has the largest ecosystem of tools and services. There is also a subset of solutions built specifically for game developers. So what are the reasons that speak for Git?
In this section, we will focus only on development infrastructure, leaving out game engines like Unreal, Unity, or Godot, as well as creative tools like Blender or Photoshop. We will also exclude services such as Azure PlayFab or AWS GameLift where you host your actual game.
Key components include storage, desktop applications, asset managers, CI/CD tools, and project management solutions.
Your source of truth for all your assets and game engine content.
Gitea is an alternative to GitHub that can either be self-hosted or run in the cloud. Gitea's source code is open source and maintained by an active community. Gitea provides repositories (the place where you want to put your code and assets), a wiki, a kanban board for tracking your tasks, and a full automation system for CI/CD (Continuous Integration/Continuous Delivery).
Main advantages
GitHub: Obviously the most popular solution out there. Most people are familiar with GitHub. It's a good choice for light projects that don't require a lot of storage. It does have hard limits on file sizes.
GitLab: A good choice if you go with the self-hosted version. GitLab is the most feature-rich DevSecOps solution out there, and it scales a lot. It's a little hard to set up, but it's the best choice if you have a large team.
Azure DevOps: You may have heard this many times on the internet. Azure DevOps is a service from Microsoft with no pricing and no storage limitations. The downside is a slightly clunky UX and connection speed that is lower than on the other services.
The tools that upload and download your files to and from cloud storage, and take care of file locking and other features so you don't overwrite each other's work.
We have to be honest and say that we develop and sell Anchorpoint, but we try to stay objective.
Anchorpoint is a Git-enhanced version control application built explicitly for game developers. Git was not inherently strong in game development. Anchorpoint adds the missing pieces. There is a free version for solo developers and a paid version for larger teams.
Main advantages
SourceTree: This is a free desktop client that can preview branches in a nice way. It is mainly aimed at developers, but artists can also use it.
GitHub Desktop: The desktop application of GitHub. It's also compatible with any other Git repository.
GitKraken: It's a more advanced desktop client that can handle all kinds of Git commands in a visual way. It is free for public repositories if you are developing open source projects.
An asset manager helps you organize your content library and share content with external stakeholders, such as contractors or your marketing department. In most cases, it's a web-based solution.
A fairly new solution is Artstash, launched in early 2024, that can sync art assets from Git repositories and display them in a nice and visual way. It can browse all your assets and with a filter and search system you will find what you are looking for.
Since it is a new solution, the developers are very open to feedback and suggestions from the community.
Main advantages
GitHub, GitLab or Gitea: All of these can do the job of simply sharing files via a web browser interface. However, their interfaces can be confusing for non-developers.
Google Drive: You could also store and share your files on a Google Drive and use Anchorpoint to tag them. However, the tags and a metadata search option will only be available to your development and art team who have Anchorpoint installed, and will not be visible to external stakeholders such as your marketing department who don't typically use Anchorpoint.
Continuous Integration/Continuous Deployment are DevOps processes that come from software development and help you deliver content to your players faster and more frequently. This includes DLCs or patches to keep your player retention high. Without a proper toolset, your developers would have to perform so many manual steps like uploading builds to marketplaces, communicating with QA and the community, and constantly adjusting things like changelog or configurations, which would slow them down immensely.
Every major Git hosting provider has it's own CI/CD system that comes with a tool for orchestration and a way to manage runners. Runners can be computers that do things like create a Unity or Unreal build, so you don't have to use your local computer.
Gitea actions are nicely integrated with the Gitea git server.
GitHub Actions: A similar service from GitHub that also allows you to build your CI/CD pipeline.
GitLab CI/CD: One of the first solutions out there, which also made GitLab quite popular.
Azure DevOps CI/CD: Like Gitea, GitLab and GitHub, Azure DevOps has it's own CI/CD system.
TeamCity: A more advanced solution from JetBrains that can work with any Git hosting provider.
This may not be part of Git, but it's definitely important for your studio to keep track of tasks and what your team is doing. There are hundreds of solutions out there, mostly generic project managers for everyone. Some of them are optimized for software development, which makes sense for game development as well.
One of the very few solutions that was actually built for game development. Setting up tasks in Codecks is playful, and it comes with integrations to Discord to keep your community involved in your development process, and Git hosting providers so that commit messages are attached to the right task.
Main advantages
Jira: One of the most popular issue tracking software for software development. It is a comprehensive, feature-rich solution for enterprise software development, but can be slow and overwhelming for smaller teams. It also has Git integration.
Trello: A very popular and simple Kanban task tracking solution. Can be fine for small teams, but because it is a more general solution for everyone, you will miss certain features that are tailor-made for game development, like Codecks has.
Linear: A new Jira alternative with a fast UI and modern UX. We at Anchorpoint use it for software development as well. You can think of Linear as a modern version of Jira, also made for software developers.
Git, when used without the LFS extension, has always had problems with binary files. Repositories quickly became bloated and slow. That's why people say Git can't handle binary files. Using Git LFS requires some configuration. Anchorpoint, for example, does this automatically. With Git LFS, these limitations don't exist anymore. Also in 2020, Git added features like sparse checkout to manage large repositories. You can scale to TB-sized projects.
Git is by nature a command-line application, which is not really artist-friendly. But there are plenty of desktop applications that provide a visual interface and allow game artists to use Git with a few clicks.
Git is the version control system, GitHub is a cloud platform based on Git. GitHub is compatible with any desktop application, CI/CD system, and other tools that are part of the Git ecosystem.