Pshb And What's Going On.

ElvenThiefElvenThief aka Elven Thief (ex. NS Programmer) Join Date: 2002-11-15 Member: 8754Members, Retired Developer, NS1 Playtester, Constellation
edited July 2004 in NS General Discussion
<div class="IPBDescription">I think you're in for a good read</div> [BIGGEST EDIT EVER]
Valve has fixed the bug.
It should be updated to Steam sometime soon, according to the email. GG on this one, everyone.

[Back to original post]


I talked with Nemesis Zero, and although he offered to announce what was going on, I took it upon myself to update you guys.
So, at this point, I'm sure a lot of you are imagining "What is going on with PHSB?" and, "Is it fixed in beta 5?"
The short of it is, we have discovered a lot more than we imagined about the Player Specific Hitbox Bug. As of right now, it is not fixed and with a bit of reason.

Here's the long of it:
Firstly, thanks needs to be extended to the community for putting such an effort into tracking down this bug and finding a surefire way of reproducing it.
For those who aren't familiar with the PSHB, it's a bug that affects player #N on a #N player server. For instance, if you're on a 10 player server and type "status" in your console, you'll find that player 10 will be harder to kill, seem invincible, or completely own you and never seem to die.
At first, I thought, perhaps it was some kind of issue where bullets weren't counting or an invulnerability or some kind of weird error was going on. Turns out, it was a weird error.
You CAN kill a bugged player, but there's a trick to it. If a bugged player is moving, the model you see on your screen is not the model that the server is seeing. Ironically, if a spectator is 1st person viewing you shooting at a bugged player, he will see what the server is seeing.

<b><u>Screenshots and examples</u></b>
Here I am, shooting a "bugged" TyrNemesis. This is a 2 player max server and he is number 2. He is also strafing in each picture, as if he's not moving, he takes damage like the rest of us. In the first 2 shots, I am shooting directly at the model I see (which is not what the server sees). Additionally, my view will render my bullets hitting the fade model and will not show bullet decals on the walls behind. If another player was watching me shoot at the fade, it would look like I was just shooting behind him. The 3rd party would also see sparks, bullet decals, and wonder where the hell I learned to aim (I'd tell em counter-strike - jk).

<img src='http://www.holymight.com/ns/hmgnolead.jpg' border='0' alt='user posted image' />

Here's another picture. You will notice in each picture, that there are no bullet holes behind the fade and that my bullets do render as if they're hitting the fade. There's just no blood.
<img src='http://www.holymight.com/ns/hmgnolead1.jpg' border='0' alt='user posted image' />


Essentially, what the client is seeing is not what the server believes to be true. A listenserver or 1st person spectator does not seem to have this problem.

Now... to kill a bugged player, you just have to lead a bit - A 3rd party onlooker would see me aiming directly at the fade and all my bullets hitting. At the same time, my rendering will show bullet decals on the wall and sparks, BUT it will also show blood, confirming I have actually hit our bugged player.
<img src='http://www.holymight.com/ns/hmglead.jpg' border='0' alt='user posted image' />

This is also hitting the "bugged' fade.
<img src='http://www.holymight.com/ns/hmglead1.jpg' border='0' alt='user posted image' />
RIP AND TEAR
<img src='http://www.holymight.com/ns/hmglead2.jpg' border='0' alt='user posted image' />

AND YOU WONDERED WHERE THE SPARKS BUG CAME FROM - example 4
<img src='http://www.holymight.com/ns/sparks.jpg' border='0' alt='user posted image' />

So, now you say "Yes Thief. Now we know what the bug does, what did you do to fix it?" Firstly, I scanned the crap out of the NS code for anything that would signify rendering a player different, based on being in the last slot on a server. Of course, I found nothing (OMG! what a nub).

However, thanks to the diligence of Grepdashv, Ari, and TyrNemesis, we came up with a little more shocking information...

<b><u>Uh Oh</u></b>

This bug exists in every Half-Life mod. That's right. We've managed to reproduce it in Counter-Strike(1.6 and 1.5), DoD, NS, and even Half-Life Death Match. Also have managed to reproduce it on both Steam and Won versions of Half-life, CS and even NS.

Me and Grep have some demos from on HLDM and CounterStike and successfully reproduced the bug there. Here's a pic Grep compiled from split second screenshots where he is shooting me with a gauss gun by aiming in front of my model - you'll see that the client registers the bounced beam effect like it completely missed me, but there is also blood, as the server has registered a hit and told the client to render it. The corpse in the background is from a previous attempt. This shot gibbed me.

<img src='http://www.holymight.com/ns/bugged3.jpg' border='0' alt='user posted image' />

Now, you've gotta be asking - "how in the world has this never been figured out?" Well... there are some suspicions going around, and other people have noticed it in TFC, as from this "bug report" on the Steam Forums <a href='http://www.steampowered.com/forums/showthread.php?s=&threadid=102551' target='_blank'>Link Here</a> Do a ctrl-f for "hitbox" and you'll find that even TFC gets a "bugged" player that they have to aim in front of to kill. It just appears that the reasoning and way of reproducing it wasn't figured out.

Here's a direct quote:
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Name: Hitscan / Hitbox bug.

Explanation: This is a bug that's occurring frequently on most servers. When in effect, the hitbox bug results in 'afflicted' players being extremely tough to hit successfully with hitscan weapons. The effect appears to move the hitboxes ahead of the player (in that the player is always behind their hitbox). As a consequence, it is like a reverse of the old interp effect, and a return to the days of leading targets. Unfortunately, the faster the class, the more pronounced the effect. A scout with the hitbox bug is so fast and the hitboxes so seperated from the player that using grenades and projectile weapons (like the RPG) is the only way to kill them. No one has ever figured out for sure what causes this bug. It can affect players usiing the rates and configs they've always used. Their game does not suffer as a result, everything appears normal to them. Some players seem to experience this bug more than others, but in general, it can potentially affect anyone. Reconnecting to the server usually has little or no effect (for either the person experiencing the bug, or the players faced with the problem of dealing with the aforementioned player). In general, on an 18 person clanserver, you can expect one or two to be experiencing the bug. Curiously, some people appear to only be partially unhittable (in that a full on shot will do half damage) whilst others are just totally unhittable unless one leads them with the shot by half to one bodylength (sometimes more, if they are a scout).<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Additionally, most other mods don't have players that move as fast as our players do (especially aliens). The disparity between what the server knows and what the client sees is proportional to the speed of the player moving. A blinking fade or flying lerk are damn near impossible to lead to deal any damage. Also keep in mind that for the longest time, the bug was blamed on lag or poor aim. That and a specator seems to see the correct placement of the model, so if you're spectating a guy shooting a bugged player, you'll just assume their aim sucks.

At this point, Ari and myself have already posted on the Half-Life coder's mailing, which many Valve employees do read. Unfortunately, at this moment, we do NOT have a fix for beta 5, as you can probably guess, as this appears to be engine related and affects every Half-Life mod. Or it's a bug that exists in every mod from same usage of the same SDK (I can't find evidence supporting this).
There's a strong chance that Valve is going to see this and read it, and hell, the more publicity,the better chances of getting a fix out there. Voogru has already started attempting work arounds for the last player to see what he can get fixed on the client rendering, but at the moment, we're at an impasse.

I just want to say thanks to the community for all the assistance in attempting to get this bug fixed (especially Saraph, for helping us track the specifics of this bug when our understanding of it was in its infancy, and to Head Crab and Alpha of [C.A.P] For realizing the cause of the bug)
I just feel everyone deserved to be "in the know" now, as it were.


[EDIT] - Here's another update.
Since I've posted this, there seems to be a lot of debate about whether this bug does exist. Some think it's nothing more than a rate or ex_interp change/bug/hack.
While I would buy that, I defend my case as any such change or bug would have to have a uniform effect, no matter what slot on the server you get.
However, a client with the same rate settings in slot 15 of 16 will not have the same problem getting shot as a client in slot 16 of 16. There is no logic in blaming it on rates.

[Big Edit 2] There seems to be a general consensus that I've failed to put credit where credit is due. I named Seraph, Head Crab and Alpha above already as they spearheaded the search to find a way to reproduce the bug (I used Seraph instead of Sarisel - his forum name - as I had talked with Firewater on irc before and that's the name that stuck.)
At the time that I joined the ns dev team as a coder - about 3 weeks ago, this was the first bug I wanted to tackle. I don't know all the politics behind finding the bug, as work had made my playtesting duties wane a bit. I was given Sarisel's document that had been sent to Flayra and went from there.
By that time I got Grep, Ari, Tyr and a variety of playtesters to constantly playtest and we were trying to find varients of ways to make it show or not show - this led to the weird spectator issues. This is where I spent most of the work and it all ended up 2 nights ago with us reproducing on every mod that we could get to run on a dedicated server.
This entire post was meant to be informative, and not to take credit. Take it as you will.
«13456710

Comments

  • SandstormSandstorm Join Date: 2003-09-25 Member: 21205Members
    Hmm...looks like the game isn't applying lag compensation to attacks against the last player. This could be verified if this effect doesn't show up on a LAN.
  • ElvenThiefElvenThief aka Elven Thief (ex. NS Programmer) Join Date: 2002-11-15 Member: 8754Members, Retired Developer, NS1 Playtester, Constellation
    edited July 2004
    Grep has corrected me. Lag does play a factor, but ever so slight. The better connection you have, the closer you will be to what the server sees. However, you will still have offset hitboxes, whereas you won't have offset hitboxes on any other players, no matter where you see the model.

    Additionally:
    <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
    [04:37] <@TyrNemesis^[GP]> try playing with sv_unlag 0
    [04:37] <@TyrNemesis^[GP]> EVERYONE will be bugged
    [04:37] <@TyrNemesis^[GP]> that should be mentioned
    [04:37] <@TyrNemesis^[GP]> sv_unlag 0 makes ALL players behave this way
    <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
  • DrfuzzyDrfuzzy FEW... MORE.... INCHES... Join Date: 2003-09-21 Member: 21094Members
    <!--QuoteBegin-E-Th33ph+Jul 25 2004, 04:01 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (E-Th33ph @ Jul 25 2004, 04:01 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> RIP AND TEAR. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    RIP AND TEAR YOUR GUTS <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->

    nice read <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
  • BahamutBahamut Join Date: 2003-01-20 Member: 12522Members, Constellation
    Wahoo, yet another excuse to explain why VALVe suck <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo--> (check the recent CS bugs if you haven't been watching them appear)

    Thanks for the update, I can now go off at anyone blaming Flayra for the bug and start knocking VALVe as usual <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->

    Baha
  • Red_SquirrelRed_Squirrel Join Date: 2003-12-15 Member: 24414Members
    I've posted this on the DoD official forums for more publicity.

    Good, diligent work from the people that reproduced this bug and tested it in other mods.
  • BijiyBijiy Fantastic Damage Join Date: 2003-11-28 Member: 23697Members
  • BJayDBJayD Join Date: 2002-09-02 Member: 1263Members
    Brilliant. I spent a long time trying to reproduce this in Science & Industry but gave in. I was of course testing on a listenserver which you said doesn't have the bug, so I guess that explains it. Thanks for the information, helps a lot.
  • RyoOhkiRyoOhki Join Date: 2003-01-26 Member: 12789Members
    Excellent work. Good to know we have dedicated people trying to figure this bizzare bug out.
  • milk1milk1 Join Date: 2004-06-30 Member: 29635Members
    isnt the pshb a problem with steam? because i think its in a lot of games si, tfc, i ns, i think cs too
  • IceBaronIceBaron Join Date: 2003-02-25 Member: 13954Members
    <!--QuoteBegin-milk.+Jul 25 2004, 05:14 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (milk. @ Jul 25 2004, 05:14 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> isnt the pshb a problem with steam? because i think its in a lot of games si, tfc, i ns, i think cs too <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    No, he said he found the same problem on WON servers. Just takes a leet community like ns to find these long standing bugs. GJ guys.
  • ElvenThiefElvenThief aka Elven Thief (ex. NS Programmer) Join Date: 2002-11-15 Member: 8754Members, Retired Developer, NS1 Playtester, Constellation
    Nope. We've recreated it in CS 1.5 and HLDM on the Won Version of Half-Life as well as NS.
  • ekentekent Join Date: 2002-11-08 Member: 7801Members
    This thread is sexy <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused.gif' border='0' style='vertical-align:middle' alt='confused.gif' /><!--endemo-->.
  • RadagastRadagast Join Date: 2003-06-29 Member: 17776Members, Constellation
    its a half life thing obviously.

    /me cant wait for hl2.
  • BJayDBJayD Join Date: 2002-09-02 Member: 1263Members
    edited July 2004
    <!--QuoteBegin-E-Th33ph+Jul 25 2004, 09:16 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (E-Th33ph @ Jul 25 2004, 09:16 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> [04:37] <@TyrNemesis^[GP]> try playing with sv_unlag 0
    [04:37] <@TyrNemesis^[GP]> EVERYONE will be bugged
    [04:37] <@TyrNemesis^[GP]> that should be mentioned
    [04:37] <@TyrNemesis^[GP]> sv_unlag 0 makes ALL players behave this way <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
    Sounds like theres a < being used instead of a <= within the sv_unlag code.
  • LittleToeLittleToe Join Date: 2003-08-07 Member: 19163Members
    wow, had know idea it was that bad. thanks for the read.


    btw...

    does this mean we can have the update now? (he asks in a meak voice. dont hit me)

    or are there some other problems that need to be fixed first?
  • KhalessKhaless Join Date: 2003-11-16 Member: 23008Members
    <!--QuoteBegin-Vo0do0-MoNk3h+Jul 25 2004, 05:37 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Vo0do0-MoNk3h @ Jul 25 2004, 05:37 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Sounds like theres a < being used instead of a <= within the sv_unlag code. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    yeah that sounds like the most possible situation. Hope valve decide to haul some **** and fix it and use this magical steam thing they claim to have to deliver the fix to all of us <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->.
  • TyrNemesisTyrNemesis trigger_CUT&#33; Join Date: 2003-09-17 Member: 20942Members, NS1 Playtester, Contributor, Constellation
    edited July 2004
    I hope this isn't premature, but regardless, I think everyone wants to see it come true.

    Congratulations to everyone involved in helping us bring this bug to the light of day. NS is truly a game about teamwork, and it's teamwork that's allowed us to make the progress we've made here.

    Much love to everyone out there, particularly Head Crab, Alpha, Saraph, grep, ari, Elven, voogru, KaiserRoll, Chimpzealot, JazzX, Yumosis, Magitek, myself, and everyone else that's made this possible.

    W00t!

    *edit: I made up a nice tombstone. It's up to valve to dig a nice, deep grave.*
  • Red_SquirrelRed_Squirrel Join Date: 2003-12-15 Member: 24414Members
    <!--QuoteBegin-LittleToe+Jul 25 2004, 11:40 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (LittleToe @ Jul 25 2004, 11:40 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> wow, had know idea it was that bad. thanks for the read.


    btw...

    does this mean we can have the update now? (he asks in a meak voice. dont hit me)

    or are there some other problems that need to be fixed first? <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    The ball is in Valve's court now.
  • AfrAfr Join Date: 2003-05-13 Member: 16240Members, Reinforced - Shadow
    Lets all hope they fix it.
  • KaineKaine Join Date: 2002-08-07 Member: 1096Members, Constellation
    wow. had no idea it was so widespread and long standing. gg NS community & devs for nailing it down like this. let it never be said that NS developers stick their heads in the sand when the going gets tough. now we've gotta hammer at Valve to get something done.
  • CodemanCodeman Join Date: 2002-11-21 Member: 9497Members, Constellation, Reinforced - Shadow
    go go NS devs! Can you say 0wn3d? (Tracking down a bug is often the hardest part of fixing it..... This much I know D: )

    RIP AND TEAR!
  • Hologram0Hologram0 Join Date: 2002-11-19 Member: 9303Members, Constellation
    Good read. Nice work.


    See these are the type of updates the community wants to hear...



    Wouldn’t the simplest work around for this be to simply make the server one slot larger and have one reserve slot, as a temporary work around until valve fixes their problem?
  • CodemanCodeman Join Date: 2002-11-21 Member: 9497Members, Constellation, Reinforced - Shadow
    There's plugins and hax to do that already iirc, I think AusNS was using one for a while....
  • Soylent_greenSoylent_green Join Date: 2002-12-20 Member: 11220Members, Reinforced - Shadow
    edited July 2004
    <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Wouldn’t the simplest work around for this be to simply make the server one slot larger and have one reserve slot, as a temporary work around until valve fixes their problem?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->

    Maybe it could even be done as a plugin without touching the MOD code, a bot of somekind that allways sits in spectator and does whatever it takes to become the bugged last player in the list?

    <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Sounds like theres a < being used instead of a <= within the sv_unlag code. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->

    That would be such a shamefull error to make. <!--emo&:D--><img src='http://www.natural-selection.org/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
  • ThinGThinG Lord of wub and vlaai Join Date: 2003-04-11 Member: 15400Members, Reinforced - Supporter
    Thank you for the information. Threads like these take away alot of confusion and clear up alot of things. Good luck with working this out, hopefully cooperating with Valve.

    Keep up the good work.
  • LittleToeLittleToe Join Date: 2003-08-07 Member: 19163Members
    edited July 2004
    [/QUOTE]
    The ball is in Valve's court now. [/QUOTE]
    i know. that is why i asked <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
  • CodemanCodeman Join Date: 2002-11-21 Member: 9497Members, Constellation, Reinforced - Shadow
    <!--QuoteBegin-Soylent green+Jul 25 2004, 10:28 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Soylent green @ Jul 25 2004, 10:28 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Sounds like theres a < being used instead of a <= within the sv_unlag code. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->

    That would be such a shamefull error to make. <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo--><!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->

    The little mistakes are ALWAYS the hardest to find, so that would come as no surprise I'm sure....

    Someone will be beating their head against thge desk for hours over this one XD
  • UKchaosUKchaos Join Date: 2002-08-10 Member: 1132Members
    Is it possible to get around this problem by creating a dummy last slot?
  • ZykoZyko Join Date: 2002-12-31 Member: 11653Members
    edited July 2004
    if you have a crappy aim, youll automaticly hit? <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->..

    j/k.. its bad news tbh.. i guess im not the only one who's swearin when i dont kill that buggy player.

    <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Is it possible to get around this problem by creating a dummy last slot?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
    Hopefully, if you got a 20 player server then make it 21 with one slot not open <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->.
    Im not an expert but thats my guess
  • ace0manace0man Join Date: 2003-05-17 Member: 16422Members, Constellation
    um I dont see any credit to the people who actually figured this out - forgive me if im mistaken....

    Credit where credit is due I say!

    <a href='http://www.unknownworlds.com/forums/index.php?showtopic=70356&hl=' target='_blank'>http://www.unknownworlds.com/forums/in...topic=70356&hl=</a>
This discussion has been closed.