Ever wanted to allow more than one person to work on a project without overwriting each others work? This can be extremely frustrating for new development teams who have not used any version control system before. The ones available to Unity have been difficult to use at times leading up to now. I want to talk about a few options that I have come across.
Yes, you can share Unity projects. Git, shared drives, scene fusion, and Unity collaborate are several options that may work well for your projects.
Option 1: Git
If you look around very long for any suggestions on this topic, Git is one of the most commonly suggested ways to share a Unity project. Quite frankly, I think it may be one of the worst.
In a classroom, I spent two different years trying to get Git to work properly. It was either over mine and the students heads or just simply isn’t a good option. I think it may be both. I acknowledge that code is extremely important for game designers, but it’s not the only aspect of game development.
Git was not very easy to use. I even tried to use some basic applications like GitHub Desktop and SourceTree. Both were great tools. We used GitHub a bit for web design. However, for game development it just didn’t feel sufficient. Here’s why:
GitHub is really meant for code management. So it worked very well for all of the scripting we had in our game. However, as soon as we mixed in some 3D models and textures, it just didn’t perform as we wanted to. Perhaps others found better solutions for transferring these types of files back and forth, but ultimately it felt like we were doubling the work to move files back and forth between two people. We would transfer code through git and then use a shared drive for other file types.
There are a lot of people that swear by this method, but I have not found it to be that great. It may be best suited for someone working on multiple computers and wishes to have a true version control system that they can revert back to older versions if necessary. It is certainly better than no alternative, but I believe there to be better ways to share a Unity project.
Option 2: Shared Drives
This is the system we have most frequently used in the classroom. It’s the easiest for students to understand. We have a network drive but it could be done with something like Google Drive. It’s an easy way to share a project and make it accessible from multiple projects. The downside is that you are still limited to one person using the project at a time.
However, on our networked shared drive we have a backup system that has saved us multiple times. If a project becomes corrupt, we can back up a few hours or a few days, depending on what we need. It has saved quite a few game development projects!
Option 3: Scene Fusion
Scene Fusion is something that we have used in the classroom quite a bit this year. Students get a bit frustrated with the setup, but if you read the instructions it’s pretty well a one time thing. If you have a consistent workflow on your team, it’s a really awesome tool. We used it to allow multiple people to work in a Unity Scene at one time.
Once you grasp how it works, it’s nice to use. Students found it to be a bit slow and cumbersome, but it was their lack of experience with Unity that made it feel that way. Someone with a bit of Unity experience would find it to be a great tool. I do highly recommend Scene Fusion as a method for working in a Unity scene at one time. In fact, I recommend so much we purchase a classroom license two years in a row, which was not the cheapest.
The developers are great with support as well. Anytime we did run into issues or if I had questions, they were quick to respond and eager to help out.
Here is a demo of Scene Fusion, as I know many have not heard of it.
Option 4: Unity Collaborate Using Plastic SCM (Recommended)
I recommend Unity Collaborate now that they moved to Plastic SCM. Plastic SCM was a solution we also looked at after finding Git wasn’t a great option for us. It did work a bit, but it was again another cumbersome system originally before it was fully integrated into Unity.
Now, Collaborate has completly moved to it. Anyone who used Unity Collaborate prior to this change likely found themselves a bit frustrated once they hit the 1GB limit. 1GB felt extremely low as students were adding quite a few image files and trying out Unity assets. When students aren’t real familiar with optimization, 1GB is used up really quick.
With PlasticSCM, developers can have up to three people working on a project for free and the project can be up to 5GB. This is a huge improvement.
What Makes Plastic SCM Better than Git For Unity?
Git is certainly more popular than Plastic SCM. If you are a developer of any kind of software, you have likely heard of Git, or the largest platform using Git, GitHub.
GitHub (or Git) is a great platform for code itself. However, as anyone who works in game development is aware, a game is not made up of only code, but includes image files, potentially video, and other media based files that require a significant amount of storage.
With GitHub, you cannot exceed a push of more than 100MB at a time and can’t push a file that exceeds more than 25MB. If you download a single environment pack it is likely more than 100MB. We would spend quite a bit of time trying to eliminate files that we weren’t using in the project to try and lower our file size. Sure, this probably should be done anyhow, but if you’re learning, there are more important things to focus on.
PlasticSCM can really support the media files. It’s built for that. You as the developer have the choice to choose how large of repository you are working with. When you aren’t severely limited on space, it makes the process much more enjoyable.
The Price of Plastic SCM for Unity
The downside of Plastic SCM is that you are going to pay for larger repositories. You get 5GB for free, which is a significant amount. However, you will be surprised how quickly 5GB goes if you’re working with a 3D environment. The good news is that space is only getting cheaper. Right now, an additional 20 GB will cost $5 per month. And each additional 25GB will cost another $5 per month. This is extremely affordable.
In addition, the Plastic SCM free version only supports up to three developers. If you wish to add additional developers it will cost $23 / month for each additional developer.
How to Move From Unity Collaborate to Plastic SCM
- Ensure you are using one of the versions of Unity that supports Plastic SCM integration. According to Plastic SCM the following versions and later are supported:
- 2019.4. 32f1 or later.
- 2020.3. 20f1 or later.
- 2021.1. 25f1 or later.
- 2021.2. 0b16 or later.
- 2022.1. 0a12 or later.
- Go to Project Settings -> Services -> Collaborate
- If you turn off Collaborate, you are now using Plastic SCM.
You will then need to download Plastic SCM and set that up. Instead of writing everything out, I felt the video below did a great job of walking you through it for each team member.