Search Unity

latency compensation consequences

Discussion in 'FPS.Sample Game' started by BloodMarked, Dec 24, 2018.

  1. BloodMarked

    BloodMarked

    Joined:
    Dec 11, 2013
    Posts:
    20
    i was thinking about what effects the fps sample latency compensation has on the user experience.

    based on this Explanation i made some assumptions on how this compensation affects the Gameplay.
    rtt_simple.jpg




    1 ) people can receive damage after going behind cover.

    because the server will do hit detection based on the frame which the shooter saw at that point in time, the other person might already be behind cover when receiving the damage. this can be for a max of 2 round trip times + Interpolation (280ms).
    rtt_cover.jpg


    2 ) there should be a peekers advantage.

    if player1 peeks player2 and shoots at the same time (assuming Damage is interpolated the same way that the Position is) player2 will receive Damage as soon as he sees player1.
    if Damage was dealt immediately, he would receive Damage before seeing Player 1.
    rtt_peekshoot.jpg


    3 ) prefire is useless.

    unfortunately, even if Player 2 was prefiring the Position Player 1 moves into, he would be unable to deal Damage, because his shot will be processed based on what he sees.
    rtt_prefire.jpg



    4 ) the Players dont see the peekers advantage.

    so if Player 1 peeks Player 2, Player 2 can deal Damage 180ms later than Player 1. but he does not notice this, because he himself can deal Damage as soon as he sees Player 2 peek.
    rtt_peekdelay.jpg



    that beeing said, i have tested None of the assumptions.

    i think this is a really good balancing of Networking delay, because most People get what they see and there is a small Advantage to peeking over Holding an angle.
     
    AggressiveMastery likes this.
  2. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,177
    1) this is common issue on shooters and compromise made to favor the player who actually shot other on their screen. While it will feel bad once you get around corner and die there isn't really any good alternative to this. Player who got shot did get shot in the open, it's just delayed to the other player so it is fair. If we'd allow invulnerability to players with huge ping (by not allowing damage once they get behind an obstacle), people would just start adding artificial ping to get huge advantage and we can't allow this.

    2 &3) I don't even get the point of these. If player shoots at nothing, player should not get any reward, this works as designed unless there's actual bullet travel time here. If there's bullet travel, then it should be taken into account for the moment bullet should hit the other player and it wouldn't be tied to visibility at the moment on firing but the moment bullet would hit the player on the firing player's computer.

    4) is unfortunate issue but afaik there isn't better way to deal this with the network connections we have today.