Hitbox?

HeadShot

EGO Zealot
=(eGO)=
Im sure some of you noticed some minor problems on the server, as I have. Whenever I retreat and hide behind a wall, the line of sight between me and the enemy has disappeared however he still kills me, anyone experience this?
 

Bad Brain

EGO Addict
happens all the time to me, but thats because of my crappy euro connection.
having bad rates probably cause this too
 

HeadShot

EGO Zealot
=(eGO)=
umm, my internet is fine i still dont know why. Yarrrg! Im like Yes! Im safe, right behind a wall. Then bang. dead.
 

ronpaul

EGO Zealot
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

Code:
cl_updaterate 66
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.
 
Last edited:

ronpaul

EGO Zealot
I guess I should add, to address your point, that this is not a specific server problem. It's a problem on essentially every public server. Match servers with 100 ticks and fewer players will see this far less often.

If you want to test the 100msec lerp on servers, start a server on your machine and join it. This is called a listen server, then enter the command: sv_showimpacts 1. Now you're seeing hitboxes, blue and red, that represent the client and the server hitboxes for a particular player. Notice that they don't match up, and it's because of that 100msec view lag caused by the the .1 lerp built-in to the server for lag compensation. Use net_fakelag 200 to see the difference a higher ping makes on server vs. client hitboxes.

Yes, all this information is available in wiki format. Search Source multiplayer networking and read up on it.
 

DuckandCover

I made one post
I'd experienced a few "Say what?!?" moments in DODS after I'd gotten into playing it regularly and wondered what the cause was (I was consistently getting decent pings, so I assumed it wasn't lag). I finally stumbled onto the information that ron shared about the orange box games/servers, though my understanding wasn't as in depth as the details that he provided. Learning about how the games calculate hits has saved me a fair amount of frustration when I encounter one of those deaths that doesn't seem to make a whole lot of sense.
 

ronpaul

EGO Zealot
I'd experienced a few "Say what?!?" moments in DODS after I'd gotten into playing it regularly and wondered what the cause was (I was consistently getting decent pings, so I assumed it wasn't lag). I finally stumbled onto the information that ron shared about the orange box games/servers, though my understanding wasn't as in depth as the details that he provided. Learning about how the games calculate hits has saved me a fair amount of frustration when I encounter one of those deaths that doesn't seem to make a whole lot of sense.
it did the same for me too man, understanding that it's simply the way the game was designed has resulted in much fewer ragequits
 

Kiwi

Thread Junky
Im saving this thread. For future reference when I get back in the US

-Kiwi

Also. sorry, but what does White mean? why does it need to be white?
 

ronpaul

EGO Zealot
Im saving this thread. For future reference when I get back in the US

-Kiwi

Also. sorry, but what does White mean? why does it need to be white?
are you talking about lerp? People recommend that you keep it white because if you make it lower you'll force the possibility that the client may interpolate frames before it receives two snapshots from the server. So if your updaterate is 66 (receiving 66 snapshots per second and is the max you can receive from our servers) then you're receiving a snapshot every 15.1 msec (1second / 66 snapshots per second). So, when you receive two snapshots it'll take about 31msec.

White lerp is anything above 32msec in this case so that there are always two snapshots to interpolate between. In other words, every time the the client is rendering, which is interpolating, it is receiving two snapshots during that rendering interval. This is so that even if one snapshot is lost or not received during rendering there is still one that the client can use to render. The lowest white lerp means that the client is constantly rendering as it's receiving two snapshot updates, therefore your client will have the reliable and almost the most up-to-date game world possible.

Yellow lerp means there are less than two snapshots being rendered during the interpolation interval. This can be dangerous if you fail to receive an snapshot. Your client may become choppy and hit registration may even become worse. In our example, you would hit yellow lerp around 15-16msec or below.

orange lerp means that the client is rendering during an interval where no snapshots are being received. Instead, every other rendering interval will have a snapshot within it. This is dangerous and could lead to choppy gameplay and poor hit registration if the client fails to receive a couple updates in a row. Your game could become choppy. In our example, you would hit orange lerp at around <14msec
 
Top