Version control and project organization are essential for efficient game development. And while understanding version control can be daunting without a technical background, it doesn’t need to be that way.
Our new e-book, Version control and project organization best practices, will help both technical and non-technical game creators make smart decisions about how to set up version control and plan for productive teamwork.
The e-book was written by a longtime Unity developer, alongside other Unity experts, with experience in team-based game development and project organization. As such, the knowledge collected in this guide will benefit a range of developers, including those of you who are new to source code management. Let’s start with a sample of the foundational concepts unpacked in the e-book: how version control works and what it can do for you.
Version control allows you to keep a historical record of your entire project. It brings organization to your work and enables smooth iteration across teams.
Project files are stored in a shared database called a repository, or “repo.” As you back up your project to the repo at regular intervals, you can always revert back to an earlier version of the project if something goes wrong.
With a version control system (VCS), you can make multiple individual changes and “commit” them as a single group for versioning. This commit then sits as a point on the timeline of your project, so that if you need to revert back to a previous version, everything from that commit can be undone. In fact, you can review and modify each change grouped within a commit, or undo the commit entirely.
With access to your project’s full history, version control not only makes it easier to identify which changes introduced bugs, it lets you restore previously removed features, and document changes within your game or between product releases.
What’s more, because version control is typically stored in the cloud or on a distributed server, it supports your team’s collaboration from wherever they’re working – an increasingly important benefit as remote work becomes commonplace.
Aside from the reasons mentioned above, version control is useful for making experimental changes. For instance, you can try adding new features to the local version of your project, and if things don’t work out, revert back to a clean, functional version, without compromise.
Even more, you can save your changes for a later date while iterating on experimental ideas, which is particularly helpful if you encounter a major issue in the main project. With version control, you can get your local version back to the main branch, and then restore and carry on with the experimental work once you’re done.
Finally, version control systems prevent you from accidentally overwriting your teammate’s work, a conflict so many of us have faced before. As you commit your own work to the repository, you will also need to “pull” the latest updates from it. This allows you to verify whether someone else has been working on the same file. And although these dreaded “merge conflicts” can seem intimidating at first, they’re often resolved quickly once you’ve grasped the right tools.
Get the full range of expert tips by downloading the free e-book. Topics covered in this guide include:
For further inspiration and pointers on version control, check out these recent blog posts: