Multiplayer Services package 0.5.0 - Experimental release

Hello,

Our team has just released a brand new experimental Multiplayer Services package 0.5.0 for Unity that simplifies the development of you multiplayer games.
Here is a summary of what this new package offers:

Highlights:

  • Concept of Sessions.
  • Integrated support for Netcode for Game Objects.
  • Distributed Authority support
  • Matchmaking in P2P Session with Unity Relay.
  • Automatic backfilling management for game server hosted sessions.
  • Config as Code for Matchmaker.

Details:

  • Concept of session. Sessions represent a group of players who are playing together. They simplifie how developers can exchange data between the players and the host of the session by leveraging the concept of Session Properties and Player Properties. Properties are automatically synced on the clients when modified. Sessions are leveraging the Lobby service in order to provide those functionalities.

  • Configuration of Netcode for Game Object. When creating a session, it is possible to define the connection that session is using (Direct Connection with a given IP adresse, or Relay). Once this is defined, when joining the session, there are no other required steps for the client to connect. All the information required to establish the connection are present on the session. The package will take care of initializing the Netcode connection (Netcode For Entities support is coming soon).

  • Distributed Authority. The package includes support of sessions using the new Distributed Authority network topology developed for Unity and Netcode for Game Object.

  • Join a session. Using a join code specified at the creation of a Session, it is easy to join a specific session.

  • Browse sessions. Browse all the sessions that are in progress and join one of them. Sessions that are defined as Public can be browsed and directly joined.

  • Find a session. It is possible to quick join a session using the Lobby service capabilities. By providing optional filters and minimum number of slots available, it is possible to find the most suitable session for a player to join.

  • Matchmaking into a session. The package handles the management of the Matchmaker service ticket on the client. It is only required to a least create a matchmaking queue and pool on the dashboard (or though Config As Code). The package will then take care to provide the QoS information and will find the best session and directly connect to it.

  • Backfilling management. When using sessions with the Matchmaker service and Game Server Hosting (Multiplay), the package will automatically handle backfilling the session if it is enabled/required. When player leaves the sessions, the package will automatically request new players to join using the matchmaker service. (the session must have been created by the matchmaker originally)

  • Config As Code for Game Server Hosting (Multiplay). Using the deployment window, it is possible to deploy your server build on Game Server Hosting directly from the Unity Editor.

  • Config As Code for Matchmaker. The package includes support for Matchmaker and Config as Code. It will be possible de deploy Matchmaker configuration directly from the Unity Editor without using the Unity Dashboard.

This is an experimental version, the official release is planned to go out at the same time as Unity 6.
We are looking for feedback from everyone who is interested in providing some.