Интерполяционный пинг

Добрый день.
Подскажите методы решения интерполяционного пинга. Возможные решения для network unity project. Необходимо ли будет обязательное серверное апи или можно решить локально через связь клиент — клиент?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

после синхронизации времени вам от сервера или других клиентов начнуть приходить пакеты с положением и временем, вы их накапливаете в сортированную очередь. в идеальном случае в этой очереди будет только 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/...ivitelniy-mir-obmana.html
насчет пинга я думаю вы знаете
То есть проблема сводится к тому чтобы предусмотреть и сгладить прерывания в графике на клиенте многопользовательской игры.

по ссылке
Пинг — это время необходимое для сообщения, чтобы дойти от компьютера к серверу и вернуться обратно. Это называется время приема-передачи.

Это называется RTT — round trip time во всем цивилизованном мире :)

Підписатись на коментарі