I just read a bit about the new distributed authority in netcode for gameobjects 2.0.0. While it looks promising, I had a warning triggered in my head when I read:
This make me think that maybe it’s not possible to use distributed authority without Unity services. This is a good solution for Unity to lock us on their services, please remember they can change conditions (or ban/restrict your account) at anytime at their own discretion.
You cannot. Distributed Authority is (or will be) part of Unity Gaming Services to my understanding.
In essence it sits somewhere in the middle ground between a “dumb” Relay service (simply relays traffic between clients) and Game Server Hosting (run your own server executable in the cloud).
The Netcode for GameObject’s distributed authority network topology and session resiliency capability currently requires the Unity services layer.
We strive to provide tools for game developers to be successful and not every solution will align with every developer’s needs. In the case of distributed authority, there will be a free tier like our other services. This tier will provide sufficient monthly usage limits for daily development and play testing before any billing at player scale.
Like most service providers, any rationale for termination of accounts would be bound by Unity’s Terms of Service agreements. Our goal is to provide useful services and not restrict them. However, when there is a lower risk tolerance in this area, developers can still code a Netcode for GameObjects game using the new HasAuthority checks which work in both distributed authority and client/server modes. Meaning you still have the flexibility to connect your game via client/host listen servers or dedicated game server topologies, using whichever provider you prefer.