How to login to Azure DevOps (Quick Tip)
Due to the complexity of Azure services, it's often not obvious how to log in to Microsoft's Azure DevOps portal. This quick tip will show you how.
If you are looking for Unity Collaborate, a version control system from Unity that was introduced in 2016 and will be deprecated in 2021, this article will show you how to use Git as an alternative solution. If you are new to version control, read on. If you are already familiar with it, you can take a look at how to use Unity with GitHub.
You need to use version control. It comes from software development and game development has a very similar workflow. Unlike with Blender files, you cannot save Unity files incrementally (v001, v002. v003). The engine won’t understand that these are version of one single asset. A version control system does that for you but in a more intelligent way. Version control allows you:
The reason is simple: these services sync changes instantly, and game engines like Unity don't manage files in a way that supports incremental saving for complex projects. A Unity project, much like an Unreal project, is made up of many interconnected files. For example, importing an FBX file into Unity converts it into a proprietary .asset or .prefab file, depending on the content type. Re-importing an updated FBX file simply updates the existing .asset or .prefab file without creating a versioned duplicate (like _v002.prefab). This is different from software like Blender, which allows more direct control over file versions.
Now consider the scenario of collaborating on a Unity project using Dropbox. Multiple team members could end up overwriting each other's work, with no easy way to revert to previous versions if necessary. Think of the hours of work that could be lost. A version control system prevents this by forcing you to use a proper workflow and adding the safeguards mentioned above.
However, there is a place for syncing services like Dropbox, Google Drive, or a NAS, and that is for things like your asset library, game builds, 3D scans, image sequences, and basically anything that is not a document file that needs to be versioned.
Git is a version control system. GitHub is a cloud service provider built on top of Git. There are other version control systems like Perforce, Plastic SCM (as of 2021 it's called Unity Version Control) or Subversion.
Regarding GitHub, there are also other cloud service providers that are part of the Git ecosystem, in other words, they are compatible with the Git version control system, such as GitLab or Azure DevOps.
You need two things. A cloud service provider to share your files, and a desktop application to push and pull those files. Since GitHub is the most popular, you can start with it. If your project has large storage requirements (for example, it needs many GBs), then you can choose Azure DevOps. If you are dealing with customer data and security is a big option, then you can pick GitLab because you can self-host on your own system.
For a desktop application, you can pick Anchorpoint, the application we're developing, because (we're trying to be honest here) it was designed for game development, especially for non-technical people. If you are an experienced developer and you need Git features like rebasing, stashing, blaming, etc. then you should go for something like SourceTree or GitKraken.
Most of the time you will be pushing and pulling files to and from GitHub using Anchorpoint or another desktop application. It's similar to what a Dropbox desktop application would do, but instead of automatically syncing, you're doing these steps manually.
Artist A (You):
Artist B (Your friend):
A Git repository is not the file sync solution for everything. For some special cases, you will need a shared folder on a Dropbox, Google Drive, or NAS. This is how you decide what to put where.
The term "repository" means the same as project. A project folder on your computer is synchronized with your Git repository on GitHub.
In addition to your Unity project, it may also make sense to add your art files, which include Blender, Substance and ZBrush files, to your Git repository. The reason is simple. You have them all in one place, and you use the same version control workflow for all assets that require iterative work.
If you're working with outsourcing companies that only produce, say, art content, then it makes sense to have two separate Git repositories (one for Unity and another for art files) because you can only give external vendors access to one repository, so they never see, say, your game source code.
Content that does not need to be versioned should go to a simple file synchronization solution. That's because these services are easier to use. This is also where you share files with external stakeholders (customers, marketing team, QA, etc.). Files of this type usually belong there:
This tutorial will show you how to set up a repository on GitHub and how to use Anchorpoint to invite team members to your project and collaborate. Keep in mind that GitHub is just one of many hosting solutions, and Anchorpoint is just one of many Git desktop applications. After watching this video, you should be able to start your first Unity project with proper version control.
Each of these alternatives has its pros and cons, tailored to different project needs and team sizes.
Yes, Git is an open-source system, which contributes to its large community of cloud services, desktop applications, and integrations. Numerous paid services build upon Git, offering customer support for those who prefer not to manage it on their own.
The .gitignore file is an essential tool when using Git for Unity project management. It prevents the upload of superfluous files to your repository. Positioned typically at the root of your project, this plain text file establishes guidelines for Git on which files should be disregarded. It's especially useful for excluding files in directories like Library, Temp, or Logs, which are locally generated during development and can unnecessarily bloat your repository.
As projects grow in complexity or the team expands, managing concurrent development efforts becomes more challenging. This situation can lead to interruptions in workflow, especially when ongoing work from developers impacts the artists' contributions. To navigate these challenges, the project can be divided into distinct sections or "zones," allowing individuals or small teams to work independently without stepping on each other's toes. Once the tasks in these zones are completed, they can be reintegrated into the main project. This approach is facilitated by using "Branches" in Git, which effectively allows for parallel development streams.
Git LFS is an extension to Git that allows you to work with binary files. Unity scenes are text-based files, but 3D models, audio, and images are binary files. Anchorpoint automatically handles Git LFS. If you are using other Git clients, you will need to ensure that Git LFS is enabled. All Git hosting providers support Git LFS out of the box.