An Alternative to Scene Merging
You may be familiar with our multi-user scene editing tool for Unity (if you aren't, you can check it out here). We have learned a lot from its beta and want to share one of our frequent customer use cases that we thought you might find interesting: an alternative to scene merging.
As you probably know, if a scene needs to be worked on by more than one person, teams will often have each person make changes to their version of the scene and then merge the scenes together using a tool like Unity’s UnityYAMLMerge. There are three main issues with this method:
1. There are technical limitations. Quite often there can be significant conflicts between the scenes that can cause corruptions when merged. In many cases this can mean that a lot of manual work is required to combine the scenes. In a worst case scenario it can mean the work of one or more team members is lost completely.
2. Special source control considerations are needed. Although not particularly difficult to set up, there are still some changes that need to be made to your source control platform in order to integrate the Unity scene merging tool. It also probably means that additional education for your team will be required to effectively use the tool and deal with issues that may arise.
3. It isn’t highly collaborative. Collaboration can be very important for teams working on a creative medium (http://99u.com/articles/16850/everything-youve-ever-wanted-to-know-about-teams). In game development it can help ensure that the team is sharing a single vision, that the creative director and lead designers are happy, and that work is being completed efficiently. Unfortunately, collaboration is limited by your awareness of the work your team is doing. Even if you are in the same office, it can become tedious and unintuitive to look over each other’s shoulders whenever you want to see what a team member is working on. Because of this, reviews on a level of a game can be put off until a significant amount of work is done and the entire team has a chance to sit down and discuss it. This can lead to late and costly revisions.
Our tool, Scene Fusion, enables real-time collaboration in Unity scenes and therefore provides an alternative to scene merging and the above issues. With this system, several people are able to connect to a scene at the same time and see what everyone else is doing while it’s happening. When a scene session is finished, the scene can be saved containing everyone's changes and committed to source control. This addresses the above issues because:
1. Collaborative scene editing means scene merging is not required. A scene can be saved as it normally would be, and no special merging is needed. This therefore prevents conflicts that arise with scene merging.
2. Source control functions the same way as it would without scene merging. Scene Fusion isn’t source control, nor does it need to touch source control. The idea with Scene Fusion is that you have a session host who commits the scene to your existing source control platform once everyone is done editing. Again, no merging or special source control considerations need to be made here.
3. It’s highly collaborative. Because everyone can see what other team members are doing, feedback can be delivered in real-time and conversations about the current scene build can be had while it occurs. The best part is that because Scene Fusion is a cloud service, this can happen even if you aren’t located in the same office.
I hope this is as interesting of a use case to you as it was to us when we first received this feedback. If you have any questions, comments, or concerns feel free to leave a comment or email us at info@kinematicsoup.com! You can learn more about Scene Fusion at http://www.kinematicsoup.com/scene-fusion and the UnityYAMLMerge tool at https://docs.unity3d.com/Manual/SmartMerge.html.
Written by Alex Thiessen, Development Project Manager and Marketer at KinematicSoup.