PDA

View Full Version : Hitbox delay?



ilam
10-19-2011, 11:08 AM
Edit: Can someone please move this to the CSP Discussion forum?

After continuously whining about the game not registering my shots in several occasions, peaking at enemies whose models are only shown on my screen several ms later, and being killed countless times by people who peak and i only see their bodies after i got hit, i've come to the unscientific conclusion (means not tested):

There is some model-hitbox discrepancy.

How? with my ping normally being 70-90 i've noticed several times that bullets that were spot on did not even reg. Here's an example, i've found myself "missing" people with the awp when my crosshair (and the bullet decal) are right on target, BUT i've also killed people when i've certainly prefired my shots.

It became apparent to me when in the last pug i played (7 hours ago) i mistakenly prefired my awp a few times (due to it being too cold and my hand shaking) AND i actually got the kill. Here's how it happened:

1- Hear enemy
2- Aim @ spot
3- Mistakenly shot
4- He dies (notification)
5- Body shows up at the spot i shot at with roughly the same delay that it takes (or took) models to react.

Also, i'm pretty sure that everyone has witnessed a situation where they shoot a person who's standing up, in the chest, you get the kill, and then suddenly his model is crouching and then dies. OR vice versa.

Or simply hiding in a spot. Enemy peaks, you unload yourself in his head and it turns out that most of your bullets missed and you only dinked him once (doesn't look like that in your screen). And it turns out that he crouched, but he certainly didn't look as if he was doing that.

Something i'm sure of is that this game has always been a "peakers" advantage game. I've always found it easier to kill a person if YOU peak them, than if you wait for them to peak. Something about you being able to see them first, like source used to be or still is. Why? I'm not sure, probably netcode.

Please feel free to add, whine, bash, or simply post your educated opinion about this.

Thanks.

Saul
10-19-2011, 01:16 PM
Developer opinion (AKA, motherfucking fact):
Peaking does give you an advantage, there's nothing you can do about this.

However, if you're moving behind a crate, when you think you're hidden, to all the other players, you're not.

This is due to a feature called lag compensation. It exists on 1.6. It exists on all multiplayer FPS games. Without it, multiplayer games wouldn't be worth playing.

streblo
10-19-2011, 01:31 PM
Developer opinion (AKA, motherfucking fact):
Peaking does give you an advantage, there's nothing you can do about this.

However, if you're moving behind a crate, when you think you're hidden, to all the other players, you're not.

This is due to a feature called lag compensation. It exists on 1.6. It exists on all multiplayer FPS games. Without it, multiplayer games wouldn't be worth playing.

Not to sound incredulous, but your explanation begs further clarification.

Saul
10-19-2011, 01:34 PM
Not to sound incredulous, but your explanation begs further clarification.
The main paragraph that explains this in technical detail:
http://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization#Game_Design_ Implications_of_Lag_Compensation

Some other articles on there if you're interested:
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

cryeR
10-19-2011, 02:04 PM
is it even possible to get a red face from an ak/m4/deagle without dying ? happens to me a lot , as if the model was hit but the hitbox not

yuri
10-19-2011, 02:17 PM
red face = client sided decal effect
hit reg = server sided

n3krO
10-19-2011, 02:19 PM
@Yuri Right now we doesn't have prediction system, how is that posible that we see the decal before the server tells us we hit that guy?

yuri
10-19-2011, 03:51 PM
red face = client sided decal effect
client sided decal => it simply traces your shot against the player who is not on server's position and creates the decal if the trace hits him.

deefop
10-19-2011, 04:19 PM
i understand lag compensation, but these things do seem to happen a lot in CSP, and i never experience them in 1.6. Is there some sort of work around for them? I mean the whole point of having locked rates in 1.6 is that we don't want kids interping and abusing lag compensation, so we all play with maxed rates and .01 interp to reduce it as far as possible.

n3krO
10-19-2011, 04:28 PM
i think that we should wait to see how does prediction affect this and then incubus/saul could start to work in get rid of this issue(s)

yuri
10-19-2011, 05:38 PM
There is a great article written by well-known zBlock admin J3di:
http://www.cadred.org/Forums/Thread/72533/

He explains the origin of this issue, compares it with GoldSrc and he also suggests a solution for the "peeker's adv" problem - reverting client position accordingly to your lerp amount. If I understood it well... It is from 2009 so I really dunno if it's still actual for CS:S or CSP.

I also believe that some part of the "peeker's adv" comes from the off-centered FOV pyramid (left-sided POV - you are looking through left eye only).

ilam
10-19-2011, 07:30 PM
Developer opinion (AKA, motherfucking fact):
Peaking does give you an advantage, there's nothing you can do about this.

However, if you're moving behind a crate, when you think you're hidden, to all the other players, you're not.

This is due to a feature called lag compensation. It exists on 1.6. It exists on all multiplayer FPS games. Without it, multiplayer games wouldn't be worth playing.

It is not as pronounced in 1.6 As it is in Source.

I never even noticed this at all in 1.6, but i noticed it in my first day of CSS. I find it close to impossible to wait in a spot and "peak" and awper with an ak in CSS, but in 1.6 it's common.


is it even possible to get a red face from an ak/m4/deagle without dying ? happens to me a lot , as if the model was hit but the hitbox not

It happens to me at least once in every pug. It's my main source of frustration.

I think interpolation isn't working properly :(. Or it might just be the netcode.


There is a great article written by well-known zBlock admin J3di:
http://www.cadred.org/Forums/Thread/72533/

He explains the origin of this issue, compares it with GoldSrc and he also suggests a solution for the "peeker's adv" problem - reverting client position accordingly to your lerp amount. If I understood it well... It is from 2009 so I really dunno if it's still actual for CS:S or CSP.

Any comments on this devs? Is J3di spot on?

yuri
10-20-2011, 01:23 PM
Saul has browsed this thread. Just saying.

J3Di
10-20-2011, 05:57 PM
Any comments on this devs? Is J3di spot on?

I wouldn't waste your time, it was mostly trolling the Cadred idiots with "Source is broken" the only thing they listen to.
Think it's mostly clear here: http://www.cadred.org/News/Article/110798/

book
11-08-2011, 09:37 PM
Interpolation:

To a player with a latency of 150 milliseconds, and an interpolation period of 100 milliseconds, his view is a full 250 milliseconds in the past. Lag compensation accounts for this, so although on your screen you were hidden behind the box because of local prediction to the lagged player his view of you is 250 milliseconds old and you are not hidden.

Interpolation buffers updates from the server to smoothly animate to the latest update. Therefore unless you disable it, your view will always be at least 15 milliseconds( assuming 66 updaterate here ) and your whatever your latency is provided the server doesn't change sv_client_min_interp_ratio to 0. In which case your view would be behind by your latency only. Disabling interpolation will cause a choppy feeling because the game is no longer buffering updates to extrapolate between to smoothly animate.

The interpolation period is based off:

interpolation = cl_interp_ratio / cl_updaterate

eg

cl_interp_ratio 2
cl_updaterate 66

0.03 = 2 / 66

unless of course you set cl_interp higher than 0.03 in this example

Does this help you understand it?

cl_predict, is another beast altogether as is lag compensation.

yuri
11-09-2011, 04:35 AM
cl_interp cvar is disabled in CSP.
cl_interp_ratio is defaulted to 1.1
Server's tickrate is defaulted 100 so the updaterate etc. are 100 too.

=>1.1/100 = 0.011s lerp = 11ms lerp

The additional 0.1 in cl_interp_ratio is here for covering the tickrate fluctuation IIRC