'Lag' and how to minimize it
June 01, 2016
Every multiplayer gamer knows it: “Lag”. When you see an opponent too late or you are certain you hit them a hundred percent, but the game decides otherwise: the culprit is clearly “Lag”.
In “Multiplayer Game Programming: Architecting Networked Games”, the two authors explain how multiplayer games must be programmed so that as little “Lag” as possible occurs. “Lag” (the technically correct term is actually “latency”) is the technically necessary delay caused by the duration of information transmission from the players’ consoles and PCs to the server and back. As long as technology cannot transmit information in less than 10ms or so, there will always be “Lag”. The task of game developers is to minimize the occurring, felt, or visible “Lag”.
Various techniques have become established for this, which are well explained and presented in this book. C/C++ is used as the implementation language. In some parts, it is a bit too close to the machine or sometimes too detailed for my taste, such as with network protocols, and C++ is indeed very “verbose” with a lot of “boilerplate” code to see. But on the whole, the book is very worth reading.
However, the book lacks a more abstract view of protocols—the bird’s-eye view of how to design them, or perhaps even protocol verification. Also, one can often hide the technically necessary “Lag” behind animations. Here, network programmers, game designers, and graphic designers must work together. When an animation takes place in multiplayer games, such as often when throwing a hand grenade, it is an attempt to distract the player from the “Lag”. The book is still missing a comprehensive section on “best practices” in this area.
But at this point in time, the book is the best introduction to the programming of multiplayer games, therefore 5 out of 5.
- Sanjay Madhav, Josh Glazer
- Multiplayer Game Programming: Architecting Networked Games
- Addison-Wesley
- 2015
See also the german review on Amazon.