Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Official Multiplayer development status and next milestones - November 2023

Discussion in 'Multiplayer' started by LucieGelinas, Nov 14, 2023.

  1. LucieGelinas

    LucieGelinas

    Unity Technologies

    Joined:
    Oct 4, 2022
    Posts:
    2
    Hi everyone! Here is our multiplayer roadmap update to talk to you about our plans.

    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 launch and growth of your multiplayer games through a rapidly growing end-to-end platform.

    Unity’s multiplayer journey
    We’ve come a long way since Unity first embarked on a multiplayer networking solution and we would like to take a moment to celebrate and acknowledge this journey with you:

    In 2015, Unity Networking (UNET) was released, offering features such as a client-server architecture, object synchronization, and high-level networking components. However, over the course of its use in production scenarios, we quickly realized that UNET didn’t meet many of the intricate needs of multiplayer projects. This led us to deprecate UNET 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.

    While we worked hard to deliver a new tech stack for larger scale solutions, we heard your demands for a familiar and simpler solution for casual co-op multiplayer games. This led us in December of 2020 to acquire the MLAPI framework, which would later become the foundation for Netcode for GameObjects.

    We celebrated the release and success of Netcode for GameObjects 1.0 in June of 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.

    In December of 2022, the ECS for Unity 2022 Tech Stream became available, marking a significant milestone as it provided a production-ready netcode solution that completed our netcode offerings, enabling support for scalability and competitive action multiplayer genres. We also updated our Netcode for GameObjects samples at this time to demonstrate how to connect to our Relay and Multiplayer (dedicated game server) hosting solutions.

    Through the 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 Megacity Multiplayer sample this past July, an innovative ECS/DOTS-based multiplayer sample as a guide for creating a competitive action game.

    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, who’s early adopter developers have been putting in a lot of effort to work with us in helping 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
    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:

    That’s why we released the Megacity Multiplayer sample this past July, an innovative ECS/DOTS-based multiplayer sample. It served as a guide for creating a competitive action game with more than 64+ concurrent players, demonstrating the use of Netcode for Entities integrated with Unity Gaming Services solutions like Game Server Hosting, Authentication, Voice Chat, and Matchmaker.
    1. 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.

    2. 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.

    3. Galactic Kittens: A 2D co-op space adventure sample built with Netcode for GameObjects and designed to help you learn how to synchronize network objects.

    4. ECS Network Racing: If you’re looking for a smaller scale multiplayer sample with ECS for Unity, ECS Network Racing showcases the capabilities of Netcode for Entities and how you can easily build a multiplayer game out of the box. Specifically, the sample exemplifies an implementation of client/server architecture with client-side prediction, interpolation and lag compensation.

    5. 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.

    6. Megacity Multiplayer Sample: Megacity Multiplayer showcases how creators can build ambitious multiplayer titles that support more than 64+ concurrent players, demonstrating the use of Netcode for entities integrated with the Unity Gaming Services solution like Game Server Hosting, Authentication, Voice Chat and Matchmaker.
    We’re now preparing for our next step in the Megacity journey with an exciting new sample focused on creating multi-platform multiplayer games with support for mobile devices and crossplay. We’ll be sharing more details about this project at Unite 2023, keep an eye out for updates!

    We’ve also made great progress on a series of multiplayer friendly templates for you to experiment quickly with new multiplayer features and services in your project.

    Roadmap
    We’ve received extensive community input that has helped us understand what we need to do next to help you bring your multiplayer ambitions to reality. The feedback falls under four predominant themes:

    Netcode Unification
    For Netcode, we’ll be focusing on simplifying the tech stack to offer a Netcode solution delivering all the features you need regardless of your gameplay style and project requirements. We will integrate the GameObjects workflows with the performance and scalability of the 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, while enjoying the convenient workflows and ease of use offered by the Netcode for GameObjects solution.

    Build, Launch, and Scale Playtests
    Building multiplayer games can be complicated, so we’re creating a central location in the Editor where you will have access to the right tools and services for your specific needs to introduce multiplayer concepts into your project. Through this interactive section, you will be offered tailored guidance based on your use case on the recommended tools, services or educational material relevant to your project. You will be able to deploy them in seconds to your project and experiment quickly with new multiplayer features and services.

    Once you have a working gameplay, the next step is to try it out to get a feel of the multiplayer experience. We’re working on a Multiplayer Playmode to improve the gameplay quality early across runtime processes, by reducing the setup time to test multiplayer games and keep a quick iteration loop during the development process. It enables multiple Editor instances to be opened simultaneously on the same device to provide a more efficient and quick development cycle of multiplayer games, and local and remote deployment to Game Server Hosting allowing developers to test a multiplayer game close to the real production condition.

    Testing and validation of the multiplayer services can be a long process. We’re working to integrate the Unity Game Services directly in the Editor for you to save integration time and start to experiment with your game immediately - this includes services like Relay, Lobby and Vivox. For example, the Integration of the Relay service in the Editor allows you to easily create a session and connect your playtesters early on to speed up your quality iteration loop.

    Deployment of a dedicated server can be a challenge. We’re working 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 allows the creation of both the clients and server from a single project to significantly reduce the development and iteration time, and to mix and match automatic creation of the multiple clients and associated server configurations to run deployment scenarios faster.

    Further Integrations
    To keep you successful in building multiplayer games, the integration of multiplayer solutions continues to be a key focus and our teams are working on features that will open up new possibilities for multiplayer development.

    To enhance cross-platform and web multiplayer experience, we’re integrating the Unity Transport package low-level networking foundation compatible with WebGL to allow you to build your own customized Netcode for specific game needs on all platforms.

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

    Distributed Authority
    We’re also working on a new Distributed Authority mode in Netcode for GameObjects where clients have distributed ownership of/authority over spawned Network objects during a game session. With distributed authority, we enable developers to distribute simulation workload across clients, which provides a scalable cloud backend coordinated by a highly optimized cloud state service that maintains the overall state of a network session between clients.

    See you soon at Unite 2023!
    Multiplayer will be a big theme at our Unite 2023 conference coming up this November 15-16 in Amsterdam. You’ll be able to hear relevant updates across two key sessions:
    There will also be two multiplayer deep dive presentations:
    Let us know if we’ll see you at the event, connecting with devs and creators like you is always our favorite part of Unite! For those not able to join us in person, the Keynote will be available to stream on our YouTube and Twitch channels. You'll also be able to send in questions during Unite's virtual Ask The Experts event taking place on Unity Discussions and Discord.

    Thank you for your continued feedback
    We’re extremely grateful for the feedback you all have shared these past few months. 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.

    Lucie
     
    Last edited: Nov 14, 2023
  2. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    286
    We are moving away from NGO and related services due to payment issue. We cannot make any payment from Indian Credit or Debit cards for services. The payment team is least bothered about it and repeated queries related to it gone unattended.
     
  3. lmnl

    lmnl

    Joined:
    Apr 13, 2020
    Posts:
    2
    Are there any plans to support Client Side Prediction (CSP) in Netcode for GameObject?

    Server Authoritative FPS are unplayable without it and implementing CSP is not trivial. Because of it many rely on Photon Fusion, FishNet, etc.
     
    mishakozlov74 and KevinCastejon like this.
  4. KevinCastejon

    KevinCastejon

    Joined:
    Aug 10, 2021
    Posts:
    70
    any date?
     
  5. KevinCastejon

    KevinCastejon

    Joined:
    Aug 10, 2021
    Posts:
    70
    On the post they say they will unify Netcode for Gameobjects and Netcode For Entities and give access to prediction and lag compensation for any project architecture, so I guess we'll get it, question is : when ?
     
  6. lmnl

    lmnl

    Joined:
    Apr 13, 2020
    Posts:
    2
    Ah I missed that, thanks for pointing that out.
     
    KevinCastejon likes this.
  7. snotbubblelou

    snotbubblelou

    Joined:
    Jan 17, 2013
    Posts:
    16
    Very cool, thank you for combining all of this into one thread!
     
    Walter_Hulsebos likes this.
  8. mishakozlov74

    mishakozlov74

    Joined:
    Aug 8, 2018
    Posts:
    139
    This is their priority for the first half of the next year.
     
    KevinCastejon likes this.
  9. nico_st_29

    nico_st_29

    Joined:
    Mar 14, 2020
    Posts:
    69
    Is Unity Netcode Unification something we could expect for e.g. 2024 LTS?
     
  10. Giantbean

    Giantbean

    Joined:
    Dec 13, 2012
    Posts:
    144
    Can you clarify something about Distributed Authority; with this could something like Tug-of-war be posible over a network? Or could a network recreate the way local multiplayer games have collabritive actions such as picking up heavey objects together in "Moving Out" Or lifting items together in "It Takes two"? Or am I misunderstanding the point of Distributed Authority?
     
    mishakozlov74 likes this.
  11. mishakozlov74

    mishakozlov74

    Joined:
    Aug 8, 2018
    Posts:
    139
    No, it means that instead of the host player simulating everything, every client will simulate part of the world.
     
    Giantbean likes this.
  12. miniwolf_unity

    miniwolf_unity

    Unity Technologies

    Joined:
    Apr 10, 2018
    Posts:
    136
    This is currently implemented in Netcode for Entities.
     
  13. Giantbean

    Giantbean

    Joined:
    Dec 13, 2012
    Posts:
    144
    Wouldnt that just open up the application to more potential hacks?
     
  14. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    10,075
    It's a workload distribution feature, not a security feature, if you're worried about "hacking", use server authority and dedicated servers, there is no other way.
     
    KevinCastejon and Giantbean like this.
  15. Lukeesta

    Lukeesta

    Joined:
    Jan 7, 2016
    Posts:
    68
    Deterministic Rollback is a pathway to many abilities some consider to be unnatural.
     
  16. Quackster101

    Quackster101

    Joined:
    Nov 29, 2023
    Posts:
    4
    not fully sure, but I guess one way to think about it is who holds the "truth". sometimes its better to have it in a "vault" like a server? if players controlled the truth, hacking or changing things could be possible? So most things done locally can have its risks than to have a third neutral or contained party that controls this truth. Not sure how much relays help in this compared to a dedicated server. Else host the match yourself as the "server", but then what about switching host in such a dynamic setting, if MP is hosted by random players, if not everyone stored some of the truth and now set it as new one? or something like that and if that is more or less an snapshot?

    But as with a certain similarity to crypto, one can maybe try to force or lock some ground truth to all players and when (combined/solved/understands) it might get to the "real truth" to be accepted, some would just be too costly or one could find a way to do so, in some areas of a game?
    • Never done it before so I'm just saying whatever.
    as for syncing and predictions, is it not possible create some AI tool/handler. then starts to become a AI encrypted and generated handshake based on ground truth world/transform data between clients. just kidding, AI is just spooky and quirky.

    deterministic, roll back to the future 2 :)

    also cool if "Distributed Authority" can be used dynamically in big open world projects or with "other authorities" like a server?
     
  17. Iron-Warrior

    Iron-Warrior

    Joined:
    Nov 3, 2009
    Posts:
    837
    Neat!

    How is this planned to be implemented? Is the idea that Netcode for Game Objects will support it as a second backend or something (that seems potentially fraught with peril), or will there be an entirely new GO API for it? Also, will this be part of a bigger push to unify more of the "ECS" frameworks (that aren't really tied to ECS) like Unity Physics?