You only send a very small amount of data to the server, which are usually just numbers, for things like your position, where you moved, if you pressed fire, etc. It’s a tiny amount of data.
The server knows how long it takes for you to send information from your computer to the server – this is your “ping” or “lag.”
So, the server can then take this information and perform a little math on it so if I have a lower ping than you, my action doesn’t happen before your action. This is called normalization. A lot of normalization happens on your side too (the client side). For example, the game engine should make sure that any action you make (moving, firing a weapon, etc) takes priority over very taxing operations, like rendering the graphics. That way if you have a slower video card or your computer chokes on a very intensive scene, your actions make it to the server first.
Then, the server sends that information, again, as a small amount of numerical information, back to the program running on everyone’s computer.
All game engines do this a bit differently and arguably, the Source game engine behind games such as GS:GO do it the best.
Latest Answers