#High ping issue

1 messages · Page 1 of 1 (latest)

violet oxide
#

Hello there!
I'm using multiplayer services v1.1.8 with Distributed Authority topology.

My issue is that sometimes, my connected clients have a really high ping (300ms+), and sometimes it works perfectly fine (50ms). This not only happens when I play with friends, but also when I connect locally with Multiplayer Play Mode.

I checked the region it selected, which seems fine (always takes the correct region).

Honestly, I have no idea why some lobbies are so laggy, but it's definitely not acceptable for my FPS.

Grateful for any advise!

tiny scroll
#

When it happens, do all player see the high ping? Have you tried calling GetCurrentRTT() to all the other clients from each player?

violet oxide
#

Yes it happens for all connected clients

you mean like that?

NetworkManager nm = NetworkManager.Singleton;
UnityTransport transport = nm.NetworkConfig.NetworkTransport as UnityTransport;

float latencyToClient1 = transport.GetCurrentRtt(1);

just get 0f on all clients...

tiny scroll
#

Yea, loop though all the connected clients and get their RTT. I'm not sure if one client getting high ping will effect all the other clients.

violet oxide
#

hmm this always give me 0

----------
Latency from me (client 2) to client 1: 0
Latency from me (client 2) to client 2: 0
Latency from me (client 2) to client 3: 0
NetworkManager nm = NetworkManager.Singleton;
UnityTransport transport = nm.NetworkConfig.NetworkTransport as UnityTransport;

Debug.Log("----------");
foreach (var clientId in Database.S.clientsManager.GetAllClientIds()) {
  float latencyToClient = transport.GetCurrentRtt(clientId);
  Debug.Log($"Latency from me (client {NetworkManager.LocalClientId}) to client {clientId}: {latencyToClient}");
}
tiny scroll
#

Dang. maybe DA works differently since there are not hosts/servers

violet oxide
#

probably... The way i did it was by sending an RPC to the session owner and checking the resonse time, which results in 600ms in the bad cases

#

also, the game feels super laggy, so definitely not just a display error

tiny scroll
#

Have you tried the Multiplayer Tools Runtime Network Monitor? That will also give you a breakdown of what all is getting sent and received. But it sounds like it may be on the service side if its random

violet oxide
#

no haven't done that, i'll check it out. also, this only happens since the last month, before that it worked fine

tiny scroll
#

I would also open a Support ticket from the Cloud Dashboard regarding this. Maybe the team can trak down what's happening on the backend

violet oxide
#

sounds good, thanks

violet oxide
#

ok I created the ticket and also checked out Runtime Network Manager

when i create the lobby, I immediately see the RTT, and in 80% of the cases it's 300ms and in 20% 45ms. So technically I could create lobbies until I "found" a lobby with good latency (strange, since I always use the same region).

I need to get my demo to work before Steam next fest, optimally this month. Relying on them to fix the issue from my ticket is very risky. What would you do now?

#

Just telling the players to "go create another lobby" is very unpleasant for them, and doing it automatically could take a very long time until it's done searching...

tiny scroll
#

Which region are you in? It's possible to force it to a different region manually

violet oxide
#

europe-west4, I also tried forcing to europe-central2 with the same result (still laggy)

#

sorry, I made an error:

europe-central2 results in a more or less consistent RTT of ~100ms. Maybe a scaling issue on europe-west4?

tiny scroll
#

That's what I'm thinking

violet oxide
#

yeah. my only fear is that other servers might have this issue too at some point and players will have an unplayable lobby.

QosService.Instance.GetSortedRelayQosResultsAsync() pretends that everything is fine with europe-central2, even though it's not, so it's hard for me to ensure it doesn't happen

violet oxide
#

But seriously, how am I supposed to address this issue?

  • I don't see the actual ping of the server before connecting, GetSortedRelayQosResultsAsync pretends it's all fine
  • I can't change the region once the lobby is connected

so should i just tell the players to "go create a new lobby pls"? never seens that in any game. really annoying for players

this issue could happen again on any server, idk when and why

tiny scroll
#

Outside of using Dedicated Servers, I'm not sure there is much you can do. If the Relay servers are just randomly giving you high pings, all you can do is try another relay service like Steam P2P

violet oxide
#

ok thanks man