I must quote this rather large section of this excellent overview of“cloud gaming”:
In practice, players might not even see the same visual explosion, even though the “same” explosive hit the exact “same” tree at the exact “same” angle at the exact “same” time, and the exact same logic was applied to process the cause and effect. This variation doesn’t matter, and it’s odd to consider how a shared experience can vary with such trivial items. However, this inconsistency exists precisely because most information in an online multiplayer game (or shared simulation, if you will) is trivial. What matters are consistency, fairness, and technical resiliency (i.e. playability). Anything that isn’t core to that experience is deprioritized in order to preserve processing power for what does matter.
In truth, all players are looking at slightly out-of-date positions of one another – which means their local machines are processing the cause-and-effects of these out-of-date positions. Most of the time this doesn’t matter, but it often does. In this case, the online server determines the “truth” and sends out information to re-align all players. Most of these changes happen so fast that players will never even know. Indeed, there are many neat tricks to cover this up (e.g. consoles will often predict what is likely to happen and visualize it before it occurs, then skip frames or even “rollback” an in-process visual to “correct” the simulation).
Because of [latency inherent to the packet-switched nature of the Internet], multiplayer was designed in the early 1990s with the packets as small as possible and as much information as possible redundant. Multiple “truths,” in other words, are a feature, not a bug. For example, in a racing game, Player 1’s console will assume Player 2’s car will keep moving forward at a predictable speed. If Player 1’s console then learns Player 2 actually pressed the brakes suddenly, it will stop rendering the car as originally predicted, and suddenly Player 2’s car will appear in its “correct” position, with no interim video frames. The benefit of this is that if any player’s data/internet is interrupted, the game is able to proceed and no cars suddenly stop or disappear. If such tricks didn’t occur, real-time games (versus, say, card games) would be unplayable.
– Cloud Gaming: Why It Matters And The Games It Will Create
For all the techniques that are described here to present as consistent a game experience as possible, the packet-switched nature of the Internet is extremely important. Game creation would be much simpler if this were played over point-to-point connections. There’d be far fewer problems with consistency, close to none. The whole game would be much faster on less capable hardware.
But it would be impractical. It would be far too fragile. Making the Internet both packet-based and packet-switched was the most consequential decision in its design, in my opinion. It made it incredibly resilient [1]. This was necessary when early users logged in to remote systems over the internet over a terminal. Without packet switching, a momentary connectivity issue would cause them to be logged off their system.
Today see it in action when you switch from wifi to mobile data and back in the middle of a Zoom call and not have that affect the call. In point-to-point systems like the PSTN, you’d be dropped off the call, or the game instantly.
Beyond video calls and gaming, e-commerce would be hugely unreliable, because online payments rely on hops between multiple domains, and without packet switching, a momentary problem on any of those domains would cause the whole payment to fail. Downloading files would be unreliable as well – a problem at any point would cause the download to instantly fail. Ditto with uploading, such as publishing an article to your site or a video to Youtube.
Stepping back further still, as we appreciate this aspect of the Internet’s design, we should also appreciate good design principles in general. And when we look at well designed systems, also consider what they optimised for, like the Internet did resilience.
[1] It’s also made it independent and decentralised. Both of which are critical to its continuing existence as a global human communication substrate.