Лучшее, что вы можете сделать в подобных ситуациях, - это попытаться предсказать движение на стороне клиента (полный расчет), а затем скорректировать положение / скорость с данными с сервера, если / когда это необходимо.
Например, скажем, ваш быстро бегущий объект движется по экрану слева направо со скоростью 5, и игрок стреляет в него, и он меняет направление, поэтому теперь он движется вверх по экрану со скоростью 5 ( Поворот на 90 градусов).
Приложение на стороне клиента, вероятно, будет обновляться гораздо чаще, чем получать данные с сервера (например, 60 обновлений в секунду на стороне клиента и 10 пакетов в секунду, получаемых от сервера). Скажем, в реальном времени объект изменил направление, оставив 5 кадров до обновления сервера. На стороне клиента объект будет продолжать двигаться по своей текущей траектории, пока не получит обновление от сервера о том, что изменило направление (то есть он не просто останавливается, когда не получает данные от сервера), после чего, клиент исправит положение и скорость объекта.
То, как вы выполните коррекцию, будет определять, насколько нервной будет выглядеть анимация. Вы можете просто мгновенно убрать его в правильное положение, вызывая небольшой скачок, но мгновенно давая правильное положение, или вы можете изменить его скорость таким образом, чтобы он плавно переходил в это положение, не вызывая прыжка, но имея немного неточная позиция во время средней коррекции.
У вас всегда будут ситуации, когда эти исправления окажутся довольно большими (например, у кого-то действительно плохое соединение, потеря пакетов, высокая задержка и т. Д.). Именно тогда вы получаете сумасшедшие аномалии, которые люди обычно называют отставанием в онлайн-играх, например, когда объект пропускает большие расстояния или движется очень быстро, чтобы «догнать» его до того места, где он должен быть. Там просто нет возможности быть на 100% в синхронизации все время. Все, что вы можете сделать, это сделать действительно хорошие предположения о том, где все должно быть.
Вот несколько статей с подробностями, удачи!
http://gmc.yoyogames.com/index.php?showtopic=415538
http://www.gamasutra.com/view/feature/3230/dead_reckoning_latency_hiding_for_.php