Unity and git
As I embark on the next leg of my journey in software development I will be sharing my experiences and sometimes a rundown of tools that I will be using along the way. Today, I am going to do a quick summary and introduction to two of the most important tools on my path to having a career in game development, Unity and git.
What is Unity?
Unity is a Game Engine, a collection of libraries and tools that are designed to streamline the creation of video games. The suite of tools can also be used for visualization of models, 3D architecture, automotive design, film making, and more. Included in the toolset is a robust interface for interacting with the visual and design aspects of the process and integrations with several popular code editors including Visual Studio, VS Code, MonoDevelop, and JetBrains Rider. The primary coding language used in Unity scripts is C#.
What is git?
Git is one of several source control and versioning systems on the market that are designed to track changes to files and allow for sharing of work amongst team members even if they are distributed in different geographical locations. It can act as a central repository of changes and a backup of all work done and submitted to the repository for the project.
GitHub, Bitbucket, and GitLab
GitHub, Bitbucket, and GitLab are some of the most popular sites that offer access and hosting for Git repositories. Each has its own set of tools but the choice of which site to use is largely up to the preference of the team using it as they all offer the same core functionality. Unity also has its own version of Git hosting called Unity collaborate. As GitHub probably the most well-known and popular of the hosted Git services, it is the one I will be using for the majority of my work.
Why use git?
I use git to track the changes in my work, providing me the opportunity to look back at previous iterations of my work and the option to go back to any of those sets of changes if I need to undo some of my work or change my mind on some functionality. I also use it as a method of backing up my work off-site which can be useful in the event of a system crash or if I simply want to move to a different computer to do further work. As I expand my work to include working with other teammates, having my work in a git repository will make sharing and collaborating with those teammates easier.
Years of experience
To be fair, git is not something new to me. I have been working with version control systems for the better part of 2 decades. From the days of Visual SourceSafe and early versions of Team Foundation Server (both Microsoft products), I have almost always utilized version control systems to maintain a record of changes to my code and share them with others. When I first started using git and GitHub as my version control systems I had a difficult time remembering the command line statements used in, what was at the time, the default configuration of most git systems to get work done. The tools I had previously used were visual and had interfaces that were, most of the time, easy to understand and use, and relying on the command line felt like going backward in the days where visual programming was shiny and new to me. These days I utilize GitKraken, a visual IDE for git that can connect and interact with almost any hosted or local git solution. While I still prefer the use of a slick interface on top of my git commands, the early days of struggling to learn and internalize those git commands have come in handy on many occasions.
That’s it for my introduction to git and Unity! We’ve looked at what both Unity and git are, how and why I utilize git for my unity, and realistically all of my software development, projects, and a little bit of my history with version control systems that lead to me utilizing git the way I do today. Next time we’ll look at how I set up my Unity projects to utilize git. If you enjoyed this article, or want to come along with me as I progress on my journey, follow me at gamedevchris.medium.com.