Search Unity

Developers have hit many challenges with Collaborate – our solution for managing changes to project source files. We’ve started to rebuild Collaborate from the ground up to be more stable and feature-rich and to support large projects and teams.

With the recent release of Collaborate 2.0.0-preview-15, we want to share with you what we’ll be working on next. Our goal with Collaborate is to continue to provide a simple user experience for those of you not familiar with the complexities of version control while still folding in new advanced features for those of you who are.

Before jumping into the future, we thought it would be good to talk about how we got to where we are today.

How we got to where we are today

We knew that we needed to stabilize Collaborate before we could start working on features many if you have been asking for, such as branching, better diffing and supporting large projects. To that end, we identified multiple areas that needed to be addressed:

  • We need to move away from the homegrown snapshot architecture and on to more proven technology. The custom snapshot logic is the reason you see many of the bugs we have.
  • The client UI being written in JavaScript was a bad choice. In addition to being prone to bugs and unexpected behavior, it’s also highly difficult to troubleshoot and address said bugs.
  • Being built directly into the editor greatly limits our ability to ship quickly. We have to follow the release schedule of the editor, which causes delays in fixing issues you face by weeks to months.

We started to address two of the issues above with 1.3.0-preview.2. Our most significant change began moving Collaborates proprietary snapshot solution to a Git-based solution. Also, we started moving Collaborate to a package, available through the Package Manager. In addition to fixing some really nasty bugs, the release also taught us a very valuable lesson: being in a hybrid state of new and old technology was worse. For every bug we fixed, several more popped up. We finally had to admit the truth, it was time to start fresh and rebuild Collaborate.

Before we could do that, we wanted to take care of one more major ask that you had for us – Checking for Changes. This was accomplished with release of 2.0.0-Preview-15which now has a manual rescan feature alongside the removal of the blocking dialog.

Looking to the future

The 2.0.0-Preview-15 release marks the end of the “old Collaborate” era. This means that it will be put into sustainment mode with a high bar for fixes. Moving forward, we will start fresh with a creating a new and highly improved Collaborate UI that is stable, feature rich and will work great with large projects and teams.

Based on the lessons we have learned, the new Collaborate UI will:

  1. Have most of the code in the package, reducing the dependency we have on the Unity editor release cycle.
  2. Leverage existing Git LFS technology to perform version control operations rather than custom logic, increasing stability for both small and large projects.
  3. The client UI will take advantage of the existing UI Elements tools, further increasing stability. It will also no longer be a hover window.
  4. Have features you have been asking for, such as branching, single file restore without rolling back, a robust history window that shows you everything, and much more.

Here’s a sneak peek into early mockups for the new UI, which are subject to change based on the feedback we get from you during our UI study. You can see the new simple and advanced publish workflow, where the branching UI will live, and that the publish and history UIs will be different tabs in the same dockable window. The next round of mockups that we share will include more detail on the robust search workflow and single file restore.

 

Our aggressive team goal is to have a preview package that has feature parity with old Collaborate in August. In the meantime, rest assured that we will share our progress with you and talk more about new features, such as workflows to better support large projects, via regular updates. So please join us on the Collaborate forum and stay tuned to this blog!

How you can get involved

We would love for you to participate throughout development! If you’re interested, here are a few things that you can do now:

  1. Sign up for the Collaborate UI study and provide critical feedback on the designs that we have. (For those of you who have signed up – thank you! You should be hearing from me within the next week.)
  2. If you just want to provide general feedback on features that you’re interested in, you can post them on the forum. We always monitor our forum and may reach out to you to set up a call to discuss your posts in more detail.

Ya no se aceptan más comentarios.

  1. What I’d want from Collaborate is fully multi-user editing environment, where I immediately see all changes made by other. I.e. if someone adds cube to a scene, everyone must see this cube immediately. Currently the only feature what makes a reason for me to use Collaborate is it’s cloud build integration. From all other points of view it’s just another git client.

  2. I think resources should be focused on other parts of the engine. We don’t need another git client. If anything, we could use what Grumpy Dot said in his comment. There are other areas that could use improvements and I would argue are more of a priority, like Cloud Build or the UI system.

  3. The UI changes look really nice, but we would definitely be interested in a way to use it with our own internal Git LFS repos.

  4. We get it, mistakes were made. There is no room to be diddling with your digitals innovating when you haven’t even reached the baseline of existing established solutions yet.

    I don’t mean to be harsh, but Unity’s culture is «lets do magic» – how about you do «magic» once you manage the default everyone else is doing first? The innovation comes after managing the practical existing solutions.

    You’ve learned that here, but some parts of Unity still need this somewhat harsh lesson it seems.

    Having said that, I am encouraged, grateful and proud of the work done so far. Collaborate has been very, very helpful when it’s worked in the past.

    We don’t want to blame you nor kick you while you’re down, we just want results, that’s all. We know, it’s a tough job – but the take away is: innovate once you get there, not before you get there. Because the wisdom of current solutions become fully apparent.

    But, while I might sound critical, I’m really just happy that it’s more important to look at what is being done now, not explain to customers that you’ve made a digital train wreck. Don’t tell us that unless we ask for it.

    Chin up, etc <3

    1. I actually enjoyed this post a lot because of the «digital train wreck» explanation! It’s like reading startup failure stories.
      I teach Unity to absolute beginners and git is very difficult and complex for them. So having a good working «collaborate» would be a bless.

  5. I want to take this opportunity to air an issue I’ve had with Collaborate for a while, even though I’m sure it’s not your department. The Collaborate service doesn’t have a pricing option for gamejams and student hackathons. If I’ve got a team of a dozen students at a weekend workshop, I’m going to want them to use the simplest source control, which is Collab, since many of them will be unfamiliar with GIT and time is limited. But since it’s just a weekend project it’s unreasonable to ask them to subscribe to a $9 a month service. This is incredibly frustrating, and a big turn off for these potential future customers.

  6. Do I understand it correctly, that collaborate 2 «just» provides a simplified ui for git?

    1. The initial release will provide a simplified/streamlined in editor UI that is powered by Git LFS. However, this is only the beginning – We have more features planned that will grow Collaborate beyond the standard git UI, making it it more tailored for Unity development and large project workflows. We’ll be sharing more on these in the coming months.

  7. Richard Kopelow

    mayo 23, 2019 a las 6:24 pm

    Given the new Collaborate will be based on Git LFS would this allow individuals who are comfortable with git to interact with the repo like a standard git repo?

  8. I do not want to sound negative, but in my opinion this is focusing the energy in the wrong direction.
    Instead of building this whole new versioning system, why not provide better integration with existing ones, like fix the inconsistent EOL characters for .asset files, and work on a proper visual conflict resolver?

    1. Visual conflict resolver… please. Hard problem, but very high value.

    2. These are valid concerns and ones that are also being tackled. :) We are working closely with another team at Unity whose mission is to make Unity behave better in general with version control, regardless of the provider you use. Our team is also in the early prototype stages of creating a better way to resolve conflicts. (We’re not ready to share more detail just yet, as the prototype stage is still pretty early – conflict resolution is a fairly complex beast.)

      I do recommend that you submit a bug through the bug reporter for the inconsistent EOL characters if you haven’t already, just to make sure it is on that teams radar for repro steps. (I will also mentioned this to them.)

  9. I have to ask. What is the point of Unity Collaborate if it’s just Git LFS? Why would I pay for Unity Collaborate? There’s already a free git editor plugin on the Asset Store which does the same thing as Collaborate 2.0.

    1. What free asset is there that has the level of support as what the Unity team can provide? If you are referring to UniGet, it looks to be loaded with issues, might not be intuitive to use for people who aren’t familiar with Git, and doesn’t support LFS.

      1. GitHub for Unity

    2. Good question! While the underlying technology is like what some other git providers offer (not all use Git LFS), Collaborate is different in a couple of ways.

      The first being the design goals for the user interface. Collaborate’s original goal was to make version control easy to use for creators who are not experts. We’ve gotten good feedback in that the UI does that. We have also gotten feedback that it is too simplistic for those who are familiar with version control systems. The new version of Collaborate will be designed for both use cases.

      Secondly, we have a few unique features in the pipeline that will set both the UX and the workflow apart from existing plugins and providers. We’re not quite ready to share details on that just yet, but will be in the next coming months.

  10. Hi,

    Given that the new Collaborate is based on Git LFS, is it possible to use other git repository hosters than the Unity internal one?

    1. Not with the initial release, but this is something we are exploring internally.