In the peer-to-peer architecture, data is exchanged between any pair of connected players, while in the client-server architecture, data is only exchanged between the players and the server. The quality of the gaming experience now depended on the connection between the client and the server, and not on the lagging peer in the game. The problem, of course, was that Doom was designed to connect only via LAN and used the peer-to-peer blocking model described above for real-time strategy games. Windows supports a variety of network APIs that the application can use to communicate with other computers and devices over the Internet or private networks.
Despite these limitations, this model naturally adapts to real-time strategy games and is still alive today in games such as “Command and Conquer “, Age of Empires and “Starcraft”. Initially, games were networked on a peer-to-peer basis, and each computer exchanged information with each other in a fully connected mesh topology. However, most modern games use a relay node to forward inputs to all players instead of using a peer-to-peer connection. The next limitation is that, to ensure that the game runs identically on all machines, it is necessary to wait until all the player's orders are received for that turn before simulating that turn.
Network conditions can change at any time, so any game that uses network APIs must handle any network exceptions that may occur. Arguably, this is the first big decision you must make when designing how your game will work on the network. For this reason, in FPS games it is absolutely necessary that the server be the one that authorizes the status of each player's character, even though each player locally predicts the movement of their own character to hide latency. For single-player games, a central web server or service is often used to store user names, game scores, and other miscellaneous information.
Instead, it is able to predict the movement of your character locally and immediately in response to your feedback, by executing a subset of the game code for your player character on the client machine. For more information on how Windows applies network isolation to applications, see How to Configure Network Isolation Capabilities. In these games, the speed and latency of network transfers are less of a concern, since they do not directly affect the operation of the game. First, it is exceptionally difficult to ensure that a game is completely deterministic, that is, that each turn takes place identically on each machine.
To go beyond the LAN and the well-connected elite of university networks and large companies, it was necessary to change the model.