Про лагокомпенсацию, CRDT и эксперименты Либета

Jan 10, 2015 01:33

Что такое эксперимент Либета: в большинстве экспериментов у человека время принятия решения типа 0.1 сек, но EEG датчик на башке показывает, что сигнал появляется ДО того, как человек сам поймет, что он собирается сделать ( Read more... )

муравьи, gamedev, мысли

Leave a comment

Comments 67

kray_zemli January 10 2015, 00:19:19 UTC
Во развёл философию...

Лучше всего лагокомпенсатор работает в области руководства: согласно отчётам, на местах огромный прогресс и вообще всё тип-топ и по плану, но стоит хозяину пойти лично прогуляться по этим местам...

Reply


vit_r January 10 2015, 06:31:13 UTC
Скорее всего, лаг заложен для проверки решения. Сознательной проверки решения.

Reply

rdia January 15 2015, 23:17:52 UTC
Иногда бывает такое - порываешься что-то сделать, но понимаешь, что ошибка, и отменяешь действие. Ощущение такое, будто "производишь закат солнца вручную". Оно?

Reply

vit_r January 15 2015, 23:28:03 UTC
Там много чего есть. Мозг - это паралельная структура.

Вот в книжке по комиксам измеряли поведение энцефалограммы в зависимости от правильного и не правильного расположения панелей в последовательностях. Если порядок не правильный - один график, если с темы на тему перескакивают - другой, если просто случайно перемешано - наложение обоих.

Reply


fi_mihej January 10 2015, 06:48:52 UTC
В игре, которую сейчас разрабатываем (online-FPS) - моя лагокомпенцация работает с реальной задержкой около секунды (если у этого игрока херовый инет). Можно и больше - просто такое ограничение на данный момент выставил. На играбельность не влияет. Делалось именно для того что бы игрокам не нужно было делать ручной предикшен при стрельбе, а можно было просто стрелять ровно в тушку при любых условиях - вплоть до 3g-инета.

Reply

wizzard0 January 10 2015, 10:20:51 UTC
> На играбельность не влияет.

Стрелять ровно в тушку-то удобно, но что делать, если другой игрок считает, что он тебя уже застрелил давно?

Reply

fi_mihej January 10 2015, 10:30:22 UTC
Другой игрок может себе в уме считать все что угодно. Кто кого и когда застрелил - считает сервер. А игровой клиент - считает ровно то, что получил от сервера. :)

Reply

wizzard0 January 10 2015, 10:48:10 UTC
Пффф. А потом игрок идёт к админу и жалуется "я в него очередь в упор расстрелял и умер, ЧИИИТЕРЫ!"

Reply


fi_mihej January 10 2015, 06:53:48 UTC
>>Лагокомпенсатор должен рендерить оба варианта. То есть начинать виньетировать экран в стиле "мы дохнем" не тогда, когда "ой всё" - а тогда, когда пересекаются конусы неопределенности тушки игрока и очереди пуль другого игрока.

Что ты подразумеваешь под термином "конус неопределенности"?

Reply

fi_mihej January 10 2015, 10:41:57 UTC
Если я правильно понял, пробежавшись по очень резкой диагонали - то ты имеешь в виду что надо расчитывать не пересечение игрока и пули в отдельных позициях, в текущий момент времени, а производить расчет пересечений отрезка луча пули и фигуры игрока состоящей из фигуры в начальной позиции, конечной позиции, и интерполированного промежутка между ними. Ну да - так в хороших играх, насколько я знаю и делают: я сверял свою задумку перед реализацией, и оказалось что примерно так в контр-страйке было сделано.

Reply

wizzard0 January 10 2015, 10:48:39 UTC
В CS совсем не так. В Q3 гораздо точнее рассчитывается.

Как побочный эффект, в Q3 можно убить друг друга из рейлганов, а в CS в случаях, когда "кто кого убил раньше - непонятно" всегда срабатывает tiebreaker, лотерея по сути. Это крайне уныло.

Reply


109 January 10 2015, 07:37:39 UTC
хм, а remote desktop тоже предсказывает, что я натайпаю?

Reply

wizzard0 January 10 2015, 10:18:34 UTC
В протоколе места для этого есть, но используются только в кинетическом скроллинге.

Reply

wizzard0 January 10 2015, 10:51:28 UTC
Есть предсказывающий SSH, называется mosh, можешь посмотреть.

Reply

fi_mihej January 11 2015, 04:22:44 UTC
>>Набираете символ, и моментально видите его на экране, так же, как и в локальном терминале. Почему? Потому, что в Mosh реализован так называемый local line editing, который не дожидается ответа от сервера, а сразу все отображает на экране.

Строго (да и неочень) говоря - это не предсказание. Предсказание - это экстраполяция. А тут - асинхронное отображение, не дожидаясь фактического ответа от сервера.

Reply


Leave a comment

Up