Voidwalker - что такое этот ваш FPS (а еще VTS и FTS)

Видели когда-нибудь в эмуляторах PS1 лимит на FPS?

Нужно больше FPS! Или чистый VTS. Подход времен NES и PS1.

Если Cyberpunk 2077 выдает нам на RTX 5090 с лучами и без DLSS аж целых 28 кадров - то чем больше FPS, тем лучше.

А если FPS уходит в облака? С какой скоростью объекты двигать-то? А кнопки опрашивать?

Для решения задачи есть два подхода

- Variable Time Step (VTS) - расчёт физики/логики/ввода вместе с кадром, то есть равно количеству FPS.

- Fixed Time Step (FTS) - расчёт физики/логики/ввода фиксированное число раз в секунду, вне зависимости от FPS.

Как это работает в Unreal Engine и Unity

- Физика - FTS, равный 50 Гц (20 мс на кадр) или 60 Гц (16,66 мс на кадр).

- Игровая логика - FTS или VTS (зависит от игры).

- Обработка устройств ввода - VTS (нам нужно не только факт нажатия на кнопку, но еще и скорость отклонения аналоговых стиков.

- Кадры - VTS, равное FPS (сколько можно отрендерить, столько и дадим угля).

Как видим, желанные нами 60 Гц на экране дают движку всего от 16 до 20 мс на обсчет игровой логики, передвижение объектов, расчёт коллизий, общение с сервером и прочее. Правда, современные многоядерные процессоры за такое время способны выполнить несколько миллиардов операций.

А что там с PS1?

В стародавние времена, когда деревья были большими, мы жили с телевизорами, работающими или в PAL (50 Гц), или в NTSC (60 Гц). NES/Famicom/Dendy, например, вообще не имела FTS. У игры есть жесткие 50 или 60 FPS. Если вдруг игра была сложной и кадры выпадали - игра просто становилась медленнее. А при запуске на эмулятор без ограничения рендера (FPS) - быстрее.

PlayStation 1 уже оказалась на границе парадигм. Игры всё еще использовали VTS, но разработчики уже пытались искусственно реализовать FTS на системных таймерах, хотя их точность не позволяла в честный FTS.

Звучит смешно, но первой PlayStation, давшей честный FTS была только PlayStation 4 (!), в то время как на ПК системные таймеры позволяли в FTS примерно с 2000-х.

А вот современный подход - рендер VTS, физика, логика и ввод на FTS.

Ваш любимый Voidwalker будет работать в FTS и минимум в 60 FPS, не волнуйтесь.

Предыдущая часть саги:

6
6 комментариев