Unity 3D

Unity Collaborate

by on Dec.26, 2017, under Uncategorized

Collaborate is a new feature in Unity to allow fast and simple project sharing, a repository and version control system.  You can find it in the top bar near Layout and Layers.

I’m new to Version Control, why is it important?

Version Control, and source code repositories in general, provide a central spot to store your project off of your machine.  If you experience a crash, you can pull the latest copy onto your next development machine, helping minimize damage.

Additionally, if you break your code and can’t figure out how get it back to a working state, you can erase all the local changes since your last check in yesterday.  And of course it makes it easier to have multiple people editing the same project remotely, as it manages all the changes between people.

But I already have a good repository

Depending on your setup, its not a big deal to shift.  If you’ve got a full power system for managing your projects already, great.  However, I’ll start this by saying so did I.  I was a strong proponent of TFS in the Cloud, and more recently, GitHub.  I saw no reason to switch, but I figured I would at least try it.

That was one of the best Unity decisions I’ve made, as it opened up so many more doors for me than I would have expected.  In the rest of the article, I’ll cover some reasons why.

I’m a team of 1, how can this help?

Its fast to store all my projects online.  I can wipe out my machine and not worry about losing the project.  Or if you want to revive something, you don’t have to go look for it, Unity will carry a cloud list on start, even if you don’t have if on your local machine any more.

This makes it easily accessible to look up examples you’ve worked on.  As shown here, I have a project to test out QHierarchy, an excellent IDE enhancement asset, and a Proof of Concept for a chain reaction game.  (in addition to many others not visible here)

A change in perspective

For Proofs, or testing assets from the store, these were never things worthy of setting up TFS or GitHub just to store it.  Setting up a repository on pretty much anything requires number of steps, and proofs/tests are typically throw away code.  Since this is only a couple button clicks in Unity, it makes it much easier to consider to keep around.

When you think you are done with a project, you can just delete the local copy, and forget it.  If at any point, you want to go back to revive/review it, you can always pull it down again.

This means I have easy access to pull up nearly any project I’ve worked on in the last year, which in my case includes about 40 PoCs/test projects.

Finally

I recommend using this for almost all of your projects by default.  If it becomes larger, or you find yourself wanting to manage things outside Unity projects, then switch to something more robust and tempered, like TFS in the Cloud, or GitHub.

A couple gotchas

Nothing is perfect.  Despite the following setbacks, this has still been remarkably valuable.

Amazingly, this has actually handled scene merging (the only tool I’ve found to successfully do so).  HOWEVER – It has messed up merges on multiple occasions (it tells you before it happens).  I.e. there seem to be a few things that prevent it from merging and I’m not positive what they are.  One seems to happen when elements are moved by multiple people.  At that point, the merge tool goes to WinDiff, or whatever you use locally and fixing it is fraught with unseen risks.

If you face a scene merge issue, speak with the other person who submitted a scene change, and work out how redo one of your sides, skipping the merge.  If you are checking in often, this shouldn’t take too long, and if you use other systems, you typically can’t handle scene merging at all.

At the time of writing this, there is no stable Commit ID, making tracking in any other system a pain.  They are working on this.  But for now, after a certain amount of time or commits, it takes older ones and archives them.  (you can get them back).  But the numbers provided start over then.  I had a project and one morning commit #167 became #25 in the list.  I recommend including your own sequence number in the commit comment.  Additionally, if you use the Commit #’s in the History tab, those don’t show up on the web version.

 

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Blogroll

A few highly recommended websites...

    Archives

    All entries, chronologically...