Clientside interpolation quotinterpquot in TF2 and related games
>> YOUR LINK HERE: ___ http://youtube.com/watch?v=M2mBNz4NvGc
Most people don't really know how this sort of stuff works. And worse, many people speak authoritatively about it when they actually have no idea what they're talking about. So here's a little case study on client-side interpolation and the weird effects it can have on gameplay. I hope you learned something new today. • My recommendations on how to configure your interp for Team Fortress 2 (or basically any Source game): • ==================================================================================================== • 1. Set cl_interp to 0 (so that the game will look at cl_interp_ratio instead). • 2. Set cl_interp_ratio to 2, unless you have a very good reason to use a different value. (Bump it up to 3 if your net connection is bad enough that you're still having problems at 2. Drop it down to 1 only if you actually know what you're doing and why you're doing it.) • An interp ratio of 2 enables the game to compensate for 1 consecutive dropped packet. A ratio of 3 enables the game to compensate for 2 consecutive dropped packets, and a ratio of 4 allows for up to 3 consecutive dropped packets, and so forth. • Lowering the ratio to 1 (the effective minimum) can be desirable, particularly when playing non-hitscan classes, because it reduces the artificial interpolation lag you experience from 30 ms down to 15 ms. But it comes at a big cost, because you remove the ability for the game to cope with even small amounts of jitter or packet loss without resorting to extrapolation. (It is possible to set up your game configuration to use different interp ratios when you play different classes. But that's beyond the scope of this wall-of-text; Google is your friend.) • Extrapolation is what your game client does when it doesn't know how everything is supposed to be moving because it missed information from the server and also doesn't have enough interpolation history to figure out average values that would serve as reasonable stand-ins for the missing data. So instead, the game does the least horrendous thing it can: it assumes that all objects will just continue moving in a perfectly straight line in the same direction that they're currently going. Needless to say, this very rarely matches reality, and it also leads to sudden jerks when the next server update does arrive and objects jump to the location where they were actually supposed to be. • When extrapolation isn't an option, the game client more-or-less throws its hands up in the air and just freezes everything in place while it waits for data to start arriving again from the server telling it what to do. Once a proper server update does arrive, then everything un-freezes, and the positions/velocities/states of all the entities in the game suddenly jump to their actual correct values for the current time. This sudden-stop-and-freeze-up, then wait, then suddenly-jump-and-resume-everything phenomenon is very jarring, which is why interpolation is so important. • • The Reddit post that made me disgruntled enough to go to the effort to make this video: • / 65weeg • I'm particularly fond of this not-even-wrong comment: • / dge69t9 • • Recommended reading on interpolation and related topics: • ==================================================================================================== • https://developer.valvesoftware.com/w... • https://developer.valvesoftware.com/w... • https://developer.valvesoftware.com/w... • https://developer.valvesoftware.com/w... • https://developer.valvesoftware.com/w...
#############################
