Цитата:
|
что передавать на сервер/на клиент с какой периодичностью
|
Передавать 1 байт туда-обратно раз в 1 секунду. Измерять время, потраченное байтом на путь туда-сюда. Запоминать это время и делать на него поправку в течение всей следующей секунды (вернее - пока не вернется следующий байт). То есть постоянный пинг-тест.
Таким образом, мы всегда имеем текущий пинг игрока.
Все остальное (сообщения о действиях игрока) отправляем в момент нажатия клавиш на клиенте.
Сервер, получив сигнал о действии клиента, "подписывает" сообщение датой получения (с поправкой на пинг) и рассылает это сообщение всем остальным игрокам.
Клиент обрабатывает полученное сообщение...
Клиент (пользователь) видит изменения на экране.
ЗЫ
так как "подписывание" происходит на сервере, то подделать дату сообщения нереально. Можно подделать пинг, но это мало кого выручит =)