Roblox currently measures 2 different notions of ping:
- an estimation of how long it takes for data to go over the network to the server and come back
- an estimation of how long it takes for a message from the engine to be propagated to the other side and a response propagated back (you could think of this roughly as how long a trivial RemoteFunction invocation should take to go out and come back)
The number we primarily show is the second notion of ping. This is what shows up in the dev console and shift-f3 hud. We also have a way of showing the first notion of ping: while the shift-f3 hud is up, press shift-1:
this will show a window on the bottom right titled “RakNet”. In this screenshot we see 0 “RakNet” ping in studio, but 51ms of “RemoteFunction” ping. We primarily show this “RemoteFunction” ping because it reflects closer to what the user is experiencing.
This kind of ping ends up with additional contributing factors that may not be captured e.g. in an internet speed test (for example, if you are trying to contact a game server running at 16ms/frame, then the “RemoteFunction” ping is going to be network travel time + 16ms of server frame processing time).
Clearly server processing time is not the only contributor to the difference. There are other factors in addition to server processing time, but server processing is the most clear & easiest to understand example of a difference between the two notions of ping.
We think that the “RemoteFunction” ping today is higher than it could be, that there is room to make it closer to the raw “RakNet” ping. Improving it is in our backlogs, but there is not yet a definite timeline for when we would investigate further/ship improvements to it.