-
Notifications
You must be signed in to change notification settings - Fork 459
Description
Description
When using Multiplayer Services v1.1.8 and Netcode for GameObjects 2.5.0 with Distributed Authority topology, clients sometimes experience very high latency (300ms+) on certain server(s), while other times the RTT is normal (~40ms).
The issue occurs both when playing with friends over the internet and when testing locally with Multiplayer Play Mode.
This currently happens on "europe-west4"
I understand that sometimes servers can be overloaded, but my main problem is that the method
QosService.Instance.GetSortedRelayQosResultsAsync()
puts europe-west4 as the best region with ~27ms latency, even though when I create the lobby:
SessionOptions options = new SessionOptions {...}.WithDistributedAuthorityNetwork("europe-west4");
I have a RTT of 300ms in most cases.
I only see that the lobby is super laggy after creating it.
I can't expect players to open and close lobbies until they found a good server. I need to know that beforehand, so that I can select the best server to connect to before creating the lobby.
Reproduce Steps
A bit hard to reproduce consistently as I don't know when the servers work correctly and when they don't. But at the time of posting, try connecting to "europe-west4" with Distributed Authority topology a few times.
Actual Outcome
The method
QosService.Instance.GetSortedRelayQosResultsAsync()
returning a sorted list of lowest latency servers that is in theory correct, but when connecting to a server, they sometimes have a very high latency (300ms+), which I don't see in advance
Expected Outcome
I expect to have a method in Distributed Authority topology that tells me in advance if a server has issues, so that I can connect to another one.
Screenshots
Screenshot of Runtime Network Stats Monitor of when the issue occured in an ongoing game.
Environment
- OS: Windows 11 Pro
- Unity Version: 6000.2.3f1 (same issue with 6000.1.15f1)
- Netcode Version: Netcode for GameObjects 2.5.0
- Netcode Topology: Distributed Authority
Additional Context
I also didn't find a way to change the server after creating the lobby. If that's possible somehow, I could use this approach instead.