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

Jan 10, 2015 01:33

Что такое эксперимент Либета: в большинстве экспериментов у человека время принятия решения типа 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
comments. Please comment there using OpenID.

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

Previous post Next post
Up