Hit reg, or, why I am sick of dying around a corner.

BloodyIronBloodyIron Join Date: 2009-11-09 Member: 69321Members, Reinforced - Shadow
What's up with the hit reg? Getting killed around a corner when there isn't a massive ping difference is really lame and not fun. What's going on about this? Anything? :(

I don't think this has been "fix"... ever?
«134

Comments

  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    BloodyIron wrote: »
    What's up with the hit reg? Getting killed around a corner when there isn't a massive ping difference is really lame and not fun. What's going on about this? Anything? :(

    I don't think this has been "fix"... ever?

    Heheh he keeps dying around corners and thinks we can fix it with our current technology
    Einstein_laughing.jpeg



    If this guy was alive in this day and age he could tell you all about why this is happening and why we're not going to fix it with our current technology any time soon... Hmm come to think of it, if he was alive today, we'd probably already have huge advancements in the field of quantum mechanics...
  • IxianIxian Denmark Join Date: 2014-03-16 Member: 194783Members, Squad Five Blue


    If you want to try and understand the jest of it, watch this video.

    Generally, dont play above a ping of 100, as that is what interpolation is set at (100).
  • ZdrytchXZdrytchX Australia Join Date: 2016-02-06 Member: 212662Members
    Hit registration problems is when you for example, use the railgun and at the time you press the button with the crosshair on the target, and doesn't hit.

    What you are describing is latency which is a completely different story.

    http://www.ra.is/unlagged/faq.html#IJGSAAC
  • HandschuhHandschuh Join Date: 2005-03-08 Member: 44338Members, NS2 Playtester, NS2 Community Developer
    I'd really like to see how ns2 would play without the latency compensation..
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    Handschuh wrote: »
    I'd really like to see how ns2 would play without the latency compensation..

    Trust me, the rage would be even higher :D
  • ArchieArchie Antarctica Join Date: 2006-09-19 Member: 58028Members, Constellation, Reinforced - Supporter, WC 2013 - Supporter
    Handschuh wrote: »
    I'd really like to see how ns2 would play without the latency compensation..

    It's absolute trash, there was an internal build many yonks ago which had no compensation when specific network perimeters were met, it felt like playing counterstrike with no headshot hitbox and random crouch exploits. Then again on lan it wasn't exactly too bad, just that you had to actually be very accurate, lerks overpowered and gorge spits never hit.
  • AeglosAeglos Join Date: 2010-04-06 Member: 71189Members
    If everything was server side, I would be less bothered about hitreg and be more concerned about how to deal with collisions with other players, especially with aliens being mostly melee.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    Well technically everything is server side in terms of lag compensation, it just gets data fed from client x and y and interpolates it with server side info, spitting out server calculated data :tongue:



    Go record some demo's in Spark to see what your game would look like if you remove the lag compensation...
  • 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
    What everyone's saying is mostly correct.. it's latency/limitation of the speed of light.
    But it's also the send rate/ interpolation delay. It adds an extra 100ms + some other small things

    While other games have interpolation, it's typically not as high because the server can afford to send updates at a more frequent rate, (ns2 has a lot of entities comparatively + Lua) and here's the big one: they're often far slower entities.
    High velocity movement will highlight/exaggerate any interp delay in a game.
    Q3 had around 20ms IIRC?
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    Another cool example is the ancient BF1942 engine, it had no (limited?) lag compensation on 60hz tickrate server&clients I think. But due to the huge distances, it kinda simulated bullet drop and having to lead your target, to some extent... Which was kinda neat IMHO :D


    That's basically what you'd end up with in NS2 (all games), if you remove lag compensation. Which is a huge deal in a fast, twitch based game like NS2. So tell me, do you want to shoot where you think your target will be? Basically shooting at the air in front of it... That is if it doesn't suddenly change direction, then everyone loses their mind...

    754619.jpg

    Compared to the way it currently is, the tried and true quake/UT like tracking the target's movement by aiming at the model. An interpolation of what you see and what your target sees, based on server checks...



    @IronHorse, isn't Spark's interpolation lag around 150ms, or did ya lot get it down to 100ms?
  • SquishpokePOOPFACESquishpokePOOPFACE -21,248 posts (ignore below) Join Date: 2012-10-31 Member: 165262Members, Reinforced - Shadow
    Change your play style to be more aggressive, yet always flee just before you think you have to.
  • RevanCoranaRevanCorana Join Date: 2015-08-14 Member: 207125Members
    Yea lag compensation (interpolation) is set too high maybe a few years ago 100 was the average ping but Im pretty sure nowadays its way lower than that.

    Result is when you play with people lower than 20 ping it still feels like playing with 100 ping laggers and it's not a fatality nor is it due to lag compensation but rather the value it's set at.
  • BeigeAlertBeigeAlert Texas Join Date: 2013-08-08 Member: 186657Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, NS2 Map Tester, Reinforced - Diamond, Reinforced - Shadow, Subnautica Playtester, Pistachionauts
    edited March 2017
    Yea lag compensation (interpolation) is set too high maybe a few years ago 100 was the average ping but Im pretty sure nowadays its way lower than that.

    Result is when you play with people lower than 20 ping it still feels like playing with 100 ping laggers and it's not a fatality nor is it due to lag compensation but rather the value it's set at.

    Lag compensation is set according to what the maximum desirable ping should be. It's set to 100 because that's a nice safe number. If we were to lower it to say... 50... that would mean that anybody with 75 ping would be extrapolated 25ms each update.

    Think about it this way: if we were to set interp to 0, and therefore just have every client immediately display the most current snapshot, and perhaps just extrapolate from that, you'd get MASSIVELY buggy-looking movement. Say you're observing a marine going ADADADADADADA, left,right, left right... etc. Well you'd see them basically teleport back and forth because at each snapshot, you're being told the marine is moving the opposite direction. If you elected to just not extrapolate, that would mean you would see other player's moving at about 30 fps (and inconsistently due to dropped packets, etc)... which looks awful and wouldn't be very fun to play against anyways.


    EDIT: Wow I was really tired when I wrote that... IronHorse has his head on straight... listen to him...
  • HandschuhHandschuh Join Date: 2005-03-08 Member: 44338Members, NS2 Playtester, NS2 Community Developer
    edited March 2017
    In ns1 I had a script to cycle through all interps between 0.1=100ms to 0.01.. with net stats I could see if there is any choke which means the server isn't able to handle it if I have choke..so I could adjust to each server individually, which meant on ensl servers I could get lower.. also if ppl are somewhat warpping because they are lagging I've set it higher..
    It was small but it really helped in competitive matches..
    @Archie pls read the PM :)
  • VetinariVetinari Join Date: 2013-07-23 Member: 186325Members, Squad Five Blue, Reinforced - Shadow, WC 2013 - Silver
    always flee just before you think you have to.

    That is really hard without being able to look into the future, though.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    Vetinari wrote: »
    always flee just before you think you have to.

    That is really hard without being able to look into the future, though.

    It's a bit of situational awareness and balls of steel and a flux capacitor :trollface:
  • SquishpokePOOPFACESquishpokePOOPFACE -21,248 posts (ignore below) Join Date: 2012-10-31 Member: 165262Members, Reinforced - Shadow
  • BloodyIronBloodyIron Join Date: 2009-11-09 Member: 69321Members, Reinforced - Shadow
    1. I'm talking about hit reg with ping in the neighbourhood of 60-90ms, not 100+.
    2. Hit registration is the process of the client hitting "fire", the server interpreting the situation, and REGISTERING a hit actually happened, and not a miss. It is a combination of the clients and the server, not just client-side. When the registration is confirmed by the server, this is pushed to each client.
    3. Just because this is the way it is, doesn't mean it's good.

    I can't speak for every single element of how the NS2 engine works, but what I do know is hit reg as it is now is problematic. Laugh at me all you want, I don't care, I'm not the only person taking issue with this either.

    When I'm a skulk and I jump around the corner to retreat and I die half way down the hall anyways, that's not only not fun, that's not fair. I can't plan around that, so saying things like "oh just play better" is irrelevant and not helpful.

    There are plenty of games out there with much better hit reg that work across the internet, including TF2, CSGO, and as pointed out various Battlefield titles, just to name a few. So, why is this kind of behaviour acceptable for NS2? I'm saying it's not.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    NS2 has MUCH faster moving enemies compared to those games and a lot more network data to process as well, this is especially obvious on the alien team (receiving end of mostly hit-scan weapons). There is no way to fix this in Spark AFAIK apart from upping the tick rate to 60+? Which will murder the servers, that already needs insane ~4.5/5Ghz overclocked CPU power. NS2 client and server are both running at a measly 30 ticks, and with its RTS&FPS elements congesting most of the bandwidth and server CPU time, you get to "enjoy" this issue a lot more... NS2 simply needs around 1-100Ms to lower the amount of "around corner deaths", any more latency and you get into more and more issues... but even at 50-100Ms, you get to see these issues. LAN is kinda the only way to negate this stuff. IIRC Spark for NS2 is simply a slow bastard with how much data NS2 squeezes through the pipelines and due to that tickrate mostly and a pinch of Lua...

    So we've got NS2 adding all of these to the problem:
    - NS2 pushing loads and loads of data though the net, way more than other games (probably the biggest root of the problem)
    - Spark running at only 30 ticks and on Lua
    - In engine latency of 100Ms? (other engines tend to have around 50-100Ms as well)
    - Very fast moving aliens, compared to other games
    - The physical distance between players (light speed/router hops)

    Now compare that to NS, which ran at 33 66-100 ticks and had A LOT less data to push through, even that mod had some rare around corner issues with higher latency and it was even faster paced. NS2 aliens kinda got fat and slow :tongue: But still quite fast in general and with all the compounded issues, you get around corner rage more often then not...



    Also this goes for any game, light speed is simply too slow as it can't move any faster through the glass fibers. Not even mentioning the router hops/network distribution time, and the back and forth ping/pong between:

    [client X <-> Server interpolation <-> Client Y]

    All of which contribute to the "lag" (net lag+router lag+engine lag)



    Also it IS netlag, not hitreg. Hitreg is on your screen and has to do with your crosshair and the target. Being shot around a corner means that on the enemy screen at high latency, you are still on their screen. While you, yourself are around the corner on your screen. If anything, if there are hitreg issues that has more to do with client side prediction than server side interpolation. And dem devtype people would request video proof for that

    The high speed of NS2 (which is still slower than quake/UT likes, running at 60ticks or more), exaggerates this issue. its exponentially visible for higher latency...
  • RevanCoranaRevanCorana Join Date: 2015-08-14 Member: 207125Members
    edited March 2017
    BeigeAlert wrote: »
    Yea lag compensation (interpolation) is set too high maybe a few years ago 100 was the average ping but Im pretty sure nowadays its way lower than that.

    Result is when you play with people lower than 20 ping it still feels like playing with 100 ping laggers and it's not a fatality nor is it due to lag compensation but rather the value it's set at.

    Lag compensation is set according to what the maximum desirable ping should be. It's set to 100 because that's a nice safe number. If we were to lower it to say... 50... that would mean that anybody with 75 ping would be extrapolated 25ms each update.

    Think about it this way: if we were to set interp to 0, and therefore just have every client immediately display the most current snapshot, and perhaps just extrapolate from that, you'd get MASSIVELY buggy-looking movement. Say you're observing a marine going ADADADADADADA, left,right, left right... etc. Well you'd see them basically teleport back and forth because at each snapshot, you're being told the marine is moving the opposite direction. If you elected to just not extrapolate, that would mean you would see other player's moving at about 30 fps (and inconsistently due to dropped packets, etc)... which looks awful and wouldn't be very fun to play against anyways.

    I see but hasnt ping generally dropped lower throughout the years?
    Kouji_San wrote: »
    There is no way to fix this in Spark AFAIK apart from upping the tick rate to 60+? Which will murder the servers, that already needs insane ~4.5/5Ghz overclocked CPU power.

    Does server use all the cores properly?
    Handschuh wrote: »
    In ns1 I had a script to cycle through all interps between 0.1=100ms to 0.01.. I could adjust to each server individually

    Why this isnt in NS2, hardware limitation?

  • antouantou France Join Date: 2016-07-24 Member: 220615Members
    edited March 2017
    Also remember that the skulk hitbox is pretty much an horizontal rectangle (as opposed to 'human' models in other games like CSGO etc being vertical rectangles), so even when your head is past the corner (so from your point of view you should be safe), your butt is still visible and can be shot at. Probably adds a few dozen milliseconds to the perceived lag.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    BeigeAlert wrote: »
    Yea lag compensation (interpolation) is set too high maybe a few years ago 100 was the average ping but Im pretty sure nowadays its way lower than that.

    Result is when you play with people lower than 20 ping it still feels like playing with 100 ping laggers and it's not a fatality nor is it due to lag compensation but rather the value it's set at.

    Lag compensation is set according to what the maximum desirable ping should be. It's set to 100 because that's a nice safe number. If we were to lower it to say... 50... that would mean that anybody with 75 ping would be extrapolated 25ms each update.

    Think about it this way: if we were to set interp to 0, and therefore just have every client immediately display the most current snapshot, and perhaps just extrapolate from that, you'd get MASSIVELY buggy-looking movement. Say you're observing a marine going ADADADADADADA, left,right, left right... etc. Well you'd see them basically teleport back and forth because at each snapshot, you're being told the marine is moving the opposite direction. If you elected to just not extrapolate, that would mean you would see other player's moving at about 30 fps (and inconsistently due to dropped packets, etc)... which looks awful and wouldn't be very fun to play against anyways.

    I see but hasnt ping generally dropped lower throughout the years?
    Kouji_San wrote: »
    There is no way to fix this in Spark AFAIK apart from upping the tick rate to 60+? Which will murder the servers, that already needs insane ~4.5/5Ghz overclocked CPU power.

    Does server use all the cores properly?

    In general ping has improved a small bit through the cables with higher bandwidth and mostly inside server centers which have much faster servers now. But in the end, the actual physical distances between people is still the same. So we kinda reached the limit of our ping improvements. No amount of increased in bandwidth or faster routers/servers is going to change that, unless we finally get a grasp of "predictive quantum computing" :tongue:


    AFAIK NS2 uses ~1.25 core per server? So ie: on an overclocked quad Intel iCore, you could potentially run 3 servers. That tickrate is still abysmal in any case for a bandwidth/CPU hog like NS2


    And yeah @antou has a very valid point. Your butt sticks out, especially on that big fat space cow :D
  • SquishpokePOOPFACESquishpokePOOPFACE -21,248 posts (ignore below) Join Date: 2012-10-31 Member: 165262Members, Reinforced - Shadow
    You serious? TF2 has (had?) just as much interpolation, if not worse. Facestabs and dying around corners were huge. Pyros catch you on fire well beyond the flamethrower's length.

    Source: was a scout main
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    You serious? TF2 has (had?) just as much interpolation, if not worse. Facestabs and dying around corners were huge. Pyros catch you on fire well beyond the flamethrower's length.

    Source: was a scout main

    Source w/ TF2, which is in general faster paced than most other games running on it, has always been crap at netcode. Unlike GoldSrc ironically :o


    And that's not only ironic but weird as well, I mean isn't Source based on GoldSrc/Quake 2?
  • cooliticcoolitic Right behind you Join Date: 2013-04-02 Member: 184609Members
    The problem is simply that the net code is relatively slow, largely due to LUA, and that NS2 has fast moving entities. I get that LUA is portable and easy to use, but it was a poor design choice regardless.
  • RevanCoranaRevanCorana Join Date: 2015-08-14 Member: 207125Members
    Kouji_San wrote: »
    BeigeAlert wrote: »
    Yea lag compensation (interpolation) is set too high maybe a few years ago 100 was the average ping but Im pretty sure nowadays its way lower than that.

    Result is when you play with people lower than 20 ping it still feels like playing with 100 ping laggers and it's not a fatality nor is it due to lag compensation but rather the value it's set at.

    Lag compensation is set according to what the maximum desirable ping should be. It's set to 100 because that's a nice safe number. If we were to lower it to say... 50... that would mean that anybody with 75 ping would be extrapolated 25ms each update.

    Think about it this way: if we were to set interp to 0, and therefore just have every client immediately display the most current snapshot, and perhaps just extrapolate from that, you'd get MASSIVELY buggy-looking movement. Say you're observing a marine going ADADADADADADA, left,right, left right... etc. Well you'd see them basically teleport back and forth because at each snapshot, you're being told the marine is moving the opposite direction. If you elected to just not extrapolate, that would mean you would see other player's moving at about 30 fps (and inconsistently due to dropped packets, etc)... which looks awful and wouldn't be very fun to play against anyways.

    I see but hasnt ping generally dropped lower throughout the years?
    Kouji_San wrote: »
    There is no way to fix this in Spark AFAIK apart from upping the tick rate to 60+? Which will murder the servers, that already needs insane ~4.5/5Ghz overclocked CPU power.

    Does server use all the cores properly?

    In general ping has improved a small bit through the cables with higher bandwidth and mostly inside server centers which have much faster servers now. But in the end, the actual physical distances between people is still the same. So we kinda reached the limit of our ping improvements. No amount of increased in bandwidth or faster routers/servers is going to change that, unless we finally get a grasp of "predictive quantum computing" :tongue:

    Yea or if we put cables through the earth lol
    AFAIK NS2 uses ~1.25 core per server? So ie: on an overclocked quad Intel iCore, you could potentially run 3 servers. That tickrate is still abysmal in any case for a bandwidth/CPU hog like NS2

    So its not taking advantage of the CPU total power, seems like an optimization bottleneck.. maybe with 64 bit multicore optimization that will be adressed.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited March 2017
    Hahaha, well ya got me there @RevanCorana, better get to diggin' then, bring lots a drinks it's gonna git hot up down in hir :tongue:


    Except multithreading isn't a magic bullet. NS2 wasn't designed for it and it's also hard to do for multiplayer games in general, mostly running into diminishing returns, more potential bugs and even less performance in some cases, where the engine has to wait on other threads to get it's complete data for something it had to do.

    This isn't video encoding with it's predictive nature, easy to track frames, which is made to thread into the world of multithreading :D
  • 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
    edited March 2017
    We're not laughing at you.. we're attempting to explain and clarify.
    It's not hit reg, as said already.
    It's from a slower update between client and server that has to be that way due to performance reasons.


    @BeigeAlert
    Correct me if I'm wrong but as I understand it, interpolation has less to do with player latency and more to do with send rate. It's to account for interrupted packets between a player and a server, essentially a safety net to always make the player move smoothly and ensure data is delivered.

    @Kouji_San mentioned tick rate, but that is just the gate keeper and what people are used to from source engine; it's the send rate that determines what interpolation can be used.
    The more frequent you update the player position, the less overlapping coverage you need. (But the tick rate will always need to be set as high or higher than other settings like move rate or send rate.)

    For instance, if you double the frequency that you update the player position to the server, you don't have to have the interp safety net as wide because packets can just be resent if one is missed.

    The default settings are:
    Tick rate 30
    Send rate 20
    Move rate 26 (used to be 30, but really was 27 in reality due to a bug, and true 30 causes performance issues)
    Interp 100 (used to be 150)

    Interp was lowered to 100 from 150 due to me pushing the team to do so a few years ago. It can't be lowered until the send rate is increased.
    And that can't happen until servers can handle the work load.
  • SupaFredSupaFred Join Date: 2013-03-03 Member: 183652Members, NS2 Playtester, Squad Five Blue, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow, WC 2013 - Silver
    IronHorse wrote: »
    Interp was lowered to 100 from 150 due to me pushing the team to do so a few years ago. It can't be lowered until the send rate is increased.
    And that can't happen until servers can handle the work load.

    Were dynamic rates ever considered?
Sign In or Register to comment.