Announcement

Collapse
No announcement yet.

hitboxes - client-side or server-side?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    hitboxes - client-side or server-side?

    I remember to have a problem in older Unreal games when i was playing with pings like 120, my shots come out with some lag, the same thing does not happen in some more recent games like battlefield, my shots come as soon as i click to, even with 120 ping, so my question are, u guys have decided what system you will use for that? What are your opinions?

    I´m not programmer so maybe i´m talking a nonsense question (if i am please fell free to delete my thread)

    Thanks!!!

    #2
    Battlefield has client authority - this means the client can actually only say "I hit RandomPersonA" and the server might check on its end if it is possible and not just some hacked call. Such system has issues for players with lower ping if they play against high pingers as they mostly die behind corners.

    Steve Polge currently works on a system to improve the visual quality of a client to feel that effects are playing directly but the server still does everything (like hit detection and damage players). He mentioned it in the recent stream:
    http://youtu.be/Lf13w7qydbw?t=22m43s


    PS: Welcome to the forums.
    ] Map Scaler Tool | Betrayal for UT4 | No Spawn Protection | No Pickup Timer | BioLauncher (revived) | ForcePickupSpawn | Map cosmetics::P | Safe Spawn::P | Why numbers for Health/Armor suck!::ANALYSIS/CONCEPT
    ] UT3 Addons: NoMoreDemoGuy | PickupRespawnTweak | Mutate Spec | MutePawnSounds | NoPlayerBeacon | Epic FTW | Epic FOCK | TripodSound (... and many more)

    Comment


      #3
      thanks for the fast reply RattleSN4K3!!!

      Nice that the developers are thinking about that problem! This problem made old unreal´s not playable for me since my region do not have any servers online anymore (i live in Brazil).

      Thanks for the welcome, hope i can help the game development in some way!

      Comment


        #4
        Steve Polge currently works on a system to improve the visual quality of a client to feel that effects are playing directly but the server still does everything (like hit detection and damage players). He mentioned it in the recent stream:
        http://youtu.be/Lf13w7qydbw?t=22m43s
        Sad. They sound like they implement a time rewind technique with client side faking.

        Please don't do that. I posted alot why this is bad and why real client side hit detection is the only way to handle hitscan.

        Look at the discussion here:
        https://forums.unrealtournament.com/...Instagib-Shock
        and here:
        https://forums.unrealtournament.com/...t-registration

        Time rewind has issues with ghost shots that are really annoying. Ghost shots happen if the server had the information already that a player changed direction while on the client he is still walking in the same direction -> miss although you hit perfectly.
        Its extremely frustrating and there is no reason to implement that. Cheating is the only argument against client side hit detection and that argument is not valid because there will be cheats no matter what technique is implemented.
        Last edited by ecreif; 09-29-2014, 09:56 AM.

        Comment


          #5
          The argument against client side hit detection in UT is not about cheating. Being able to avoid shots through movement is a very important part of UT, so we don't want to allow client-side hits that were actually avoided by the other player. In addition we want a system that doesn't provide an advantage for having a high ping: client-side hit detection does in that situation. Finally, we need to have a system that also optimizes projectile weapons in high ping environments, since projectile weapons are a major part of the UT armory.

          Comment


            #6
            Originally posted by Steven Polge View Post
            Finally, we need to have a system that also optimizes projectile weapons in high ping environments, since projectile weapons are a major part of the UT armory.
            Could you please define "high ping environments"? I refuse to play on anything over 120.
            BeyondUnreal Podcast
            r/UnrealTournament Moderator

            Comment


              #7
              Originally posted by TheWhiteDragon View Post
              Could you please define "high ping environments"? I refuse to play on anything over 120.
              Anything with noticeable latency, significantly worse than LAN. I'd expect the system I'm working on to make 50-120 msec pings much more playable, and provide significant benefits at any higher ping than that.

              Comment


                #8
                Originally posted by Steven Polge View Post
                Anything with noticeable latency, significantly worse than LAN. I'd expect the system I'm working on to make 50-120 msec pings much more playable, and provide significant benefits at any higher ping than that.
                Sounds like a solid plan. I think everyone is looking forward to testing it. Projectiles might be tough to correct beyond 80 ms, and combos might look really strange beyond 50-60 ms.

                Comment


                  #9
                  All I know is with hitscan, I want to aim at the players, not a white circle invisible most of the time with a mind of it's own. That's also two to three body lengths away from the player.

                  Comment


                    #10
                    Originally posted by Steven Polge View Post
                    The argument against client side hit detection in UT is not about cheating. Being able to avoid shots through movement is a very important part of UT, so we don't want to allow client-side hits that were actually avoided by the other player. In addition we want a system that doesn't provide an advantage for having a high ping: client-side hit detection does in that situation. Finally, we need to have a system that also optimizes projectile weapons in high ping environments, since projectile weapons are a major part of the UT armory.
                    Of course movement is very important in UT. That is why I love UT more than any other arena shooter. Because of that I even had the idea to move hit detection of projectiles to the client that receives the projectile damage so that players can really perfectly avoid projectiles. (+ Server side extrapolation etc.). Its really just about making the experience perfect in the ping range you mentioned (50-120, though it even effects pings as low as 20).

                    The problem with your argument is that movement does not effect hitscan weapons (At least not significantly). A good hitscan player can't be fooled by good movement. Even if, the moving player can still account for ping easily because avoiding hitscan is already a timing skill.

                    Another problem with time rewind is that its easy to exploit the mechanics if you know you just have to change direction at the right moment. The hitscan player will then miss because on his screen the enemy is still moving in the other direction.

                    Despite that all, the player that would be hit by a hitscan weapon can not even tell the difference of whether he actually avoided or not no matter what hit detection technique is used.


                    For me as a hitscan player it is really frustrating because I definitely play differently on time rewind servers. I have to time right when I shoot because I have to account for other players to exploit (maybe even unconsciously) the problem described above.
                    With client side hit detection I can just seek and fire which allows to reach higher skill levels with hitscan. Therefore it should of course be nerfed even more, so the game does not turn into a hitscan fest.
                    But I am fine with that as long as I am not capped in skill and annoyed due to ping.

                    Edit (Forgot to mention):
                    For high ping I just suggest a system where the detection technique changes depending on how much time a packet took to get to the server. The cap should be around 100ms in my opinion.
                    Last edited by ecreif; 09-30-2014, 09:31 AM.

                    Comment


                      #11
                      Timing your direction changes and being unpredictable is suposed to be an effective movement strategy against hitscan weapons, and has been in all past UTs. Rewind doesn't make it more effective, it just avoids it being negated when your opponent is firing a hitscan weapon on a high ping connection.

                      Comment


                        #12
                        Originally posted by Steven Polge View Post
                        Timing your direction changes and being unpredictable is suposed to be an effective movement strategy against hitscan weapons, and has been in all past UTs. Rewind doesn't make it more effective, it just avoids it being negated when your opponent is firing a hitscan weapon on a high ping connection.
                        It is because there was never real client side hit detection in UT so changing direction was always something a hitscan player could not react to, he can just predict it.
                        So anything besides client side hit detection changes the hitscan skill into a timing and prediction skill which would not be required if players could hit like in a lan environment.

                        I would say that i am very good with hitscan weapons. Whenever I played in LAN I had to "reteach" myself to use my reflexes again rather than prediction and "letting the player run into my crosshair" (which basically is timing) like on the internet.
                        That is because I can rely on the fact that my crosshair really is in the right place whenever I aim onto a player in LAN.

                        However on the Internet these misses cause me to loose confidence in my precision. But confidence is required as you can see in other aim based games like "osu!" (Its a rythm game). Whenever you start to feel sloppy or you think something is wrong with the hardware or you have lag you start to miss because it has an effect on your muscle memory and you unconsciously try to fix the problem with wrong measures.

                        I know this sounds like some airy arguments but I observed these things in the last 15 years of my gaming career so for me to fully use my muscle memory skills I need hit detection without wrong feedback.

                        I can understand the movement argument. Many players can be outmoved by right timing, but my argument is that it does not change using client side hit detection. You will easily adapt to the ping.
                        That is because when encountering a new player on a server you start to figure out how your opponent shoots and when and where he aims at. After that (which is some kind of process) you start to get your timings right to outmove these shots. These timings already include the ping. So ping does not matter here.

                        Rewind is a random way to make hitting harder with hitscan weapons depending on hardware. So if that is the goal I would rather nerf hitscan by adding a fixed delay or by adding some random recoil to it.


                        For high ping I am on your side. High ping should not be favored and authority should go to the server then because everything will break with pings to high, and no technique can fix that so the best compromise is server authority. But my concerns are for the usual players that play with pings around 50ms.

                        With high ping by the way time rewind will fail anyway because it becomes lag fest with much teleporting when using momentum changing weapons like Shock (Though client side hit detection has that problem, too).
                        Last edited by ecreif; 09-30-2014, 12:19 PM.

                        Comment


                          #13
                          I think the best will be to use different algorithms for different weapons.

                          For sniper weapons - the one that is implemented in ut2k4 in UTcomp (I guess it is based on rewinding coordinates for the ping of the attacker). As an experienced player I can say that it made the game much better - much more players now play on servers with that. It has only one drawback - allows to hit sometimes through walls, which is unfair for hiding player. However it doesn't give advantage for the attacker as on his screen target is not behind the wall yet (on his screen he does a correct shot).

                          For projectile weapons - idk may be some other will be better.

                          Comment


                            #14
                            Hmm I just thought of a good imaginary experiment on this situation.

                            The case: 2 players - one have ping 20ms another 80ms (for one direction). First player hides behind a wall then walks out to look around and hides behind the wall again. Player 2 when he notices Player 1 shoots at his head with sniper rifle. For simplification - player 1's moves are immediate and player 2 shoots with a 10ms reaction.

                            Now let's think how this situation should look on players screens and the server side:


                            You can think the same way what will happen if pings are vice versa and if player 1 hides faster than reaction time (<10ms). I am lazy to do such a pretty table again for those cases - but to me the model seems working well in all of them too.

                            Well also I have thought that ping varies from packet to packet and considering this model there may be errors related to rewinding to incorrect amount of time (should result in registering shots on client but not on server sometimes). To eliminate this - client should send with each shot packet also the latency time of packet with coordinates of player 1, which he received at the moment of shot (simply - the latency of the last coordinates)

                            I hope what I have written here is at least at some extent close to how things work actually =)

                            Comment


                              #15
                              posted a video to show the problem i get with the 03/10 build, i must have a 120ms ping in this video.

                              Comment

                              Working...
                              X