Online gaming is made possible with game servers. Game servers transmit some of its data about its internal state to allow players to maintain their own display of the game which they are playing. Dedicated servers will simulate game worlds without supporting direct input and output. While listen servers will run in the exact same process of a game client. Multiplayer games depending on their source engine use a client server networking architecture. A dedicated server host runs the game and takes care of world simulation, game rules, and the player input process. The players system and the server talk by sending data packets to each other at a high frequency. The server sends your system updates on current world states which will generate audio and video output. Because the network bandwidth is so limited and the server can’t send packets to every client every time there’s a world update the server takes constant rate snapshots and broadcast them to the clients. The network packets take time to travel between server and client so the client is always a bit behind the server. This can make it hard to play call of duty multiplayer when you have even a millisecond lag. The server simulates the game in time steps called ticks. Mods can specify their own tick rate. The servers process ever incoming user command during each tick. It also runs a physical simulation step, check game rules, and update the games current state. With more CPU power you can increase the stimulation precision with a higher tickrate. A client creates user commands from sampling input devices with the same tick rate that the server is running with. Compressing game data using delta compression helps reduce network load. The time between the client sending a user command and the client receiving the server's response is called ping. A snapshot update rate is limited by a server’s tickrate. The server can't send more than one update per tick.