DB lag compensation and stuff


(Gel) #1

Hi,

A question more for the Devs, but am still interested in everyone’s thoughts.

Does DB use any form of lag compensation to confirm the kill, or does it just rely on the clients info?

In particular, does the server look back in time based on the shooters ping in order to confirm the position of the downed player relative to the crosshair of the shooter?


(Mustang) #2

Yes it does have anti-lag, i.e. you might die after going around a corner if you were not around the corner when the shot was fired from the perspective of the shooter.


(Gel) #3

Thanks for the quick reply.

The situation you describe could still occur if the server just trusted the kill from the client though

What I am trying to find out is if the server itself does a verification that was what actually happened.

I believe that DB has server side verification (the lag compensation part) and could have sworn black and blue that’s what happens, but have recently been told that DB actually just trusts the client’s information and no server side verification takes place.

I’m trying to find out definitively which it is.

Client side hit detection or
Client side hit detection plus server side confirmation of the hit.


(Mustang) #4

As I understand it is client side in terms of the shooter, where they shoot is where they hit.

With server side verification, as in could the shooters position allow them to see the target at the time the shot was fired etc.

Then the target gets told they’re dead (or not), so from their perspective it’s server side.


(Gel) #5

Right, that’s the way I see it as well.

The server has to authorise the hit based on the shooters ping (i.e. was the shooter able to see the target at the time of the kill packet).

Therefore the server would have to “look back in time” to compensate for the lag of the players involved.


(Smooth) #6

There is server-side verification of client-side hit detection, which I believe to be the best of both worlds. With client side hit detection, what you see is what you get. Your bullets instantly go where you are aiming them, we can trigger feedback earlier and there’s no need to lead targets based on latency, it just makes playing feel much more responsive.

The server-side verification doesn’t need to be quite as accurate, but essentially it makes sure that it was possible for you to see your target (and be in range of them) around the time that the bullet was fired. There’s a little wiggle room here to account for reasonable latency, although going into more details here wouldn’t be too smart :wink:

Also, players who are dead server-side but not yet on their clients (haven’t received the notification from the server yet) have a very short grace period where bullet that they fire (before they die client side) will still count. This is to prevent people firing bullets during this time and having them disappear, and while it does allow for the occasional double-kill this period is limited to avoid crazy high pings causing big delays.


(Gel) #7

Thank you very much.

Greatly appreciated.


(Press E) #8

Honestly this is one of my favourite things about DB, I wish it happened more in other games too.
Nothing more satisfying than taking your enemy down with you lol