Earlier quoted context omitted.
I remember trying to play Diablo multiplayer through a 55.6 kbps modem. It was nice for like 5 minutes but then the connection lagged and I couldn't control my character. When the connection quality improved, I saw my character dead with all his (high level and very diffucult to find) gear stolen by other players. I was so frustrated I removed the cdrom from the drive and threw it on the wall; the cd broke and that w…
I played Diablo II on a 55.6 kbps modem. Worked fine.
1) Latency hiding. The results of actions are determined ahead of time. The hit chance and damage value for melee swings and missile shots (arrows, spell effects) are calculated when you start a weapon swing or bow fire or spellcasting action. The duration of the action hides the network lag; by the time your sword finishes swinging, the packet describing the results has arrived.
2) Low bandwidth. The client does a lot of autonomous prediction and extrapolation. The server typically sends updates of monster positions at intervals of several seconds, rather than every frame. This can create situations where your attacks seem to automatically miss because the monster you think you're attacking isn't where your client thinks it is. But better to have that "lag haze" than to not be playable at all for lack of bandwidth.
This was all implemented for Diablo II after learning from the first Diablo.