1. API для асинхронной обработки событий от разных сокетов (kqueue, epoll, select)
2. Структуры данных -- они важнее алгоритмов.
3. Вопросы пространства-времени) когда сервер получил пакет от клиента, на клиенте часы уже ушли вперёд -- всё что связано с компенсацией этой фигни. Пинг (задержка) "к клиенту" может отличаться от пинга "от клиента".
4. Изоляция клиентов друг от друга: никто из них не должен получать событий обо всём мире. События на клиент должны падать, только если они произошли вблизи его.
5.
https://habrahabr.ru/post/302394/ -- статья про способы синхронизации. В конце описан самый интересный способ с накоплением истории на клиенте, выкидывании части истории по факту подтверждения её исполнения на сервере.