Unity headless dedicated server (UHDS)

Let’s say we have simple 1 vs 1 match and Nakama server requested from orchestration app to create UHDS for these two players.

  1. From investigating Nakama’s manual and careful reading this topic I wonder what should be UHDS from Nakama perspective?
  2. Will UHDS be 3rd “invisible” player but interpreted as special client for Nakama server?
  3. Is there ready pattern/class with Nakama Unity SDK which can be used?

Hi, @skullptr! And welcome to Heroic Labs Forum!

@juryxiong has written a very interesting blog post describing a similar use case to yours: Documentation for headless instance orchestration layer - #13 by juryxiong

It describes a use case using Godot Engine but the concepts there might help you achieve a more optimal solution to your requirements.

In the meantime, and as mentioned in that post, Heroic’s team is always improving the documentation and that use case (headless + Nakama) is on the backlog :wink:


this will be definitely a good start, thank you!

going further with UHDS (: I’ve drawn how I see the architecture:

  1. If I’m not mistaken communication between Nakama clients (NC) is not possible (I crossed them with red) and I should use Unity Netcode for communication Use com.unity.transport package and follow manual
  2. UHDS will be the 1st player or NC who will join the match (with 3 players). How I should authorize this “special” player? Same as normal user
  3. Is it possible to set zero UserId for NC? No, but you can create UDID and check for UserID which belongs to this UDID in Nakama runtime
  4. And another finding is Authoritative in IMatch. In which cases it used? Is there any docs about class members? Read about match_create here