Does NS2 have unlagged hit detection?
zeep
Join Date: 2002-11-01 Member: 3367Members
What often happens to me playing as Skulk is that i.e. I'm taking fire from a Marine, run around a corner / hide behind a wall for cover. Then, when i'm behind the corner / wall, so out of his line of fire, i suddenly die anyway.
First i thought i wasn't quick enough, but this happens a lot now that i'm noticing it.
I live in the Netherlands and play on low ping UK/Ger/NL servers. My ping is never above 60 so i figure it's not me lagging out..
What causes this behavior? Does NS2 have unlagged hit detection? I'm also fairly sure the server is not running some weird mod.
Not whining though. NS2 rocks. Cheers!
First i thought i wasn't quick enough, but this happens a lot now that i'm noticing it.
I live in the Netherlands and play on low ping UK/Ger/NL servers. My ping is never above 60 so i figure it's not me lagging out..
What causes this behavior? Does NS2 have unlagged hit detection? I'm also fairly sure the server is not running some weird mod.
Not whining though. NS2 rocks. Cheers!
Comments
Just because on your screen your view is behind a wall, doesn't necessarily mean your model is all the way behind the wall, this is because of the length of the Alien models and where the 'camera' is positioned, which I believe they said is in the middle of the model.
Also, NS2 uses lag compensation similar to that of the Source engine as they have already stated.
Also, the faster the models move the more the netcode makes it *appear* like there is higher lag compensation, but that is not actually the case and you can move fairly fast in NS2.
Here you see my viewpoint is lower than where the actual Skulk head is. (The picture doesn't show it really good though.)
http://steamcommunity.com/sharedfiles/filedetails/?id=171884095
I didn't know that. I will read up on netcode for NS2. Maybe there are some client variables i can tweak to make my connection more "equal" to in-game movement.
Afaik, there are no client variables that you can tweak. It's all server side - the move rate and interp that is.
NS2 netcode is "what you aim at is what you hit". But when we play together, my reality is different from yours. My Ping + your Ping (and the interp on top).
Anyway. It's the fairest method possible. If I shoot you and can hit you, I will hit you. If you bite me and can do that, it will count too. The alternative would be to get misses when your target is about to turn around the corner. But because the misses would be calculated by the server, you would see hits at first but after a few milliseconds you would get the signal that you have misted. This would be even more frustrating.
In fact every game has this problem of "shot around the corner" but because NS2 is very fast and the skulk model is longish you feel it more.
The only thing you can do, is to remember yourself, that your reality can't be the same the other players see. (read: speed of light) So if you got shot around the corner, it wasn't the fault of some net code. It was you, that didn't retreat in time because you missed to account the different timings of players. Always think 150ms in the future. It's the same when strafe jumping to evade an incoming skulk. Remember, that his view will be 150ms in the future. He reaches you 150ms before you see him in bite range. So you need to evade sooner. Another example: You are engaging as skulk or lerk to an marine. You walljump / fly in a straight line at him, because he isn't shooting and you want to get as fast as possible in range. But in fact he has started to shoot at you 150ms ago. You just don't see it yet in your reality. So all you have is to do is: Evade before you see him shooting. You see a marine? Start evading! Don't wait until he shoots you.
That's also why you die so incredibly fast when camping. The marine needs 9 - 10 bullets to kill you. With the fast firing speed of the LMG those 10 bullets are fired before you even see him start firing.
I disagree with your alternative. The alternative would be the client calculating the enemy positions ahead of what data it currently gets, so when you shoot what you see and the target did not change directions meanwhile, you still hit it. What system is fairer is up to you to decide but I think that this think 150ms ahead thing is very harsh on new players who will think something is off when they see the effects.
it's the engine treating people with 300 ping as first class players
not going to waste time arguing whether that's good or bad or fair or unfair, but there are other ways of doing things
eg. lag compensation up to 100 ms, but you have to lead your shots beyond that
eg. giving high-ping players an option to render a predicted model to assist in leading shots
and the 'damage all at once' is probably a separate bug entirely
The universe sucks, it's full of lag.
But seriously, as a game creator, you have to compromise, because the server and each client runs his own version of "reality". The faster the game is, the faster the models move, the more they are hit by the lag.
Would you rather see your shots go through the enemy model, or would you rather receive hits from someone around the corner? The creators (wisely) chose the latter.
Even if it's incredibly annoying to get killed halfway through a vent/behind walls, I'd take this over no compensation anytime. Even if I had 50 ms or less ping.
Also, hitreg is fine. NS2 actually has one of the best hitregs I've ever seen, with false positives/negatives being very rare.
We've had this discussion before, and this is not the kind of thing we want.
Not necessarily hitreg problems, or problems at all.
Unlike a lot of FPS games, the hit "boxes" are very closely bound to the skulk, in fact the hit box may as well be the skulk model because it is that close. While most FPS games stitch together boxes or spheres to approximate the model, which doesn't leave room for bullets to miss inbetween legs.
Poor upload rate/quality can also be a key factor in this too, as your movement also has a delay when sent to the server then to the client, in NS2 where it only takes a fraction of a second of spraying to kill a skulk, this is a very big factor.
The clients have to depend on the server because 1) it's cheaper and easier and 2) to prevent those very straightforward methods of cheating.
Also, NS2's hitreg is not poorly synchronized at all, I'm pretty sure of that. Unless you're calling "getting killed behind a wall" poor synchronization. That's just a consequence of ping compensation, deal with it. Keep in mind laggy players have to deal with it too.
Ok, not a bad idea... if you can gather 16-24 people together all the time.
Thank you, I can no longer play NS2 because there are only 5 servers in the whole world which would not kick me, and none of these are populated anymore.
If you really think having high ping gives you an advantage then you're being silly. It's far more common for a high ping player to be reacting to a situation that no longer is - like shooting a skulk running at them that's really already next to them and killing them - than for a high ping player to happen to kill someone around a corner because of prediction.
if you play against low-ping marines, you are easily discovered if you move around a lot
players aren't going to adjust their style based on the pings of the enemy because each opponent will have different ping
that's an awful way to play the game
yeah it's sad that people don't live near active servers, but it's even sadder that these guys don't have the courtesy to play alien
But here's what I don't get
In warsow you move faster than you ever can in ns2 but so long as your ping is below 60~ you'll never encounter a 'behind wall' or 'that hit but didn't register'
Is it because that game is updating that much faster? Or is it because the lag comp whatever is not existent or much lower (because once you start pinging above 80 it becomes a different game, ex: if you want to hit someone you need to now aim where they are going to be, not where they are (this only occurs when your ping begins to be 70+)
And in all honesty, I prefer that much more; ever since games started adapting whatever this is; I've had nothing but complaints about how online is playing
Meanwhile I can jump on serious sam the second encounter original, go online, and feel no problems what so ever as long as I've entered a server which I ping nicely too
Heck it even happened on consoles, compare halo 2 to halo 3, halo 2 always and I mean always felt like you were scoring hits (if you've played it)
But that game is much slower, anyway I don't know the science but I feel we've went backwards in video games with this netcode mechanic, feel free to disagree all you want but that's my opinion on it
I've always found that the "hitbox" is the model in NS2.
Perhaps, due to the speed and strange shapes of the alien lifeforms, the approximated boxes might be a good thing, at least as far as the near misses are concerned (i.e. slightly larger boxes around the leg joints
It would be much easier to understand for new players, and be enough of a "nerf" to aliens to possibly assist with balance (more bullets hit on average = more engagements won for marines)
Just a thought.
What i do feel is that it sucks getting killed in a spot where i no longer am. It's like i'm compensating for that other guy with a high ping.
I'll try a US server today, see if it holds up.
Also, you might get killed behind walls by the high ping player, but that's it. On the other hand, that player feels like he's getting killed behind walls by anyone on the server, which is far more annoying than just one player being able to do it to you.
*edit not anymore since 252 omg*
Now the server has to remember positions of each player for a couple of seconds. If Client A fires on Client B, the server gets this signal after Client A's ping time X. Then he has to go back these X milliseconds and determine whether Client B was where Client A fired at that time.
The problem: Lets say Client A's ping is high, say 500 and Client B's ping is low, say 50. If Client A gets a shot on Client B, Client B will realize that only after 500 + 50 = 550 milliseconds. If both players had hitscan weapons like in other shooters, this would be no problem, whoever aims better wins. In NS2 however this is not the case. A big part of melee-ranged skill comes from reacting to your enemy's movements, ambushing, flanking, attacking from behind.
If Player A's skulk with his 500 ping ambushes Player B's marine from behind (or cloaked as in previous versions) the marine will notice he is getting chewed on 500 ms after Player A started attacking. After 500 ms, the skulk will have gotting in another 2 bites and the marine will be dead without knowing what happend.
Same scenario with skulks sitting in corners and getting instagibbed by a marine who spots them. Or getting killed even though a marine is facing another direction. Intelligent dodging is not possible with this mechanic, if you want to evade bullets you just have to move as chaotic as possible regardless of where you see the marine's are aiming at, because most likely they are not.
Nope, that's inverted. The skulk is the low ping player there, whereas the marine is the high ping. It's hard to explain that using text only and I don't have the time to draw stuff here, but what you said is accurate if you switch the pings.
Here's what would happen in your scenario (assuming the marine is standing still and the skulk gets a surprise attack, but loses; also assuming armor 3 and no medpacks):
- Skulk POV: he gets into the room, sees the marine, proceeds to attack him. The marine will stand still for at least 550 ms + whatever reaction time it takes for the marine to move. The client might register two bites before the marine starts dodging and shooting him, but the damage takes a little longer to register. Eventually the skulk dies, after landing a couple more bites (which would be enough to kill the marine for sure), but the last bite doesn't register the damage because of lag.
- Marine POV: marine is standing on the room, when suddenly a skulk attacks him. He starts dodging and shooting, but the skulk keeps biting the air where the marine was 550 ms before and lands two bites on him. His shots hit the skulk, his damage registers almost immediately. Eventually the skulk dies, but not before the marine takes one more bite.
The skulk will call BS because he thought he landed 4 or 5 bites. The marine will tell him he only took 3 bites.