Introduction

Scene Fusion is a tool that allows level designers to work together in real-time. It synchronizes changes as they are made to facilitate instant feedback. It is focused on sychronizing in-scene changes, and operates under the assumption that a revision control system is used to synchronize project files. Source control is still strongly recommended to track changes project-wide.

Workflow Overview (Unity Engine)

Getting Set Up

Prior to starting the collaboration session, each team member must sychronize their project copies with each other. If source control is used, each team member can check out the same branch, or create their own braches from a common branch.

The recommended workflow to start collaborating is to designate one person as the 'host'. This person start the session, be the last to leave the session, and will be responsible for saving the scene file(s) and committing them to revision control.

To start, the host should open the desired scene file and start the session. It will take a little bit of time for Scene Fusion to sychronize the scene data with the session. Once the data is synchoronized, the other users can join the session.

During The Session

Scene Fusion will attempt to locate their copy of the scene file used in the session for each new person joining. If it cannot locate the scene file it will create it using the same filename and path on as the file opened by the host. If it does find the scene file, it will open it. If any differences are detected, they are discarded so that the scene file matches the scene used to create the session.

Gameobjects in the scene are locked when selected by a user, and unlocked when unselected or when the user disconnects. When an object is locked, it can only be changed by the user who owns the lock.

Terrain editing is an exception to the lock rule. Multiple users may edit a terrain simultaneously. Be aware that it can take some time for changes to synchronize, and the changes from one user can replace the changes from another if they are editing the same location.

Assets and Prefabs

Scene Fusion will sync scene changes, changes to terrain (if enabled), and lighting settings. It will not sync new assets or changes to code or existing prefabs. Scene Fusion attempts to block prefab modifications by other plugins or code, though this may prevent the proper operation of those plugins or code. Modification of an existing prefab can happen if it's changed on disk, such as being updated from revision control. If that happens, the behavior of Scene Fusion is undefined.

Adding new prefabs during a session is possible, however distribution to the collaborators must be accomplished using revision control. Instances of a missing prefab are represented at '?' icons in the scene, which are replcated automatically once the prefab is available.

It is possible for one user to add a new prefab while in session. Instances of this prefab in the scene will appear a '?' icon in the scene.

Finishing The Session

Once all the work is completed everyone can leave the session. One person, typically the host, saves the scene file and commits it to revision control.

Special Considerations

Play Mode

Scene Fusion allows users to enter and leave play mode. Changes made by others are not applied until play mode is exited.

Recompiles

In the event a recompile is triggered, the user will be disconnected from the session. When the recompile is completed, Scene Fusion will establish a fresh connection to the session.