Цитата:
|
Ну вот, он уже есть на сервере. Смысла клонировать его и на клиенте нет никакого, это бесполезное усложнение.
|
Это лень.
Ну у меня сейчас примерно так:
- каждую секунду я отсылаю ping
- примерно каждую секунду я получаю pong
- теперь я знаю лаг и могу делать
поправку
(по разнице отосланных ping и принятых pong я знаю, какой именно pong вернулся)
- клиент присылает "идти туда"
- я подписываю это сообщение на сервере: timestamp = (new Date().getTime() - sender.pongTime)
- я отсылаю каждому клиенту подписанное сообщение
- клиент получает подписанное сообщение
- клиент двигает фигурку sender по экрану туда, где он должен быть в данный момент (знаем дату начала движения и скорость). Двигает быстро, независимо от скорости самого sender, таким образом восстанавливая правильную картину мира
- далее клиент просто двигает фигурку sender с заданной скоростью в заданном направлении
ЗЫ
@Котяра - 1 байт прекрасно отсылается из под любой винды
ЗЗЫ
Касательно графов - клиент полностью рассчитывает путь. После чего отсылает 2 клеточки - ту, в которую он сейчас идет и ту, в которую он пойдет дальше. Сервер валидирует 2 клеточки и отправляет "можно/нельзя". Таким образом клиент заранее знает, как быть дальше и может начинать показ анимации до подтверждения. После первой отсылки и до конца движения отсылается только одна клеточка - та, в которую мы пойдем после текущей точки назначения. И валидация тоже для одной клеточки (грубо говоря nextTarget = {x=10; y=15}).