Every time there is lag there is a LPB close by.
Multi-player programming focus on the following things.
Some basic network terminology.
Use some form of network protocol to send data between peers.
Keep a shared world synchronized from the perspective of each player.
Make it possible for the peers to request services from each other with remote procedure call.
It should send as little data as possible to keep it all in sync.
It needs to be handle normal latency and latency spikes.
Who has authority over what object in the world.
Make your game resistant to exploitation.
Build up any infrastructure the game needs.
Building the social experience of the game.
The Poor Man's Netcode - 2018
Optimizing UE4 for Fortnite: Battle Royale - Part 1 - 2018
Relay servers - 2014
Debugging Multiplayer Games - 2009
Networks and Networking - 2007
Networked Physics - 2006