![]() There's more I'm sure, but I'm at work and can't be bothered with wasting any more time.Ĭheck out the video above for more info on extrapolation AND interpolation.Įveryone here rags on Blizzards setup for their server / client refresh rates, but from someone who does networking, it's an astounding accomplishment for how many people are playing, and how many separate servers are needed, and for them all to be syncing data regarding player statistics, health, etc all at the same time. That's four points of data, compared to Overwatch's Player is moving? Player is crouching? Player is jumping? Player is shooting? ![]() but we also were only handling four major packets. Obviously our engine was very different from Overwatch's. However, if both players had a ping of 50 or lower that window was decreased by half, and the frame buffer was reduced to 3 frames. ![]() Keep in mind servers have to do a form of "rendering" as well, just not the way we do on the client). If it was within a small buffer window which we tweaked a lot until we were happy ( I think we settled with a window of 5 frames based on server tick (by default we used a tickrate of 300, and our server framerates were around 350+, it was important to keep server framerate higher than tickrate so that frames were not dropped), but this was because our engine could handle it. ![]() Because no one liked getting shot behind walls, if the 50ms player was recorded as behind a wall, but the 100ms player saw them as not being behind a wall, the server did a snapshot, and compared positions. So if I had 50ms, and you had 100ms, that means you had a window of 283ms where you could still shoot me if you could SEE me. If the receiving player had a ping below 50ms, their buffer was significantly smaller (relatively, but in the big picture it was less than a third of a second 333ms maximum +/-) compared to someone who say had a 100 ping. ) we created tiers of authority, which designated based on someones ping their "buffer", or how far back in "time" a player could be shot. so many of you reading will never have to experience this. Through many years of experience ( we played quake on 28.8 and 56k connections at one point in our lives. In my experiences when we did our benchmarks for our fan made Quake 3 homage, we did a lot of stuff with interpolation and extrapolation. Video starts almost 12:00 in, but I started it right at the point where they talk about command buffering, and how currently, if you have a steady input stream, you get more raw inputs and player data.ĥ0ms ping (time to server) -> RTT ~90ms (time for data to be sent, acknowledged, and returned with a thumbs up or thumbs down) -> effectively ~90ms TRUE latency (Anything under 100ms is negligible due to client update rates, and interpolation/extrapolation) Overwatch does some pretty impressive things on it's networking environment side of things. I'm just going to boil it down to the basic idea. no offense to you, but I may have a bit more experience in the field and a bit more credentials to speak on the matter on why 50ms is not a "pretty bad ping." I'm not going to draw you graphs, or give you detailed networking schematics and explanations, or etc. u/awe300 I thought I would extrapolate why that statement you made was wrong. ![]()
0 Comments
Leave a Reply. |