This week’s Unreal Engine post focuses on a feature that is unusually not a shiny new addition from the release of Unreal Engine 5. It was actually introduced way back at the 2018 edition of SIGGRAPH! The feature in question? Multi-User Editing. Multi-User Editing allows multiple users to collaborate on building Levels and creating Assets in the Unreal Engine Editor. In this post, we’ll take a closer look at the Multi-User Editing system in Unreal Engine, including a basic overview of the system, how content synchronization works, and tools for collaborator interaction.
What Is Multi-User Editing in Unreal Engine?
Multi-User Editing allows for the “[connection] of multiple instances of Unreal Editor together to work collaboratively in a shared editing session, building a single virtual world […] with […] teammates and colleagues in real time.”1
Originally developed with virtual film and TV production in mind, Multi-User Editing allows for dozens of users to work together on the same project, all in real time. Users have access to the typical Editor tool set, allowing real time collaboration on the design, building, and lighting of virtual environments.
How Does Multi-User Editing Work?
The Multi-User Editing functionality uses a client-server model, where a single server hosts any number of sessions. A session is a virtual workspace that users on the same network can connect to and collaborate on the same Project content.2
To work with the Multi-User Editing system, all computers must have:
- The same build of Unreal Engine
- A connection to the same LAN or VPN
- Matching project name
- Start with the exact same content
To keep track of changes and to make sure all users have the same content to start with, it’s recommended to use a version control system like Git for the project files.
Using this helpful diagram from the Unreal Engine Documentation, let’s take a look at how this might work in practice.
At the center of the image is the main Multi-User Editing server node, which is a computer hosting the Multi-User Editing server. The server can host multiple sessions, meaning that separate teams can be working on independent Levels or Assets at the same time. As we’ll take a look at later, the server keeps track of and synchronizes all changes made to the project during the session.
Connected to the center server node are four different clients. At the top of the diagram are two computers running Unreal Editor connected to session A. At the bottom are two additional clients connected to session n utilizing different hardware for editing.
The clients in this example showcase two important points about the session workspace. As expected, clients can work with standard desktop PC setups (keyboard and mouse), but do not all have to be running the same operating system. Windows, Mac and Linux are all supported. Clients can also use additional tools for editing the scene, such as the Editor’s VR editing mode with a VR headset and controllers or the Virtual Camera plugin to control the scene with a mobile device.
With the above features in mind, the Multi-User Editing system can be very flexible depending on needs, and fortunately brings the same useful tools for editing to the table that are available in the Unreal Editor.
Synchronizing Changes Between Clients
We now have an idea of what Multi-User Editing offers and a bit about how the client-server setup functions, but what about changes that are made to the project? With the potential for large teams to be working on a project at the same time, a robust system for keeping track of and synchronizing any changes made to the project to all users is really important.
The server keeps track of all changes that are made by a client, whether that change was made on a Level or a Project Asset. The server will also forward these changes to all connected clients to ensure that everyone has an up-to-date view of the project.
Level or (Some) Asset Changes
Depending on the type of Asset and/or change that has been made, the server will utilize different methods for synchronizing the change. For Levels, all changes are synchronized immediately with all computers in the session. Whether you add, remove, or reposition an Actor, other connected users will see the changes happening in real time.
Other Assets: Materials, Static Meshes, Blueprints, etc.
For other Assets, like Materials, Static Meshes, and Blueprint classes, the changes will not be synchronized to other users until you save your changes. This will update the asset accordingly and immediately reload it for all other users.
When working with the Sequencer, all changes are synchronized in real time. Any track changes or keyframe adjustments are updated immediately for all users. The playback of the Sequencer functions in a similar way. When started, the Sequence will play in sync for all users, but only the user who started playback will be able to stop the Sequence.
With the possibility of generating a huge amount of changes in a short amount of time, Epic have included a way to view a history of all changes made during the current session, as well as individual histories per asset.
Get Our 7 Core TouchDesigner Templates, FREE
We’re making our 7 core project file templates available – for free.
These templates shed light into the most useful and sometimes obtuse features of TouchDesigner.
They’re designed to be immediately applicable for the complete TouchDesigner beginner, while also providing inspiration for the advanced user.
Interacting with Collaborators in Multi-User Editing
Especially when working in such complex virtual environments, it’s helpful to be able to have ways to communicate visually with collaborators. Epic have added a couple of useful tools for just this purpose so you don’t have to get out of your chair to point something out.
First, each user has an avatar that shows their current position and view in the environment. In the image below, you see two desktop users interacting with a scene. Small lasers show the objects currently highlight by each users’ cursor or motion controller.
Each user has the ability to turn the display of their collaborator’s avatar and laser pointer on and off in the Multi-User Browser window. In the same window, they can also choose to teleport to their collaborator’s current location.
Along with this, users also have the ability to lock particular Assets in the scene to prevent further modifications from being made. Only the user who locked the asset can then save new modifications.
Although we’ve looked at a number of topics in this post, there’s a lot more to the Multi-User Editing system! If you’re interested in learning more (and especially seeing more technical information), take a look at the Unreal Engine docs, which has a whole section dedicated to the topic: Multi-User Editing in Unreal Engine. I hope that this post has been a helpful introduction to the Multi-User Editing system in Unreal Engine!