how people on opposite sides of the earth can play video games together seemlessly when these games require split second actions

1.12K views

how people on opposite sides of the earth can play video games together seemlessly when these games require split second actions

In: 4913

50 Answers

Anonymous 0 Comments

They don’t. Servers are usually divided by region for this reason. The latency of a straight up wire around the world would be less than a second but would still be significant for things like fighting games. Fighting games are especially tough for online play since the entire focus of play is on the other player objects. There is usually little/nothing else to interact with, so keeping state in-sync is extremely important. Small desyncs can be handled gracefully but once it reaches a certain point the two games can’t be synced and it would have to be terminated.

Things like racing games are a little easier since the players don’t actually interact as much. In realistic racers where players cannot affect the state of the track at all, you can actually play with infinite (indefinite) latency. That is to say that you don’t actually need to play at the same time, you can just record your run and replay it on the other side. You can then race against this recording as many times as you like.

FPS games are kind of a middle ground between things like fighting and racing games, since most of the gameplay involves roving around a map that doesn’t change (usually) but then the apex of the action is all player interaction. You couldn’t really play against a straight up recording in this case but you can fudge the latency in other ways. For example, dead reckoning. If you know the latency of a player you can calculate what their position WOULD be given their current speed and heading. If you do this with relatively low latency, then corrections and adjustments will be barely noticeable, since the expected and actual positions will be extremely close. In higher latency scenarios, you’ll notice players ‘flickering’ or ‘teleporting’ more.

An extremely pathological case exists in FPS games, however. Since players moving under dead reckoning move under pure inertia, rather than intelligence. So if you as a player run up to a corner and stop, because you’re aware of an opponent is around the corner, an opponent with high latency will see you to continue moving past that corner for however long their latency interval is. If the opponent puts a shot into your character before the latency resolves your position back behind the wall, this shot will more often then not be registered as valid by the latency resolution system. Even if it doesn’t register as valid, the opponent is still aware of your position when they wouldn’t have otherwise known that. This means that players with a higher latency actually have an advantage, which is why they are often kicked from FPS servers.

Anonymous 0 Comments

They don’t. Servers are usually divided by region for this reason. The latency of a straight up wire around the world would be less than a second but would still be significant for things like fighting games. Fighting games are especially tough for online play since the entire focus of play is on the other player objects. There is usually little/nothing else to interact with, so keeping state in-sync is extremely important. Small desyncs can be handled gracefully but once it reaches a certain point the two games can’t be synced and it would have to be terminated.

Things like racing games are a little easier since the players don’t actually interact as much. In realistic racers where players cannot affect the state of the track at all, you can actually play with infinite (indefinite) latency. That is to say that you don’t actually need to play at the same time, you can just record your run and replay it on the other side. You can then race against this recording as many times as you like.

FPS games are kind of a middle ground between things like fighting and racing games, since most of the gameplay involves roving around a map that doesn’t change (usually) but then the apex of the action is all player interaction. You couldn’t really play against a straight up recording in this case but you can fudge the latency in other ways. For example, dead reckoning. If you know the latency of a player you can calculate what their position WOULD be given their current speed and heading. If you do this with relatively low latency, then corrections and adjustments will be barely noticeable, since the expected and actual positions will be extremely close. In higher latency scenarios, you’ll notice players ‘flickering’ or ‘teleporting’ more.

An extremely pathological case exists in FPS games, however. Since players moving under dead reckoning move under pure inertia, rather than intelligence. So if you as a player run up to a corner and stop, because you’re aware of an opponent is around the corner, an opponent with high latency will see you to continue moving past that corner for however long their latency interval is. If the opponent puts a shot into your character before the latency resolves your position back behind the wall, this shot will more often then not be registered as valid by the latency resolution system. Even if it doesn’t register as valid, the opponent is still aware of your position when they wouldn’t have otherwise known that. This means that players with a higher latency actually have an advantage, which is why they are often kicked from FPS servers.

Anonymous 0 Comments

Basically each client is running its own separate instance of the game, so the reactions to what you did happen locally right there. Then the animation of what the other players do ALSO happens locally but based on guesswork that might be totally wrong.

Your client game computer software “thinks” thusly: “The last time I checked, that remote other player was traveling at a velocity vector of 8km/h to the south and slightly downward at 1 km/h down the slope, so I’ll keep moving that player avatar that direction and make its legs walk accordingly, even though I don’t know what that player’s inputs are. MOST of the time they aren’t changing their input as fast as I’m simulating it, since I’m a fast computer and they’re just a human and humans are sooo slooow. So MOST of the time they will still be doing the same thing for an eternity, like a whole 500 milliseconds or more. So my guess where they will be standing next will be right most of the time because most of the time they didn’t press a new key or move their mouse since last time.”

Then the remote player does something that invalidates the prediction the local computer made, like stop holding down the “W” key so they didn’t really move as far as the local computer thought they would, Or they did keep holding “W” but moved the mouse a bit so their walking path curved when your local computer predicted it would be going in a straight line.

Every so often, the Server sends a brief burst of extra update data to the client describing the correct position of the other player, where it *should* be. Then the client computer thinks like this: “Well I thought the other player was going to be over here, and I already rendered that and showed it to my local player, so I guess I need to snap teleport the other player to the newly corrected spot. I was off by a whole whopping 0.05 meters! I hope my player doesn’t notice that the other guy just teleported a 5 whole centimeters to the left!”

And of course, being a human, you don’t notice. The animation still looks smooth enough that you see a smooth curving walk instead of a bunch of straight line segments with instant corrections bending the lines.

Until there’s a moment of extra lag, so the local computer has to rely on that prediction from stale player movement info longer than it really works well for. THEN the human player really notices as the correction is more obvious and you see the other person look like they’re walking by way of jittery teleport jumps.

Anonymous 0 Comments

Basically each client is running its own separate instance of the game, so the reactions to what you did happen locally right there. Then the animation of what the other players do ALSO happens locally but based on guesswork that might be totally wrong.

Your client game computer software “thinks” thusly: “The last time I checked, that remote other player was traveling at a velocity vector of 8km/h to the south and slightly downward at 1 km/h down the slope, so I’ll keep moving that player avatar that direction and make its legs walk accordingly, even though I don’t know what that player’s inputs are. MOST of the time they aren’t changing their input as fast as I’m simulating it, since I’m a fast computer and they’re just a human and humans are sooo slooow. So MOST of the time they will still be doing the same thing for an eternity, like a whole 500 milliseconds or more. So my guess where they will be standing next will be right most of the time because most of the time they didn’t press a new key or move their mouse since last time.”

Then the remote player does something that invalidates the prediction the local computer made, like stop holding down the “W” key so they didn’t really move as far as the local computer thought they would, Or they did keep holding “W” but moved the mouse a bit so their walking path curved when your local computer predicted it would be going in a straight line.

Every so often, the Server sends a brief burst of extra update data to the client describing the correct position of the other player, where it *should* be. Then the client computer thinks like this: “Well I thought the other player was going to be over here, and I already rendered that and showed it to my local player, so I guess I need to snap teleport the other player to the newly corrected spot. I was off by a whole whopping 0.05 meters! I hope my player doesn’t notice that the other guy just teleported a 5 whole centimeters to the left!”

And of course, being a human, you don’t notice. The animation still looks smooth enough that you see a smooth curving walk instead of a bunch of straight line segments with instant corrections bending the lines.

Until there’s a moment of extra lag, so the local computer has to rely on that prediction from stale player movement info longer than it really works well for. THEN the human player really notices as the correction is more obvious and you see the other person look like they’re walking by way of jittery teleport jumps.

Anonymous 0 Comments

They can’t. I played Supreme Commander with a friend in New Zealand (I’m in the UK) and that was fine because the game has a 500ms input delay built into it so the 400+ ping was absorbed. Supcom also uses peer to peer networking rather than client/server so the gamestate is maintained across all players simultaneously and that’s fine as long as nobody pings above 500.

But then we tried to play Rocket League and it was an utter mess. It’s basically impossible to play an action game with more than 150 ping and ideally you want it lower than 80. So that means that people in the US can play together fine, and people in the UK can play with most of Europe and the US east coast alright. Wouldn’t want any bigger distance than that though.

Anonymous 0 Comments

They can’t. I played Supreme Commander with a friend in New Zealand (I’m in the UK) and that was fine because the game has a 500ms input delay built into it so the 400+ ping was absorbed. Supcom also uses peer to peer networking rather than client/server so the gamestate is maintained across all players simultaneously and that’s fine as long as nobody pings above 500.

But then we tried to play Rocket League and it was an utter mess. It’s basically impossible to play an action game with more than 150 ping and ideally you want it lower than 80. So that means that people in the US can play together fine, and people in the UK can play with most of Europe and the US east coast alright. Wouldn’t want any bigger distance than that though.

Anonymous 0 Comments

I feel like part of this is due to the fact that we typically DON’T play with people on the opposite side of the world.

Every online game I’ve played had a part where I select my server region (continent) before I get into the game.

Anonymous 0 Comments

I feel like part of this is due to the fact that we typically DON’T play with people on the opposite side of the world.

Every online game I’ve played had a part where I select my server region (continent) before I get into the game.

Anonymous 0 Comments

[removed]

Anonymous 0 Comments

[removed]