Source Control Basics For Sound Designers
What Is Source Control & Why Do We Use It?
Source control, also known as version control, is a vital tool for any game development studio. It enables multiple independent teams to all work on the same project simultaneously from home or the studio.
Additionally, it allows us to backtrack on our work and return to a previous version if things go wrong. Small errors can have a big impact, and can happen quite easily, so version control provides an important additional safety net, especially when working on larger projects with many different teams and departments. We can also test things in a safe environment, as it’s easy to simply revert the changes.
Another benefit is that it allows us to see who changed what file at any point in time. This way we can find and speak to the right team members about opportunities and potential issues.
Lastly, we can lock certain files, such as a level, so that no one else can make changes to that file while we are working on it. This is super useful as it ensures that two people aren’t making changes to the same file resulting in potential clashes and merge conflicts (when a file has been edited by two people and the computer isn’t sure which changes to keep and which to throw out).
This short video by Udacity provides a great high-level overview of the subject: https://youtu.be/zbKdDsNNOhg
How does it work?
A ‘master’ version of the game (also referred to as “the build”) is stored on a server that can be accessed by everyone working on the game, and we download the most recent version onto our local machine (the computer that you have in the office or at home).
Once we have the latest version of the build, we can add or change files, and then upload them to the source control server (often referred to as a “commit”). Those changed files are then updated on the server, allowing others to synchronise and download those changes to their local machines, and continue to make their own changes to those files.
This quick-start guide tailored to audio folks by Javier Zúma does a great job of explaining the process in more detail: http://javierzumer.com/blog/2021/5/31/brief-source-control-guide-for-audio-peeps
There are a lot of different programs that we can use for version control, but by learning the basic principles you’ll be able to find yourself at home with any of them very quickly.
Additional Resources
This visual guide to version control is a great explains with some really helpful diagrams: https://betterexplained.com/articles/a-visual-guide-to-version-control/
Lastly, a fantastic video collaboration between Henry Scott & Cai Jones on this topic: https://youtu.be/EgBSAQWWsaY