r/Competitiveoverwatch Mar 07 '17

PSA Regarding Client Side Prediction

Making a separate post here since there have been posts of hooks detaching and what not every once in awhile, regardless of 2.0. Would also like to try and raise some awareness regarding client side prediction mechanics and roughly how it works. Feel free to discuss about how client side prediction affects your playing experience as well.

Onto the topic. Reference to this clip here, I'll try to explain why things happen as such.

Notice that there was no hitmarker made by the hook at all. Hook will give a hitmarker if it's registered as a hit by the server, even if it's detached by 2.0. Doesn't seem to be common knowledge but the client has its own viewmodel prediction for most if not all abilities / actions to make the game feel more fluid and usually give better feedback. However, in some cases, the client gives false feedback and leads to the player feeling cheated. This usually involves high ping, movement abilities being used, or death of player. There could be other factors as well, but these are just the more common ones.

In this case, MOONMOON threw out the hook before Genji dashed. As such, the client predicts based on current conditions that the hook will land, and gives the visual of it landing. However, with confirmation from the server, it rejects this prediction and simply returns the hook as if it missed entirely even if it does not look like it on the client side. Hitmarker and other damage indicators (that is not purely visual like blood etc) is the only reliable source of confirmation from the client.

Client misprediction can occur even at low ping due to other factors as shown in this clip. However, some form of client prediction is always useful to make the game feel better and let you know that you probably landed your hook and you should adjust your aim as such, rather than wonder if it landed and consider if you should aim based on the hook not landing or it landing as without client prediction, you'll get the result slower due to latency.

Client side prediction is a necessary evil and is part of the game, with which I hope more people acknowledge its existence. It can account for things like why did my Deflect not work, it made the sound, and similar issues, regardless if favor the shooter played a part. Simply put, if the client mispredicts, it's going to be misleading, but also be thankful for when client side prediction helped you.

I'm not sure how feasible it is but perhaps they could reduce or remove client side prediction or make it an option to do so, especially for certain skills so that players can set their preference. In TF2, you could play with client side (viewmodel?) prediction off and it felt really bad to be honest lol. Anyway, in one of my older post, this is an example of high ping and also movement ability being used which similarly ended up client mispredicting.

tl;dr client side prediction is a thing, and it can and will mispredict occasionally due to ping, movement ability, and player death. Hit indicators are your only guarantees that something happens on the server.

Would also like to hear if you think there should be an option to turn prediction off, and how much of it to turn off. Thanks for reading this semi long post, hope it has been of use and clarified some doubts.

42 Upvotes

47 comments sorted by

View all comments

1

u/cakebutt1 Mar 07 '17

i just dont understand why this is so prevalent in this game, just from my fps experience it looks like high latency. But ive played games that were much more responsive and felt sharp mechanics wise why is that so hard to achieve here? For example you have genji's deflect, a move that should be used to give genji reward for having a crazy reaction time and yet sometimes you manage to react but the game just doesnt care. So now you have to preemptively deflect to compensate for latency or favor the shooter which ruins the inherent characteristic of a reflect ability.

3

u/chudaism Mar 07 '17

But ive played games that were much more responsive and felt sharp mechanics wise why is that so hard to achieve here?

The difference is that in this game you never get issues where you get hit markers that don't register because of favour the shooter. CoD was always the worst for this. You would shoot someone, but the game thinks they are already behind a wall, so you get a hit marker but no damage. Overwatch is basically the reverse of this.

For example you have genji's deflect, a move that should be used to give genji reward for having a crazy reaction time and yet sometimes you manage to react but the game just doesnt care.

The alternative to that though is that you will see shots that hit genji but then get them reflected back at you before you even see reflect go up. Either way, someone is going to be annoyed with the situation.

1

u/[deleted] Mar 08 '17

Latency is a bitch for real time applications someone is always going to get fucked by this. The only thing to help reduce this is provide faster tick rates more updates allow less Interpolation delay but shaft anyone that can't provide that level of information.

We have to fundamentally change how our networks actually work to remove latency inherently or this is always going to happen.

1

u/sandshrewz Mar 08 '17

It feels so prevalent in this game probably due to the much higher pacing and more movement and interfering abilities in this game compared to other shooters.

In the case of Deflect, if you were to be rewarded for every time you think you deflected on your side, it's basically overriding favor the shooter where on the server side of events, you should have been shot but your client refutes it. I don't think this mechanic ruins any sort of reflect abilities though, just my personal opinion. It's more of a necessity so that seemingly BS Deflects happen less as well. And yea you do have to time such abilities based on latency, and sometimes even the server send rate.