Multiplayer development status and next milestones - September 2024

Hello everyone! The multiplayer team is here to share our next multiplayer roadmap update!

What are Unity’s multiplayer solutions?
Starting with Unity 2022 LTS, Unity’s multiplayer solutions include our network framework (such as Netcode for Entities and Netcode for GameObjects), Transport layer, our multiplayer tooling suite, and Unity Gaming Services — all of which enable the successful creation, launch, and growth of your multiplayer games through a rapidly growing end-to-end platform.

Studios who shipped with Unity multiplayer solutions in Unity 2022 LTS
We’ve seen some amazing multiplayer games come from studios and creators of all sizes, but we want to take the time to uplift some particular games. These early adopters have been putting in a lot of effort to work with us to help make our tech what it is today:

  • Sunblink Entertainment - HEROish (March 2023): Assemble your troops in this strategy/action RPG and equip powerful spells to wage war across three different campaigns - then climb the PvP ranks in fast-paced 1v1 or 2v2 competitive battles!

  • Fika Productions - Ship of Fools (Nov 2022): Join a friend in this seafaring roguelite co-op game where you play the Fools, the only creatures fool enough to brave the sea.

  • Hugecalf Studios - Turbo Golf Racing (August 2022): Experience the fast-paced arcade-style motorsport racing with up to 8 of your friends as you jump, flip, glide, boost, and dash with Turbo-charged cars and be the first to get your ball in the hole.

Multiplayer creation in Unity 6
With Unity 6, we are lowering the complexity of making multiplayer games by offering a seamless, end-to-end solution that not only enables the creation but also the launch and growth of multiplayer games.

  1. Netcode for GameObjects license
    We are changing the license for Netcode for GameObjects version 2.0.0 and future releases to the Unity Companion License (UCL License):

    • com.unity.netcode.gameobjects copyright © 2021-2024 Unity Technologies

    • Licensed under the Unity Companion License for Unity-dependent projects (see https://unity3d.com/legal/licenses/unity_companion_license).

    • Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions.

    The previous versions of the Netcode for GameObjects releases remain under the MIT license.

    We’ve updated the Netcode for GameObjects license to allow the addition of new features that couldn’t be rolled out under the previous license. You will still be able to access and modify Netcode for GameObjects source code under the Unity Companion License with a valid Unity Editor license.

  2. Build, launch, and scale playtests
    Multiplayer Center
    To simplify building multiplayer games, we’ve created the Multiplayer Center package (com.unity.multiplayer.center) available in the package registry. Multiplayer Center is a streamlined guidance tool designed to onboard you into the realm of multiplayer development. This central location in the Editor gives you access to the tools and services Unity offers for your project’s specific needs to introduce multiplayer concepts into your project.

    The Multiplayer Center presents interactive guidance based on your project’s multiplayer specifications, access to resources and educational materials, and shortcuts to deploy features and experiment rapidly with multiplayer capabilities.

    Multiplayer widgets
    Experimenting with multiplayer services can be a long process. We’re working to integrate pre-made Unity Gaming Services (UGS) widgets available directly within the Multiplayer Center. These widgets will enable you to experiment with multiplayer features involving backend services in minutes, save integration time, and start iterating on your gameplay immediately.

    This includes services like Multiplay, Relay, Lobby, and Vivox – and adds the capability for you to swiftly gauge the compatibility and suitability of a UGS service for your specific game requirements. For example, the integration of the Relay service into Editor allows you to easily create a session and connect your playtesters earlier, speeding up your quality iteration loop.

    Multiplayer Play Mode
    Once you have working gameplay, the next step is to try it out and get a feel of the multiplayer experience. We’re working on the Multiplayer Play Mode package that allows you to validate your multiplayer implementation and improve your gameplay quality early across runtime processes, reducing the setup time to test multiplayer games and allowing you to keep a quick iteration loop during the development process.

    Multiplayer Play Mode enables you to test multiplayer functionality across separate processes without leaving the Unity Editor. You can simulate up to four players (the main Editor player plus three virtual players) simultaneously on the same development device while using the same source assets on disk. You can use Multiplayer Play Mode to create multiplayer development workflows that reduce the time it takes to build a project, run locally, and test the server-client relationship.

    We are also introducing Play Mode scenarios to further accelerate the multiplayer development process. This feature enables creators to achieve a first-playable experience with live players by integrating their test cycles into real-world environments, scenarios, and tools before the official launch… The Playmode Scenarios currently supports desktop and dedicated server environments.

    Dedicated Server package
    To facilitate the deployment of a dedicated server, we’re working on the Dedicated Server package to consolidate the dedicated game server workflow in the editor with a solution that enables the deployment of server builds both locally and to hosting solutions to accelerate the multiplayer development process.

    It will allow you to switch a project between the server and client role without the need to create another project. To do this, you’ll be able to use Multiplayer roles to distribute GameObjects and components across the client and server.

    Multiplayer roles allows you to decide which multiplayer role (Client, Server) to use in each build target. This breaks down into:

    • Content Selection: Provides UI and API for selecting which content (GameObjects, Components) should be present/removed in the different multiplayer roles
    • Automatic Selection: Provides UI and API for selecting which component types should be automatically removed in the different multiplayer roles
    • Safety Checks: Activates warnings that help detect potential null reference exceptions caused by stripping objects for a multiplayer role
  3. Distributed Authority
    We’ve added the support of the distributed authority mode in Netcode for GameObjects 2.0 (com.unity.netcode.gameobjects) when paired with the new Multiplayer Services package (com.unity.services.multiplayer). With distributed authority, clients have distributed ownership of/authority over spawned NetcodeObjects during a game session. The netcode simulation workload is distributed across clients, while the network state is coordinated through a high-performance cloud backend Unity provides.

    Additionally, host migration is automatically supported with distributed authority, enabling the transfer of the authority between clients if one fails or disconnects, thus maintaining continuity and stability of the game

  4. Multiplayer Services package
    Building a multiplayer game requires integrating several products and services together. With the new Multiplayer Services package (com.unity.services.multiplayer), we’re simplifying integration and dependencies management across multiplayer services while offering a new way to interact with the products.

    The Multiplayer Services package is a one-stop solution for adding online multiplayer elements to a game. Powered by Unity Gaming Services (UGS), it combines capabilities of Lobby, Relay, Matchmaker and Multiplay Hosting into a single new Sessions system to help you quickly define how groups of players connect together.

    The Multiplayer Services package enables you to create peer-to-peer (P2P), Dedicated Game Server, and Distributed Authority hosted online sessions while providing multiple methods for players to join those sessions, such as by a Join Code, by browsing a list of active sessions, and “Quick Join”.

Future Development

  • Netcode unification
    For Netcode, we’ll be focusing on simplifying the tech stack to offer one Netcode solution delivering all the features you need regardless of your gameplay style and project requirements. We are integrating GameObject workflows with the performance and scalability of ECS Netcode infrastructure to support multiple types of games, spanning from casual co-op to large-scale competitive games.

    The unified Netcode users will benefit from the performance and scalability of Netcode for Entities with capabilities such as prediction, interpolation, and lag compensation. At the same time, you’ll enjoy the convenient workflows and ease of use inspired by the Netcode for GameObjects solution.

  • Host migration
    We’re adding host migration support in Netcode for Entities, integrated with the Lobby multiplayer service, to enhance session persistence. This feature ensures that gameplay continues even if the current host is lost by allowing another client to take over as the new host, thus keeping the multiplayer game ongoing.

  • Multiplayer Play Mode for Android Devices
    We are also working to expand our Multiplayer Play Mode support to mobile platforms, enabling you to validate and test your gameplay directly within the Unity Editor using real-world conditions. You’ll now be able to create scenarios with local Mobile devices running along the existing support platforms. We’ll bring this first to Android and Android XR platforms.

  • Enhanced development workflows
    In Unity 6 we introduced multiplayer widgets, a set of UI presets you can add to your projects in seconds so you can go to Multiplayer Play Mode, or to your player build and leverage multiplayer features immediately. We plan to deliver more of those and Matchmaking is our next target.

  • Session management
    Our Multiplayer Services package today provides the fundamentals for managing a multiplayer game session state, such as creation, joining, sharing session data, and controlling membership. To improve your developer experience, we will expose session management through components and scriptable objects in the editor.

    And for deeper flexibility, control, and tailoring of the session behavior for your game, we’re exposing new interfaces allowing you to inject custom code to the session state lifecycle. Vivox will also be compatible in the same session concept, and its audiosource integration polished.

  • Vivox makes safe comms easy
    We remain dedicated to supporting you with your in-game communication and moderation, through the power of AI.

    With Positive Play, we intend to help you identify and reward players who are actively making your game community better so they can have an even greater impact. But when it comes to taking action, we are developing new solutions to automate reporting, and moderation actions, directly from your player activity.

  • Entities and other DOTS updates
    You can see the full details of what we’ve been up to on the Entities side – and what’s next for our DOTS roadmap – in our September 2024 DOTS Update.

Resources to get started
This summer we brought you all-new learning materials, webinars, product news, and live Twitch streams. With the Multiplayer Summer Series, you can boost playtesting and streamline your workflow from setup to deployment in one-hour learning sessions. Watch this on-demand webinar for an overview of Unity 6’s Multiplayer Center, Multiplayer Play Mode, Distributed Authority, and other tools that can help you speed up iteration time. Watch this following on-demand webinar to learn how to design, build, deploy, test, and operate a retention layer so you can drive success for your live multiplayer game.

When it comes to learning how Unity’s multiplayer offerings work together, we know few things beat having an actual reference project to dig through. So we’ve built and documented many of the common networked gameplay scenarios across our samples website to help you get started:

  1. Netcode for Entities, Netcode for GameObjects, ECS Samples, and Bitesize Samples: The netcode documentation and samples reflect the latest APIs and usage for most multiplayer scenarios. Use the Multiplayer Use Cases Bitesize Sample to understand how to perform common actions in a multiplayer environment. To help you onboard to the Distributed Authority network and understand how to use Netcode for GameObjects, download the all-new Asteroids Bitesize Sample.

  2. Get started with Netcode for GameObjects, and Getting started with Netcode for Entities: Access this new Netcode for Game Objects tutorial to acquire a fundamental understanding of Netcode for GameObjects and know how to employ it when creating a casual co-op multiplayer game. Watch the Netcode for Entities on-demand webinar to learn how to enable entities into your project along with Unity Gaming Services.

  3. Net Check – Converting a game to multiplayer: The team behind Scope Check – Learn to make a game by making games reunited to try and convert their unnamed food fight game to an online multiplayer experience. Watch this five-part series to understand various network archetypes, create client and server authoritative interactions, use Netcode for GameObjects, and integrate Unity Multiplayer Solutions.

  4. Small-Scale Competitive Multiplayer Template, and VR Multiplayer Template: These are your starting points to create and ship a multiplayer project using Netcode for GameObjects and Unity Gaming Services. Find our multiplayer templates in the Unity Hub and quickstart your multiplayer development with dynamic configurations, in-Editor tutorials, and foundational event-driven gameplay flow.

  5. Boss Room: Unity’s longest-running production-ready multiplayer sample built with the GameObjects Netcode workflows, this sample is a 3D casual co-op game with production-level code and integrated with our Lobby and Relay hosting services.

  6. Megacity Metro Sample: Experience this competitive, 100+ player cross-platform demo to learn multiplayer mechanics, implement gaming services, and experiment with all-new Unity 6 features. Megacity Metro helps you master large-scale desktop streaming, implement server-authoritative gameplay, and leverage multiplayer and communication services.

We’re simplifying the multiplayer learning curve even further with new content based on Netcode for Entities. We’re working on our first Unity Learn tutorial to teach you how to start building an entities-based multiplayer game. In addition, our next multiplayer-friendly Hub template will bring you the simplest starting point for creating and shipping a competitive action multiplayer game.

To facilitate your onboarding with Distributed Authority, we’re working on a new sample that’ll help you learn when and why this network model is needed in your multiplayer game, how it works, and how to implement it in your own project.

Thank you for your continued feedback
We’re extremely grateful for the feedback you all have shared both online and at events like GDC 2024 and we are constantly reviewing your inputs for consideration toward our multiplayer roadmap. Please keep it coming, post your questions / thoughts in this thread, and know that we are carefully reviewing your input for consideration towards our public roadmap page. In addition to this Multiplayer section on Unity Discussions, you can also engage with us over on the Unity Multiplayer Networking Discord.

9 Likes

If I’m not mistaken, the netcode solutions unification was mentioned more than a year ago as a goal for future development too.

Netcode for GameObjects still doesn’t have client-side prediction and it’s hard to imagine any character-oriented gameplay without it. It’s great, stable and I love it, but missing prediction is a deal breaker. It looks like a brand new shiny Mercedes… but without steering assist :smiley:

I see that you invested into “Anticipated” which seems to be a barebone framework for a prediction system. But you can’t develop it further into a complete prediction solution because of engine limitations.

So the unification is the only way for us to have GameObjects predicted (maybe even with determined physics?).

Considering all that, could you please shed some light on how the unification process going? It’s been a while…

6 Likes

Can someone explain what does this change means (for average developer who might use unity multiplayer in a game or non-game application) ?