Обновить

Coyote Time или как немножко врать игрокам

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K
Всего голосов 34: ↑34 и ↓0+46
Комментарии10

Комментарии 10

еще бы какойнить пример, было бы интересно узнать.

Prince of Persia: The Lost Crown (2024) использует этот приём, а старый Prince of Persia (1989) - нет, поэтому в нем на прыжок надо было нажимать за шаг или два до обрыва.

Я бы ещё различал реальный Coyote Time, подобный описанному в статье и, скажем так, мнимый, когда что-то похожее делается хитбоксами.

Скрытый текст

Collision Box игрока (желтый) ещё касается края платформы, хотя визуально кажется, что это уже не так.

У нас в Doom2D Forever это решено хитрее, от противного. На чётных кадрах анимации ходьбы ноги игрока выглядят у́же, чем когда он просто стоит. В итоге человек нажимает кнопку прыжка раньше, чем упал бы на самом деле. Минус на плюс даёт ноль - в итоге даже есть пропасти, где нужно перескочить прямо на самом краю (MAP10), и выглядит это вполне себе естественно.

Вспомни первый BioShock, там враги намеренно промахивались первым выстрелом, если игрок их не видел, это давало время среагировать и развернуться в сторону угрозы. Формально физика пули нарушалась, но для атмосферы работало идеально

В Celeste на этом вообще весь платформинг собран. Там игра дает прыгнуть еще несколько кадров после падения с уступа и слегка магнитит к углам, чтобы не биться головой

Да на таких вот мелких "багах" и строится почти весь геймдев:
- модель коллизий вообще, и когда для разных действий разные хитбоксы (даже для разных ракурсов камеры - свои хитбоксы) в частности.
- "гибкое время" (подстроенное под человека время принятия решения, особенно хорошо видно на assisted speedrun, где бот делает все кадр-в-кадр).
- разный урон бота по человеку / человека по боту / человека по человеку

С сетевым кодом в шутерах абсолютно та же история. Если сервер не будет компенсировать пинг и верить клиенту на слово, никто ни в кого не попадет. Чистая математика там только мешает нормальной стрельбе

Об этом будет следующая часть, выложу в четверг

Вы когда-нибудь прыгали, с разбега?

Поскольку прыжок - единое вдижение начавшееся (не говоря уже о спланирвоанное) сильно раньше отрыва от земли, то в момент отрыва от земли центр тяжести действительно находетися впереди (в направлении куда вы прыгаете).

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

А задержкой ввода это быть не может? Как раз время прожатия кнопки + debounce time + vsync очень близко к выставленным 100 мс: https://www.reddit.com/r/miniSNES/comments/7asnby/latency_analysis_of_nes_snes_classics_and_retropie/ - ~50мс на оригинальном оборудовании.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации