Why in online games ping of 100 is stuttery but stable yet crossing line of 150 just produces unpredictable outcomes like characters teleporting?

557 views

Why in online games ping of 100 is stuttery but stable yet crossing line of 150 just produces unpredictable outcomes like characters teleporting?

In: Technology

5 Answers

Anonymous 0 Comments

Generally the basis this question relies on doesn’t apply.

There is neither a particular line at 150ms nor is the behaviour necessarily unpredictable. It simply depends on the implementation of the game the user is playing.

Ping, or latency, is simply the round-trip-time of a signal. This means a small packet of data is sent to the server, then back to you and that time is measured. So it is a two-way protocol.

Assume a very simplified scenario: We have a game with two players connected. The server receives the position of the players and broadcasts it to all other players.

Let’s say the players have a latency of 10ms each, thus player A sends his position to the server in 5ms and player B receives the new position 5ms later for a total of 10ms. This would be well within the realm of displaying it in real-time at above 60fps. (because it is lower than 1/60 = 16.66ms)

Now lets say player A has a ping of 100ms, the signal reaches the server in 50ms, then the server sends it to player B who receives it 5ms later for a total of 55ms. This now would be barely above 18fps (1/0.055 = 18.18).

For this very reason games don’t just render stuff in real time. Instead they “guess” (extrapolate) behaviour that is likely to continue.

So for instance player A last moved from west to east, thus it is likely for him to continue moving in that direction. So the server could for instance send a position, velocity and direction to player B. Player B then renders this movement at the best possible frame rate.

As long as player A actually continues moving from west to east player B will have no signs of lag (assuming the server takes latency into account under these ideal lab conditions) because the update matches the prediction. However if player A suddenly stopped moving, then this change will only arrive in about 55ms, as we’ve said earlier. But player B already rendered the position of player A to be farther in the east, the update results in a “snap back” to the actual position. Thus you have “rubber-banding” in games.

This effect obviously gets more pronunced the more the prediction differs from the actual behaviour.

However, as you can see, this form of behaviour is absolutely not unpredictable. We knew beforehand that player A would snap back in this scenario because the position player B was prediction turned out to be wrong.

One can also see that the impact heavily depends on how “real-time” the game has to be. In MMOs where you’re capable of queuing spells and have long casting times this isn’t as crucial. Also imagine online Chess, you could easily have hour long delays between moves and still couldn’t tell a difference between a conscious delay and a delay because of latency. (unless you play chess with a timer, obviously) Simply because moves in Chess don’t have to be done in real-time as it is a turn-based strategy game.

For this reason people will be able to play Chess (without timer) with their friends on Mars in the future, but won’t be able to play even the slowest real-time MMO. (because Mars is on average 12.6 light minutes from Earth)

You are viewing 1 out of 5 answers, click here to view all answers.