Real-time, multi-user level building

Hi all,

I’m with a company that has created a tool called Scene Fusion (www.kinematicsoup.com/scene-fusion).

It allows you and your team to edit a single map instance in real-time, no matter where your team is in the world. No configuration and no server management is required.

Here is a video if it in action. It is 8 people working on a single level for 1 hour in Unity.

Thanks for your help! If you have any questions, feel free to ask!

Update (June 2020) - Scene Fusion free version is now live!

Scene Fusion is now available via our website in a self-serve format. Keep your eyes on the marketplace. We were busy these past few months making Unreal support an integral part of Scene Fusion. Now, all you need to do is set up your account with us and you can use Scene Fusion with the cloud replication service for Unreal or Unity, or even embed our C++ and C# libraries into your own tools. The Scene Fusion free tier also support Unreal, so you can get a project started and try it out.

It’s easy to get, just check out our website here: Pricing — KinematicSoup Technologies Inc.. All you need to do is download the plugin, create your account, and invite your teammates.

A thousand times yes!

We use Unreal to make VR simulations for healthcare architecture. Having the ability for multiple users to manipulate and create the environment collaboratively would be an invaluable resource. I would love to use this for personal projects as well for content creation!

How would you envision your workflow being structured when Scene Fusion is a part of it?

Sounds great. As for workflow, I would prefer it to be as transparent as possible. Ideally, after starting a session you just use the level editor as normal, with other users contributions happening in real time. I assume individual actors would have to be locked while another user manipulates them, and that makes it important to make it clear who is using an actor, both in the 3D view and the scene hierarchy.

This could potentially be a game changer.
Depending on how well it is implemented it’d be worth picking up just to experience.
I imagine you’d have to make it so that any actor that is being manipulated at any given time would be locked.

Scene Fusion has been available in beta for Unity users for quite some time, and yes, you have described exactly how it works: Selected actors/objects are locked. Tags, layers, loaded scenes, and everything is supported.

Here is an explainer video:

Some specific behavior is implemented in the case of parenting. Terrain editing is somewhat of an exception: Multiple users are allowed to edit terrain simultaneously.

Do any of you have specific preferences as to what you would like to see it do?

What do you think would be the bare minimum of features you would want to see before you would actively use it?

It is very solid. That said, it’s in late-stage beta. We are still finishing some issues around slow sync times going in and out of play mode - a very Unity-specific problem. At this point the issues are well-known and not serious.

We don’t have a particular limit to the number of users in a single level/scene. We’ve tested with up to 50. We haven’t encountered us causing stability issues in Unity for our feature set there, which is very extensive.

Love it, video demonstrates the concept well.

I think it would be useful with just a very basic feature feature set, as long as it is performant and stable.

Is there a list of the features of the current Unity version?

The current features for Unity are:

  • Replication of:
    • Hierarchy replication including parenting, naming (not order)
    • Adding, removing, changing transforms on gameObjects
    • Changing gameObject properties
    • Adding, removing, changing the properties on gameObject components
    • Changing scene properties
    • Terrain edits, sculpting, painting, details
    • Lock-on-select, where the object locked is highlighted and only editable by one person at a time
    • Loading, unloading scenes
    • Tags and layers
    • Lighting
    • Properties comprised of large arrays of data

Basically, we replicate everything except for things we don’t have access to (Unity’s internal ID system, Unity’s prefab defaults flags), neither of which are critical.

Support for assets that are not yet present in the scene (we show a ?, until you receive the asset, then we put it in)

  • Cloud backend, so no configuration, no maintenance required, and anyone can work together from anywhere out of the box
  • “Post-it” notes that allow you to put message on objects
  • Camera indicators showing where your teammates are

Upcoming features include:

  • In-editor real-time chat with camera sharing (complete internally)
  • Ability to follow a team members camera (complete internally)
  • Optional team editing while users are in play mode (ie. I’m playing, I can still see edits that others are doing, and they persist. Should help to make level optimization faster) (almost complete internally)
  • Activity tracking (in progress)

There are more features planned on the Unity side. We want to bring as many as possible to Unreal.

Great set of features. Solid replication of Actors (GameObject equivalent) and level settings is the killer feature, other collaboration features just the icing on the cake.

This reminds me of this thread:

When you say level settings, do you mean level blueprints as well?

Yes, I had a couple of messages with Yannick some time ago. He discovered we were doing it for Unity as he start his Unreal project. I’m not sure where he’s at with it these days…

I personally don’t use the level blueprint much, but it needs to be handled in some way. But as long as that way is predictable and stable I do not think it would matter much if the level blueprint or some other particular part of level building is a bit clunky to use collaboratively. If you for example would not support more than one user editing a landscape at a time, it would still be very useful for many games.

As for the level blueprint, a message “XXX is currently editing the level blueprint” when trying to open it would be nice.

Yes locking blueprints, or parts of blueprints, is something we are discussing.

BTW, if you know of any other people or studios who are wanting this feature, please encourage them to come join this discussion or otherwise contact me. Scene Fusion is a high effort project so I’m hoping that have a good interest in it on the Unreal side - in particular, people who want early access to the beta.

I would really love this for Unreal. It would be literally epic! :smiley:

Will there be a way for custom editors to “hook in” and replicate their contents without scene fusion knowing about the details?

Scene Fusion is engine independent. We have an API that allow people to write plugins that use Scene Fusion capabilities. The current API is in C#. Part of the Unreal port will be to replicate the API in C++. One can write a third party application that uses the C# API today. The same will be true for the C++ API.

I’m not sure if that answers your question though :(.

As someone who freelances for many Unreal focused companies, the question of collaborative level editing always comes up. The solution is always use sublevels and perforce, however it’d definitely be interesting if this was an option.

Ok, got to admit that I really want this.
People have been wanting something like this since UDK times. I think you got a winner on your hands :slight_smile:

I will admit that I have been following you guys for a while now and I have signed up for an account awhile back.

I need to ask though -

Do you plan on supporting world composition within Scene Fusion?