Dealing with latency in a real-time application
Here is one of the clearest descriptions I’ve ever read of how to deal with synchronizing game state across a slow, unreliable network. The increase in complexity they had to go through to get from LAN play (Halo 1) to WAN play (Halo 2) is pretty amazing.