[RELEASED] Scene Fusion - real-time, multi-user scene editing!

@Recon03 2018.4 support is imminent. 2019.1 should follow shortly after.

We pulled back on our prefab syncing feature for now. We have find some workarounds in Unity because of some unexpected behaviors.

Scene Fusion has been updated with support up to Unity 2019.1!

The plugin can be downloaded here: Download Scene Fusion — KinematicSoup Technologies Inc.

Quick question: would it be possible to add Bolt support? Since code can be updated in real-time in play mode, that’d be really useful for a full team to work with!

So 2019.3 is out, are you guys updating to support?

Yes we are. It’s taking us a bit of time to get support for Terrain holes, and (as you might imagine) we have to finish all the usual testing making sure every built-in component syncs or is handled properly, and that as many custom properties of custom components can sync as possible. We also have to spend more time with DOTS to make sure there aren’t any gotchas there.

DOTs… blech. :slight_smile:

I just updated the main post to contain more up-to-date information. Scene Fusion is very much alive and well, and we are working on Scene Fusion 2.

SF2 is super-extensible, and engine-agnostic. We already use it in Scene Fusion for Unreal and are currently integrating it with Unity. We already have some tools to move level data between the engines, and we are able to construct cross-engine real-time workflows. This has been used by teams who want to migrate from one engine to the other, however we envision it as a way to use both engine technologies simultaneously with less effort - for example for titles that span mobile, web, and console/PC simultaneously.

2019.3 support has been up for a bit now. Anyone using Scene Fusion is informed via the plugin directly.

I don’t quite understand how it communicates with source control?
How does it handle scene saving?
Admin starts a session, users change his copy of scene, then admin needs to push changes to repo?
Or it synchronizes automatically between users? Then who is “a source of truth”? When a scene needs to be pushed and by who?
How does it deal with inspector? If User 1 changes some settings in Inspector, does User 2 see it immediately or he needs to pull it from git?

@hottabych Scene Fusion doesn’t need to communicate with source control. It detects and lists the differences people have in their local project states, such as files that are in different states, but will operate uninterrupted. It ensures that any changes made to the scene are immediately applied to everyone who is in the session - ie. everyone get the change immediately in their local copies.

The scene is saved the usual way by the host of the session (the person who started the session) and submitted to source control. At the moment the workflow is that the host opens the original scene file and starts session. Others join the session and Scene Fusion creates temporary scene files on their machines to work on. Technically anyone can save the scene as all the changes are replicated by scene fusion in real-time so they will all be in the same state, but only the host has the original file open. This has one unfortunate side-effect where only the host will have any pre-baked lightmaps. (NOTE: this is going to change once Scene Fusion 2 is available for Unity: In that case everyone will open their copy of the original scene file, lightmaps and everything will be available. We’ve already implemented it this way on Unreal.)

Any changes that are visible to the inspector will be replicated in real-time to everyone in the session - if you can see it and change it, the change is made for everyone in the session at the same time. Scene Fusion also syncs heirarchy changes.

That’s probably a bit more long-winded then you wanted. Let me know if you need to know any more details!

Update: Scene Fusion for Unity 2022.3 is available. This uses Scene Fusion 2, a newer, high performance core for Scene Fusion and we’ve rebuilt the plugin from the ground up so it can better take advantage of new capabilities in the Unity engine.

It’s currently available via our website (https://www.kinematicsoup.com), and we are currently working on an asset store edition. If anyone is interested in the asset store edition prior to it being approved just send me a message.

1 Like

Another update: Scene Fusion 2 v 2.0.1 has gone live

Features

  • Materials referenced in the scene are now synced.
  • Syncable asset types (Terrain Layers, Lighting Settings, Materials) or scriptable objects that are embedded in a scene now sync.
  • Icons were added in the project browser for synced assets (green checkmarks/locks).

Bug Fixes

  • Fixed a bug where new lighting assets created during a session would not sync.
  • Fixed a scaling bug with icons in the hierarchy window so icons are now crisper.
  • Fixed a bug causing asset conflict notifications for synced assets that should not have conflicts.
  • Fixed an error when a scene is created in a folder you do not have.
  • Fixed a bug where if before joining a session you had a game object with multiple children that were deleted in the session, not all of the children would be deleted when you joined the session.
  • Fixed a bug where a new component would not be created for other users if it’s game object had a property changed on the same frame.
  • Notification icons in the hierarchy for new/removed notifications update immediately and no longer require you to mouse over the hierarchy or change the hierarchy for them to update.
  • Parent/child order changes made by plugins will be synced as long as those plugins register undo operations. Root object order changes will not be detected, and child order changes will not be detected in Unity 2022.1 and below.
  • Terrain data asset no longer locks when selected, which used to cause desyncs if someone edited the terrain data while it was locked.
  • Fixed a bug where editing and saving a non-synced asset that was referenced in the scene would trigger a message the stand-in references were replaced when they were not.
  • Fixed a bug where missing asset references would not be cleared if you left and rejoined the session, then removed all references to the missing asset.
  • Fixed a bug where if you undo the deletion of a Monobehaviour, other users’ edits to that Monobehaviour would not sync to you.
  • The default font material used by the legacy text mesh can be loaded properly now.
  • Fixed a bug where if another user edited terrain textures/holes while you were painting textures/holes, any changes you had made without releasing the mouse would be lost.
  • Fixed a bug where references to synced assets created during a session from prefabs created during a session would be missing objects for other users.

Known Issues

  • Asset deletion/renaming of synced assets does not sync.

Scene Fusion 2 has been released to the Unity Asset Store

These are LAN only editions. We have a free version that does 1 session for 2 people, and a paid version that does 1 session for up to 10 people. It syncs everything that our cloud edition, available from our website, syncs.

The free version is Scene Fusion 2 Lite, located here for 2 CCU
Thje paid version is here

A small update has gone live for SF2. Version 2.0.2

It fixes an issue preventing games from being compiled when the plugin is installed. We also fixed the asset store package so that it correctly supports Unity 2021.3.