Интерполяционный пинг
Добрый день.
Подскажите методы решения интерполяционного пинга. Возможные решения для network unity project. Необходимо ли будет обязательное серверное апи или можно решить локально через связь клиент — клиент?
Добрый день.
Подскажите методы решения интерполяционного пинга. Возможные решения для network unity project. Необходимо ли будет обязательное серверное апи или можно решить локально через связь клиент — клиент?
после синхронизации времени вам от сервера или других клиентов начнуть приходить пакеты с положением и временем, вы их накапливаете в сортированную очередь. в идеальном случае в этой очереди будет только 2 пакета, но в жизни иногда нужно больше хотя пакеты старше 1 секунды вряд ли пригодятся.
каждый рендер фрейм, вы берете синхронизированное время, отнимаете от него некую величину, которую можно либо рассчитать из пинга, либо взять какую-то заведомо большую чем пинг, допустим 300мс. выбираете из очереди 2 пакета, между которыми попадает полученное время и интерполируете положение объекта.
формулы очень просты:
t = getTime() - 300;
p1 и p2 положение объекта во время t1 и t2, где t1 <= t <= t2
factor = (t — t1) / (t2 — t1) коэффициент интерполяции
p = lerp(p1, p2, factor); где p искомое положение тела
для случая экстраполяции, будет все то же самое, только t1 < t2 <= t, где t = getTime(); и factor будет больше 1.
Скажите, сколько тонн клевера от каждой курицы-несушки будет засыпано в инкубаторы после обмолота зяби?
если вам чтото не понятно — уточните, а не пишите всякую х... ересь
Зачем уточнять написанную хрень? Чтобы в ответ получить ещё большую? Я просто постебусь с терминологии и запишу это в блокнотик.
если вам чтото не понятно — уточните, а не пишите всякую х... ересьКстати, насчет ереси — что такое «зябь», ищется сразу, а про «интерполяционный пинг» гугл не знает.
про интерполяцию описано здесь — www.ant-karlov.ru/...
насчет пинга я думаю вы знаете
То есть проблема сводится к тому чтобы предусмотреть и сгладить прерывания в графике на клиенте многопользовательской игры.
по ссылке
Пинг — это время необходимое для сообщения, чтобы дойти от компьютера к серверу и вернуться обратно. Это называется время приема-передачи.
Это называется RTT — round trip time во всем цивилизованном мире :)
15 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів