Я занимаюсь разработкой простой динамичной многопользовательской игры в реальном времени на Flash. Игроки могут только стрелять и ходить в точку, чтобы двигаться модой. Я использую соединение через сокет TCP (AS3 не предлагает UDP).
Все, что я хочу, - это синхронизировать действия игроков, чтобы Player1 мог видеть то же на своем экране, что и Player2, Player3 ... или просто видеть близкое представление (положение, получение урона и т. Д.). *
Я знаю координаты вектора движения и могу легко интерполировать их, используя задержку.
Однако я не могу найти эффективный способ определить, сколько времени ( T1 ) потребовалось для обновления состояния для перемещения client1-server-client2, а затем внести исправления в экран client2 на основе T1 . (Вы знаете, время пинга может колебаться совсем немного).
Мне нужен способ сделать вышеупомянутое, мне нужен способ, который будет максимально быстрым и точным, насколько это возможно, но не очень сложным. (Какой алгоритм я должен использовать? Какое решение - временные метки, может быть или что? - Я не знаю.)