I've specced a few games and heard a few people talking about this so I thought I'd post a thread about it, as I looked and didn't see one.
The problem is that the ping is much higher than it used to be in any previous version, no matter what mod, host or map. A player who used to get a ping of about 500ms will now have a ping of around 2000. It happens for every player and it does affect how fast commands affect the game. It happens even in 1v1s with only a couple of specs. It's possibly a spec issue, I haven't tried a game with no specs. The game doesn't jerk or act laggy, it's just behind but otherwise smooth. I didn't see this last time i tested (about a week and a half ago) and I specced then.
I had this in a game I was hosting last night, and I noticed that while the ping count was claiming 1300-1500 MS for everyone people weren't noticing any obvious lag. Also, I noticed that pings seemed to return to normal ranges after a player quit.
Joined: 01 Jun 2005, 10:36 Location: The Netherlands
My current hypothese is that this is caused by client sending a NETMSG_NEWFRAME reply only every 8th frame instead of every frame. This wouldn't be so bad, if it wasn't for Spring buffering incoming network traffic and smoothing it out to fix jerkiness.
So I think the following happens:
Client receives multiple NETMSG_NEWFRAME in one network packet.
Client executes some of the NETMSG_NEWFRAMEs in the packet, but let's the others sit in the network buffer to prevent stuttering/jerkiness. The executed NETMSG_NEWFRAMEs happen to be not a 8th frame.
Client goes on to do rendering, input handling, etc.
Client comes back into ClientReadNet, and first simulates an 8th frame, sending a NETMSG_NEWFRAME back to server. Server thinks it's lagging badly because it is network roundtrip time + rendering time + 9 * simulation time ahead of the client. (9 because spring tries to smooth out on 2 newframe messages in network buffer anytime, plus 7 that didn't happen to be an 8th one (wonder who still follows me ))
If due to the game dynamics etc. this always happens for you, you have a bad ping number always (but not real lag). For other it may happen only sometimes because the number of NETMSG_NEWFRAME messages may vary per network packet, game speed may vary, etc.
If we fill in the numbers, assuming a 200ms network roundtrip, 50 FPS and 30 simulation frames per second, we can get to a ping of: 200 + (1000/50) + (1000/30*9) = 520 ms instead of the expected 267 ms. (while the actual lag isn't any worse)
This wouldn't fully explain it tho (1.5 second ping etc.), unless those people have really bad ping already normally, the game is running very slowly and their FPS isn't high either. Otherwise, no clue where the rest of the time goes
EDIT: well, one extra clue anyway: it may be in buffering outgoing network traffic in server. A NETMSG_NEWFRAME is 5 bytes, if it sends 4 in a packet (it can't do more if my calculations wrt network flushes are right), the oldest one is already delayed by an extra 133 ms, if this happens to be an 8th frame, this will add to the displayed ping. Client side outgoing network buffering should be negligible I think, due to sync replies. (Hint: maybe these should be combined with newframe replies, in particular if both contain framenumber?)
Tobi: I'm not sure I fully understood... but from the games I've been in so far it appears that it's not just the ping being reported incorrectly, but also the ingame actions being delayed much worse than they used to. Many high end players are complaining of 1v1 being unplayable due to the ping disadvantage. The reporting may be incorrect, but it doesn't seem like the whole story.
If I just misunderstood feel free to disregard this post
Users browsing this forum: No registered users and 0 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum