Bug: Severe flaws in the server side validation for The Nurse's power
Bug #3673
Severe flaws in the server side validation for The Nurse's power
| Status: | Open |
| Priority: |
Critical |
| Added by: |
|
| Assigned to: |
Unassigned
|
| Due date: | |
| Reported for: | |
| Actual Result: |
The Nurse is buggy after server validation, many blinks lead to your position being slightly readjusted despite being in a valid position, time required for blinking certain distances can vary based on ping, blink time window is too strict.
|
| Expected Result: |
The Nurse is able to blink seamlessly and smoothly, the server validation will not incorrectly adjust the player's position, the time it takes to blink certain distances should be consistent and any valid blink possible on the client should be accepted by the server.
|
| Severity: |
Blocker
|
| Reproducibility: |
Always
|
| Platform: |
Steam
|
| Additional Notes & Comments: |
Not set
|
Steps to Reproduce
- Reproducing the chain blink time window bug:
- Have any significant amount of ping; 20+ ms works. Load into a match as The Nurse.
- Charge your first blink; charge time doesn't matter.
- After blinking once, immediately start charging your chain blink; send the chain blink at the very last moment.
- If timed correctly, you will hear the blink sound and see yourself start blinking as if you were going to blink but instead will be forced to be fatigued in place.
- --------------------------------------------
- Reproducing the regular blink setbacks:
- Play as The Nurse until you experience the server incorrectly correcting your valid position.
Explanation
This is an explanation of how the current server validation with The Nurse's blink ability is flawed and severely handicaps the ability.
Chain Blink Window Validation:
The current server validation attempts to prevent you from chain blinking if you are out of the time window. However this time window does not take into account the player's ping, it leads to cases where the player is able to chain blink client side but the server believes their blink window duration has ended, the server will then artificially force the player to be fatigued earlier than intended. Depending on the timing of the player releasing their blink, they can experience two different results outlined below, both of which heavily affect gameplay.
The blink is released extremely late and the blink is prevented, you start the blink animation client side but never begin the blink movement as the server forces you to be fatigued.
The blink succeeds but the server forces you to be fatigued mid blink, this causes you to be teleported instantly to the end blink position and lagged back multiple times extremely aggressively, and you can end up not being able to move for an extended period of time after the blink.
On top of this, failure to account for ping in the blink time window causes higher ping players to have a shorter time window to charge their chain blink. This is obviously a heavy nerf and is unfair because it prevents legitimate high ping players from doing what lower ping players can do.
The solution is to simply be more generous with the blink time window and at the very least, add the player's ping into the time window. I have attached videos showing these false flags, the last minute blinks that should totally be possible as well as the chain blink time window being shorter depending on your ping.
Blink Position Validation:
The current validation will often try to correct your position and kill your momentum at the end of a blink even if your position did not need to be corrected. This significantly hurts the overall experience and is essentially a massive nerf to The Nurse because it slows you down and makes gameplay feel clunky. The validation also requires people to charge their blink for a longer period of time to blink certain distances, this period of time scales with their ping, the higher someone's ping is, the longer it will take for them to blink through the same object. The player should only be set back to a previous location if the end position is truly invalid and right now something with the blink validation code on the server is not 1:1 with the client, it is also important to note this issue did not exist in older versions of the game where server side blink validation did not exist. I have attached videos showing the setbacks that should not have happened and the massive difference in the blink time after server validated blinks.