?

Log in

No account? Create an account
Previous Entry Share Next Entry
2016-01

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

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

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

И всякие "моторные навыки", ходьба, танцы, вождение велосипеда, автомобиля, вот это всё - это обучение лагокомпенсатора.

Так вот, есть контроллер такой, читающий ЭЭГ, OCZ NIA называется - у меня он был. Ощущение отрицательной латенси вызывает просто охуение. Я этого никогда в жизни не забуду, "аватар в игре предсказывает мои действия"

В то время я даже намерял, там чуть ли не 700 мс запаса, т.е. ты собираешься выстрелить за 700 мс до того как ты выстрелил. Очень хорошо если за 300, это считается "внезапно". Поэтому лагокомпенсаторы возможны. Но во всяких шутерах они в лучшем случае линейно экстраполируют... Ну и 50-100 мс это предел, иначе игроки не могут отличить читера от человека, у которого просто лагает.

А сегодня я увидел мультиплеерный мод для kerbal space program. Там лагокомпенсатор асинхронный, он записывает действия игроков и проигрывает тех, кто в будущем для тех, кто в прошлом, а тех кто в прошлом симулирует, как будто они ничего не делали, и при коллизиях переигрывает.

В KSP по понятным причинам по-другому нельзя, с тайм варпом и космическими скоростями-то :)

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

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

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

Да, в общем виде это AI-полная задача (надо предсказать противника, который живой человек, и данных про него в системе обьективно не хватает), но для вероятностного ее подвида весьма поможет датамайнинг по базе данных старых реплеев.

Кто еще не понял - в условиях современного интернета, его лагов и интерактивщины про это также в той или иной форме приходится думать ВСЕМ дизайнерам UI, другой вопрос, что параллелей с геймдевом они почему-то не проводят.

This entry was originally posted at http://wizzard.dreamwidth.org/416483.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
kray_zemli January 10th, 2015
Во развёл философию...

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

Edited at 2015-01-10 12:19 am (UTC)

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

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

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

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

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

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

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

jakobz January 10th, 2015
>На играбельность не влияет.

Так не может быть в нашей вселенной. Можно торговать "честное дрочилово как в Q3" с "аркада для детей", и это будет влиять на играбельность. Либо честно открываем и даем настраивать алгоритмы предикшна (как в Q3). Либо делаем замороченный предикшн - и как побочный эффект получаем что лаги выглядят как баги и читерство.

Ну и вообще FPS с 1с задержкой - это такого же порядка ржака, как и шутер на джойстиках. И совершенно неважно что где-то там в голове 700мс где-то еще добавляются. Абсолютная разница даже в 20мс пинга решает, независимо от того сколько там еще в плюс.

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

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

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

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

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

anonim_legion January 11th, 2015
Какое фантастическое оружие нельзя представить в компьютерной игре?

Вот оно:
- Очевидно, у одного из них "Эскалибур", - сообщил Лемак.
- И?
- У тахионного оружия особые отношения со временем, - Лемак нежно погладил ствол собственного "Эскалибура". - Знаете, эта пушка стреляет почти на секунду раньше, чем вы нажимаете на курок.



sorcerer_ January 11th, 2015
Почитал про Либета в википедии - это ж пиздец какие гуманитарии ебанаты-то...
Про "тормоза" - все верно и уже давно обсосано бихевиористами и прочими чуваками.
Мало того, есть люди, у которых "сознание" очень близко к тому сигналу, а есть - очень далеко (т.е. у кого-то компенсатор прокачан на low latency, а у кого-то на high bandwidth). При этом у них и другие приколы с характером на этом завязаны.

fi_mihej January 12th, 2015
>>Мало того, есть люди, у которых "сознание" очень близко к тому сигналу, а есть - очень далеко (т.е. у кого-то компенсатор прокачан на low latency, а у кого-то на high bandwidth). При этом у них и другие приколы с характером на этом завязаны.

А это любопытно. Где о таком почитать можно (ну или по каким ключевым словам искать), не подскажешь?

  • 1