Hello everyone! The multiplayer team is here to share our next multiplayer roadmap update!
What are Unity’s multiplayer solutions?
Unity’s multiplayer solutions include our network framework (such as Netcode for Entities and Netcode for GameObjects), the 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.
Unity’s multiplayer journey
Unity’s multiplayer journey has seen significant evolution:
In 2015, Unity Networking (UNET) debuted, offering basic features like client-server architecture, object synchronization, and high-level networking components. However, it fell short of meeting complex multiplayer project needs and was deprecated in November 2018.
In March 2018, the Data-Oriented Technology Stack (DOTS) was announced, introducing a data-oriented and entity-component system (ECS) architecture. This enhanced performance, scalability, and offered a more comprehensive netcode solution.
Responding to demand for simpler multiplayer solutions for casual co-op multiplayer games, Unity acquired the MLAPI framework in December 2020, which would later become the foundation of Netcode for GameObjects. We celebrated the release and success of Netcode for GameObjects 1.0 in June 2022, which offered Unity-supported tools, regular package updates, live support, a growing community, and better support for our Unity Gaming Services features and functionality that were announced just a year prior in October of 2021.
Netcode for Entities 1.0 launched shortly after with Unity 2022 LTS in June 2023 providing a production-ready netcode solution that completed our netcode offerings, enabling support for scalability and competitive action multiplayer genres.
Through the Unity 2022 LTS, we’ve provided you with two extensive Netcode solutions that allow you to create a range of multiplayer experiences from casual co-op to large-scale competitive actions games, an expanded Multiplayer tooling kit with network inspection features like Network Scene Visualization and Network Profiler, a dedicated-server package with workflows for creating server-authoritative projects, our production-ready multiplayer sample BossRoom, and a whole selection of Bitesized samples showcasing key multiplayer experiences. We also released the Unity Transport 2.0 package with the addition of WebGL support that can now be used to enhance cross-platform and web multiplayer experience. The Unity Transport low-level networking library is the foundation used by both Netcode solutions and also allows you to build your own customized Netcode for specific game needs on all Unity Engine supported platforms.
Example of studios who shipped using Unity multiplayer solutions
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, whose early adopter developers have been putting in a lot of effort to work with us to help make our tech what it is today:
-
Stickylock Studios - Histera (March 2023): The battlefield is always changing in this free-to-play tactical multiplayer FPS! The ‘Glitch’ spawns in map sections from the past, present or future, with themed weapons and equipment from those eras.
-
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.
If you’d like to learn more about the experiences of developing multiplayer games from the creators of these titles above, check out our 2023 GDC talk that goes over how to create, launch, and manage multiplayer games with Unity.
Resources to get started
We released our new exciting Megacity Metro sample in March focusing on creating multi-platform multiplayer games with support for mobile devices and cross play. It serves as a guide for creating a competitive action game with more than 100+ concurrent players, demonstrating the use of DOTS, Netcode for Entities, Physics, Rendering, and Unity Gaming Services. You can review our live session at GDC 2024 here or replay our recent webinar to catch a deeper breakdown of the sample and how to kickstart your next ambitious multiplayer title in Unity 2022 LTS.
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 samples, and our website to help you get started:
-
Netcode for Entities, Netcode for GameObjects, ECS Samples, and Bitesize Samples: The netcode documentation and samples for both netcode tech stacks reflect the latest APIs and usage for most multiplayer scenarios. These resources will be especially useful for new users looking to learn about the fundamental concepts of networked gameplay.
-
BossRoom: 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.
-
Building a production ready multiplayer game with Unity [Webinar series]: If you’re looking to build a small-scale cooperative multiplayer game with Unity, join us for this four-part series with our Multiplayer team! We’ll dive into the Boss Room sample to explore building a production-ready multiplayer game with Unity and Netcode for GameObjects.
-
Small-Scale Competitive Multiplayer Template: This is your starting point to create and ship a multiplayer project using Netcode for GameObjects and Unity Gaming Services. The template includes a Bootstrapper tool that helps you test faster using various network modes (Host, Client, Server) and dynamic configurations, in-Editor tutorials, and a barebone event-driven gameplay flow. Find it in the Unity Hub today.
-
Megacity Metro Sample: Megacity Metro showcases how creators can build large-scale, cross-platform multiplayer titles that support more than 100+ concurrent players, demonstrating the use of Netcode for Entities integrated with the Unity Gaming Services solution like Multiplay Hosting, Authentication, Voice Chat and Matchmaker.
Browse our latest Multiplayer Resource Roundup for a full curated list of resources to get familiar with the latest multiplayer demos, samples, and templates.
Multiplayer 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.
For the Unity 6 Preview milestone, several of these capabilities are still in an Experimental state, which means they are not yet supported for production. We intend to rapidly transition them to Pre-release and Release states for a fully supported experience on Unity 6 that integrates your feedback.
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 adding 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
- Experimental Multiplayer Center
To simplify building multiplayer games, we’ve created the Experimental 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 widgets (UGS) available directly within Multiplayer Center, enabling you to experiment with multiplayer features involving backend services in minutes and 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 Widgets are not yet available in Unity 6 Preview. More information will be shared later on its availability.
- 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.
- 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. Experimental 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 Experimental 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.
To facilitate your onboarding with the Distributed Authority experimental feature, we are now providing access to the backend service , with all the information you need to get started with the Experimental Netcode for GameObject 2.0 and the new Experimental Multiplayer Services experimental packages.
4. Experimental 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 from services such as Relay and Lobby 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) 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.”
5. Onboarding content
We’re simplifying the multiplayer learning curve even further with new guided content. On Unity Learn, we’re working on our first Multiplayer Course aimed at teaching you the basics of Netcode for GameObjects and guiding you through your first networked project.
We’ve also made great progress on a series of multiplayer-friendly templates for you to experiment quickly with using new multiplayer features and services in your project. Use these templates to quickstart your competitive action multiplayer game or multiplayer VR game directly from the Unity Hub.
To facilitate your onboarding with Distributed Authority and Dedicated Server, we’re working on several new additions to Bitesize Samples. These will help you learn when and why these features might be needed in your multiplayer game, how it works, and how to implement it in your own projects.
Future Development
1. 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 GameObjects 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.
2. 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 .
See you soon on upcoming multiplayer events!
Coming up on May 15: A free online webinar that reviews the Megacity Metro sample project and demonstrates important features of Netcode for Entities, Multiplayer Play Mode, and more. Register here.
We’re now preparing for new and updated features and resources targeted for Unity 6. We’ll be sharing more details about these projects at Unite 2024 coming up this September 18-20 in Barcelona, keep an eye out for updates!
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 the forums, you can also engage with us over on the Unity Multiplayer Networking Discord.