Interp, ping compensation and why it should be a setting

BrainmaggotBrainmaggot Join Date: 2012-09-03 Member: 157535Members
edited April 2013 in NS2 General Discussion
Hi there.

I've been baffled by one thing since I start playing this game in September last year.
There is hardly any difference in how the game feels between a low ping of 15-35 and up to 70-100 ping.

Why is this? Well to begin with there is something in place that is commonly called ping compensation. There are systems in place that try to even out the differences between clients so that you'll get a consistent experience between someone who has for example 30 ping and someone who has 70 ping. It takes time for the client to reach the server from both sides and for the server to get information back to the clients. You want both players to experience the same thing. For example to see a skulk and be able to hit him when he quickly peeks out from a corner for a parasite and not have your bullets pass through not registering even though on your screen you hit the skulk.

Here's the issue though. In NS2 the interp, the mechanism that tries to put everyone on an even playing field, is set at 100ms. That means that in practice everyone below 100(ms) ping should have the same visuals. This is all well and good apart from one thing. Most players don't play at 100 ping.

This ping compensation is what causes your lerks and fades to die from shots even though you were way past a corner on your screen. Those are the fastest moving lifeforms so they will be the ones that get messed up the most by it.

NS2 obviously wants to give the players a cool experience by letting players both play as a slow moving marine and as a fast moving alien creating interesting combat dynamics. This all gets trampled on when the fast moving lifeforms often can't pull off clutch escapes since they'll often die even though they judged the situation well and just about made it out there. In ns2 if you just about make it out, you die anyway since the guy shooting you has at least 100ms of extra time to shoot you.

Now you might be thinking "Well, just pull out of there earlier next time and it won't be an issue".
This might be the case for just messing around but when it comes to competetive play you always try to maximize your effort. Competetive games are fought between players that all push the limits as to how effective you can be.

Competetive games are also fought between players that are very aware of on what servers they play. Pretty much everyone who wants a nice FPS experience will gravitate towards a server where their ping is the lowest. Competetive or not. This means that in most cases, there will be pretty similar pings on a server. German servers having a bunch of germans, french, dutch and belgian players for example. These will all most likely ping below 60. Most cases below 50. An interp of 100ms will in practice make their low ping meaningless, it will still feel like they're playing at a 100 ping when fast movement is involved.
Most importantly though, it doesn't give you a good game experience when you see that you made it out of a room and die anyway. It makes you feel like you died because of the game and not because of the other player outmaneuvering you. That's not fun for either side of that fight.

I really appreciate the work on the ping compensation in this game. It is a necessary and nice feature of modern FPS games. What I don't understand though is why such a progressive and mod friendly company such as UWE forces the same interp on all servers.

Tl;dr
I'd really like to see interp become a server side setting so that all players who seek servers that give them a nice ping can really feel the effects of this. I'm dead tired of losing higher lifeforms even though I'm well out of sight. I know most other people are tired of it as well. Even casual pub players seem to notice this really well most of the time. It's one of the most common complaints about the game I see around. This would also greatly help to improve how competetive friendly the game is which is important for it's survivability.

Just having the setting there won't create problems since what server you play on is voluntary. The standard will most likely remain at 100ms anyway.

Thoughts?
«134

Comments

  • Marshall_DrumminMarshall_Drummin Join Date: 2012-12-04 Member: 174115Members
    In agreement with you. Its a small thing, but a very BIG thing if a game wants to become a contender in the FPS tournament scene. Hit registration is the most important aspect of FPS. If interp server side, set at .08, correlates to HL1 interp, it is a very high number (100 ping compensation).

    Just like how wall clipping isn't very accurate. Its a small thing, but a very big thing considering skilled play. As a skulk parasiting, if you have to peek out one foot more to compensate for incorrect wall clipping, the consequences are huge in a competitive scene, and vice versa for marines.
  • joederpjoederp Join Date: 2012-11-02 Member: 165992Members
    I dont know if this is exactly related to the discussion, but fairly often I find myself rushing a base as onos, and I monitor my health very closely and always try to escape once my armor is depleted. Well a bunch of times I have been running away, out the marine door with like 1000-1100 hp and a little bit of armor left maybe 100, next thing you know my health JUMPS down to a very low number, like 200-300! And of course the next marine to empty a single mag into me kills me. Its very annoying as I think I have time to escape, but then suddenly some kind of 'lagged damage' catches up to me and BOOM you are done for. It really makes it impossible to know if you can escape or not as onos.
  • elmo9000elmo9000 Join Date: 2012-03-24 Member: 149324Members
    I really hope the devs would finally look into the networking side a bit. A game with engine from 1998 and much faster moving players does a better job when it comes to delays. Obviously theres always a delay when playing over the internet, however in ns2 its much larger than usually for some reason.

    Fades and skulks killing you from multiple meters away, biting/shooting behind your own back etc. Why is it a problem in ns2 but not in ns1?
  • _Necro__Necro_ Join Date: 2011-02-15 Member: 81895Members, Reinforced - Shadow
    I want to see a video of 2 PCs both running NS1 and NS2 in windowed mode, so you can see both games at the same time on one screen.

    Now the 2 PCs connect to the same server, meet up, look at each other and start strafing, while the cam films both. You can see the delay now directly and also how big the difference from NS1 to NS2 is.

    Does someone have the hardware to set this up and post it on youtube?
  • RoobubbaRoobubba Who you gonna call? Join Date: 2003-01-06 Member: 11930Members, Reinforced - Shadow, WC 2013 - Shadow
    Right now it feels as though NS2 gives the attacker the benefit of the doubt. This kinda sucks when you time your escape 'perfectly' but still die, often a good few metres around a corner - that's probably the single most frustrating thing in the game for me at the moment.

    I have wondered whether it would be more frustrating to be an attacker who doesn't get a kill they think they should (based on their screen/damage), or to be the escaper dying when they think they shouldn't (as happens now).

    Honestly, I don't know the answer to the question posed: can this be made better, and if so how?

    I hear opinions from steam friends such as 'the net code in NS2 is absolutely diabolical.' I'm not a computer professional or expert, so I have no idea about this - this isn't my opinion, but it's something I hear voiced by computer expert friends of mine who, I believe, do know what they're talking about.

    I don't know anything about net code, and won't presume to comment on it, other than to say as a gamer that I do not seem to get the same problems in most other games to the extent that I do in NS2. Partly, this is due to having a slower and a faster set of entities, sure, but is there more there too? I don't know.

    Is there a way to address this criticism, so the game seems somehow more fair? Can the current experience be improved in a short to medium term?

    These are some of the questions I'd like to see answered by UWE, but I'm sure my techno geek friends would love to see the answers even more!
  • Marshall_DrumminMarshall_Drummin Join Date: 2012-12-04 Member: 174115Members
    @elmo9000
    Half-life 1 engine revolutionized everything. The game itself was a GOTY, but the engine and netcoding is the gold benchmark for all games. It was that good.
  • ResRes Join Date: 2003-08-27 Member: 20245Members
    lag compensation in ns2 is pretty much the same as source's, which is also pretty much the same as goldsrc.

    If you have a problem with ns2's, then you would have a problem with all source and goldsrc games as well.

    The biggest difference is the fact that movements speeds are much faster in NS2 than pretty much all other games so it's more noticeable.

    I'd wager that the average ping (at least here in the U.S.) is still around ~100ms, not 50-70 like the OP would suggest.

    Also if you are only getting say 50 ping, you are only being lag compensated for your current ping of 50, not for 100 still like the OP would suggest.
  • BrainmaggotBrainmaggot Join Date: 2012-09-03 Member: 157535Members
    edited April 2013
    matso wrote: »
    Close, but not quite right. Lag compensation does not let people see the "same thing", it is used to let each player hit what they see on their own screen.

    From how you described ping-compensation, it would be something like the server trying to ensure that everyone has a minimum ping. NS2 does not do that, though it would actually be useful in competitive gaming - US/European match-ups have problems finding neutral servers without too much lag advantage to either side.

    Lag compensation does mean that it is useless to REACT to attacks on you - if you wait to dodge until you start taking damage, you will be dead before your dodge makes it to the attackers screen.

    interp is the smallest problem here; your own reaction time is ~200ms, then you add in your and the enemy players latency + screen lag, say about 200-300ms more for a total of 400-500ms. Interp adds another 100ms on top of that ... 50ms to give smooth interpreted movement and another 50ms for packet loss/latency variation avoidance.

    Yes, I know it's related to what actually hits and not to what you see. I just kept it simple in my examples. To be fair though I should have put that in there to be perfectly clear about the mechanics. So good find.

    You are overrestimating reaction times. The only case reaction time is relevant in is if you're completelly surprised by what happens. You minimize reaction times immensly when you include the experience and prediction factor. If you play this game a lot you know which rooms you'll most likely be attacked in, from where and roughly when you'll be attacked. There are lots of more factors in here as well, counting enemy players on the map, sound and so on.

    You and your players ping would in most cases I play in be around 50-70 each (EU competetive scene). That means that your total of 400-500 should be closer to half of that or something when decreasing the reactor time factor (we're way into guesstimation territory here). Suddenly 100ms is a HUGE factor of that equation. Closer to a third than a fifth of the sum. This is why I'd like to have a server setting to experiment with having it at for example 70 or 50.

    Res:
    On the scandinavian servers for example it's not uncommon to have a ping average between players of 30-40. The most important point here though is that it would be an option and not a requirement. If the average is higher on a server you can have the interp higher.

    Just to clarify where this is coming from. I played a whole bunch of quake live and even when travelling at speeds much higher than fades can reach in this game there wouldn't be nearly as much dying around corners as in NS2. Except when it came to facing a player with high ping using the railgun. The railgun had extra ping compensation in quake live and the high pingers made it all kinds of funky.

    Yes, I know the id3 engine is pretty much the best fps engine ever. That doesn't mean this game can't strive to be good as well though, so please refrain from that kind of argument :).
  • PheusPheus Join Date: 2003-01-30 Member: 12924Members
    If you play this game a lot you know which rooms you'll most likely be attacked in, from where and roughly when you'll be attacked. There are lots of more factors in here as well, counting enemy players on the map, sound and so on.

    If you can do this, then you should also be able to predict roughly how long you can survive before needing to retreat.

    I usually ping around 80-100 and I've always had to escape as a fade/lerk in a predictive manner rather than reactive.
  • pearlykpearlyk Join Date: 2013-01-19 Member: 180732Members
    I don't quite agree with the term 'lag advantage'

    I'm a brazilian player who usually gets 140-250ms to USE/USC/USW servers and while I agree that sometimes being interped feels stupid, in a pure "dueling" perspective we are the ones being punished by the ping because our actions will inevitably be registered slower than enemy players' with low ping -- and don't get me wrong, I'm perfectly OK with that.

    And contrary to the euros, we don't even have a competitive scene here in SA, so if we want to improve both as a team and as individuals, we have to play against NA guys with the lag advantage/disadvantage.
  • IronHorseIronHorse Developer, QA Manager, Technical Support & contributor Join Date: 2010-05-08 Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
    @elmo9000
    Half-life 1 engine revolutionized everything. The game itself was a GOTY, but the engine and netcoding is the gold benchmark for all games. It was that good.
    Important to note that their engine and netcode was a heavily modified id tech Quake 1.5 engine.
    So valve doesn't even get credit for that one. ;)

    Hl2/Source would be a better example of their merits.
  • matsomatso Master of Patches Join Date: 2002-11-05 Member: 7000Members, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Shadow, NS2 Community Developer
    matso wrote: »
    Close, but not quite right. Lag compensation does not let people see the "same thing", it is used to let each player hit what they see on their own screen.

    From how you described ping-compensation, it would be something like the server trying to ensure that everyone has a minimum ping. NS2 does not do that, though it would actually be useful in competitive gaming - US/European match-ups have problems finding neutral servers without too much lag advantage to either side.

    Lag compensation does mean that it is useless to REACT to attacks on you - if you wait to dodge until you start taking damage, you will be dead before your dodge makes it to the attackers screen.

    interp is the smallest problem here; your own reaction time is ~200ms, then you add in your and the enemy players latency + screen lag, say about 200-300ms more for a total of 400-500ms. Interp adds another 100ms on top of that ... 50ms to give smooth interpreted movement and another 50ms for packet loss/latency variation avoidance.

    Yes, I know it's related to what actually hits and not to what you see. I just kept it simple in my examples. To be fair though I should have put that in there to be perfectly clear about the mechanics. So good find.

    You are overrestimating reaction times. The only case reaction time is relevant in is if you're completelly surprised by what happens. You minimize reaction times immensly when you include the experience and prediction factor. If you play this game a lot you know which rooms you'll most likely be attacked in, from where and roughly when you'll be attacked. There are lots of more factors in here as well, counting enemy players on the map, sound and so on.

    Yea, there is a lot of skill in reacting against things before they happen. It is hard - for example, when I fade, I have the bad habit of reacting to incoming damage to determine when I need to get out ... which of course means I have to add in my reaction time to the time I spend on my enemies screen after I take damage. What I should do is to get to a safe spot BEFORE checking my damage, then decide if I can back into battle or need to recover.

    You and your players ping would in most cases I play in be around 50-70 each (EU competetive scene). That means that your total of 400-500 should be closer to half of that or something when decreasing the reactor time factor (we're way into guesstimation territory here). Suddenly 100ms is a HUGE factor of that equation. Closer to a third than a fifth of the sum. This is why I'd like to have a server setting to experiment with having it at for example 70 or 50.

    If you ignore reaction time, the max extra time before you behind gets behind cover is "your latency + enemy player latency + server update interval + 2/input rate+ interp". Assuming 50ms latency on both sides, that adds up to about 260-270ms ms (input rate is 30; that is how often you move/fire). I think the latency in the video cards/screens should be small enough and compensate each other so it can be ignored.


    Res:
    On the scandinavian servers for example it's not uncommon to have a ping average between players of 30-40. The most important point here though is that it would be an option and not a requirement. If the average is higher on a server you can have the interpt higher.

    Just to clarify where this is coming from. I played a whole bunch of quake live and even when travelling at speeds much higher than fades can reach in this game there wouldn't be nearly as much dying around corners as in NS2. Except when it came to facing a player with high ping using the railgun. The railgun had extra ping compensation in quake live and the high pingers made it all kinds of funky.

    Ah, I see. The Quake3 engine used lag compensation for the railgun - only. NS2 uses lag compensation for everything. Pretty much every NS2 weapon is hit-scan, ie the same as the Quake3 railgun - gorge spit and grenades being the only non-instant weapons these days (parasite and lerk spikes used to be projectiles early beta).

    The Quake3 engine used a 50ms interp equivalent in order to have two server updates to interpolate between (that's why its called interp), as Q3 servers by default sent 20 updates per second, same as NS2 does now. NS2 follows the Source lead and adds another 50ms in order to avoid problems with packet loss and latency variations.

    So the major difference between Q3 and NS2 is an extra 50ms interp, which translates to about 0.4-0.8m distance at the speed of lerks or fades.

    IMO, the reason why so many people feel that there is something weird about the NS2 netcode is primarly gameplay; the number of times where it is important to get around that corner and into cover is uniquely high compared to pretty much every other game, so the lag compensation effect bites you quite often - and especially in comp games, those times can be the difference between winning and loosing.
  • lwflwf Join Date: 2006-11-03 Member: 58311Members, Constellation
    edited April 2013
    Also remember that most aliens has long behinds. In a game like Counter-Strike and most other shooters, not only is it slower, all the players bipedals.

    Once it looks to you like you've just moved behind cover, you're probably behind cover, though you may still perceive getting hit because of lag compensation.

    Once it looks to you like you've just moved behind cover but as a giant space cow, your giant space behind is still taking hits and that's before lag compensation even comes into play.
  • ezekelezekel Join Date: 2012-11-29 Member: 173589Members, NS2 Map Tester
    edited April 2013
    @elmo9000
    Half-life 1 engine revolutionized everything. The game itself was a GOTY, but the engine and netcoding is the gold benchmark for all games. It was that good.

    I'm pretty sure hl1 engine is based off of some idtech engine

    However what I noticed in all of those games, is that player models "twitch" instead of being smooth, I'm pretty positive that's because lag compensation is much lower and you're getting the world updated to yourself much faster. I have little to no "dying around corners" in 1.6 compared to the newer versions of source where it happens every single match

    And quakeworld played below 70 ping felt like LAN, I have no explanation for that. Same for q3 cpma and quake live, heck compare original serious sam to the new ones, the online play is terrible

    I think games are better off with this setting as low as possible. However the thing was, in those games if you had 80 ping or above, it was unplayable. But that was never an issue because you'd always pick a server near your location. EU/NA matchups should never happen online, always @ lan. Ideally
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited April 2013
    IronHorse wrote: »
    @elmo9000
    Half-life 1 engine revolutionized everything. The game itself was a GOTY, but the engine and netcoding is the gold benchmark for all games. It was that good.
    Important to note that their engine and netcode was a heavily modified id tech Quake 1.5 engine.
    So valve doesn't even get credit for that one. ;)

    AFAIK 1998 Goldsrc started out with netcode quite similar to Quake netcode. But a few years down the line, Valve created their own netcode version, a more optimized version of lag compensation. I'm sure it was before NS v1.0 was released, so it was probably running on that code instead. Not sure how much of it was based on Quake Tech though
  • wirywiry Join Date: 2009-05-25 Member: 67479Members
    Quake 3 actually used sv_fps 30. Quake Live uses sv_fps 40. Small difference, but it should still be correct.

    Unless you're talking about v1.0 baseq3 in which case it could have very well have been sv_fps 20. But no one played that due to horrible net code, so yeah.
  • ezekelezekel Join Date: 2012-11-29 Member: 173589Members, NS2 Map Tester
    Also I believe low ticrates come into play, the higher the ticrate the better it feels. But I heard this game can't get an increase in ticrate cause something goes nutty with the cysts
  • tarquinbbtarquinbb Join Date: 2012-11-03 Member: 166314Members
    really juicy interp 'inside info' here :)
  • CrushaKCrushaK Join Date: 2012-11-05 Member: 167195Members, NS2 Playtester
    Funnily enough I sometimes actually enjoy the lack of lag compensation.
    I played UT2k4 Instagib with enabled lag compensation and didn't get as many hits as I did when I finally turned the compensation off again (the lag compensation was made by a community member and was letting each player choose whether or not he would like to have lag compensation or just lead the target himself based on his ping). Probably I got used to leading targets for so long already that it was rather bothering me to aim directly at models.
  • |strofix||strofix| Join Date: 2012-11-01 Member: 165453Members
    matso wrote: »
    Unfortunately, until we find out how trick the universe into letting us communicate faster than light, lag compensation makes this unavoidable.

    Is that in the next patch or what

  • IronHorseIronHorse Developer, QA Manager, Technical Support & contributor Join Date: 2010-05-08 Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
    CrushaK wrote: »
    Probably I got used to leading targets for so long already that it was rather bothering me to aim directly at models.
    Action quake 2 ruined me for years.

  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    CrushaK wrote: »
    Probably I got used to leading targets for so long already that it was rather bothering me to aim directly at models.

    I still try and lead the target often...
  • tarquinbbtarquinbb Join Date: 2012-11-03 Member: 166314Members
    edited April 2013
    i played ut99 for years with ~300ms 56k latency.

    aim non-hitscan sniper rifle 5 metres infront of enemy to hit them; ahhhhh those were the days.

    (played ~top div competitive ctf for a while too)
  • MelancorMelancor Join Date: 2003-12-15 Member: 24415Members
    edited April 2013
    On your machine, I now am where I was going to move to on my machine at the moment of you looking at my predicted position on your machine. Is that about right?

    Phat grin
  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    I don't believe there's predicted positioning for players :>
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited April 2013
    Ghosthree3 wrote: »
    I don't believe there's predicted positioning for players :>

    I think it's a combination of extrapolating data between predicted and server data, if there was no prediction you'd see them jitter across the screen with lots of missing frames. I'm not entirely sure on the terminology though


    /me runs from Matso :P
  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    Ok, yeah it's a LITTLE predicted, but nothing like for example, bile bomb, which is completely predicted from when it is fired (iirc).
  • |strofix||strofix| Join Date: 2012-11-01 Member: 165453Members
    I don't think predicted would be the right word. Its a predetermined arc with no variation. Its more of a calculation than a prediction.
  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    That would be true except it comes into contact with things, therefore the path is predicted but never comes true. (I think).
Sign In or Register to comment.