Oh boy... let me get some coffee... day by day my secrets are revealed.
The orangebox server compensates for lag by effectively going back in time. This means that players with slower connections, like Bad, will aim at where they see you on their screen, and fire. They send the "fire" command with the coordinates of where you were when they shot, i.e. in the window. The server looks at the command and the coordinates and if it determines that you were in fact THERE (yes, past tense) during the time of the fire command, and the server will pull you back to the previous location and register the hit.
That's right, our servers commit time travel every single second of every single game. This is built-in lag compensation on the server side and, trust me, you can't do much as a client. My rates are optimal and it happens every single day.
On a related note, do you know why a MOVING player has an advantage over a player who's standing still (e.g. why strafing snipers are always faster than static snipers or MGs)? Time travel. The effect is caused by
linear interpolation. You may have heard it before, it's long for
lerp. Basically, when your client receives updates from the server it saves two of them in a history buffer. One reason your client does this so that if you fail to receive an update it can look back at the last two snapshots to keep the game running smooth and not choppy.
The point is you're almost always looking at a previous snapshot, so if a player does not move from a spot they will show up in a snapshot, however you won't show up in theirs since you have moved from behind a wall to around a corner which are position updates that aren't reflected in the enemy's historical snapshots until after your snapshot reveals their position. End-result, you see them before they see you. Your lerp will reduce the effect by decreasing the time interval in between snapshots, so you have a more recent picture of the game world and you will see them quicker. The server has built-in compensation of 100msec lerp, that's where the time travel comes in above, so you want to add the lowest msec you can to that base figure.
You want the lowest
white lerp you can get. Some people say the lowest the better, but I keep it white just to be safe. If your update rate is
then set your
Code:
cl_interp_ratio 1; cl_interp .033
Do you see? .033 is 33 msec, half of 66 which is your updaterate and also msec. This means the interval is perfectly balanced to receive and store snapshots and interpolate them on your screen in harmony with their receipt. Magic!
Changes should be made in your config.
33 msec is the lowest white lerp I can achieve with my rates. Adjust yours accordingly and you will be zapping strafing snipers in no-time!
Disclaimer, this is top-tier configuration. Mess with it a little, but if you don't fully understand what you're doing you could make registration much, much worse. A fully optimized player will defeat an equally skilled player considerably more often if they understand how servers and clients work.