Fenochka

Каким образом FPS влияет на скорость в играх?

Простой пример - Crash Bandicoot N Sane Trilogy. На консолях с 30 фпс WRы на уровнях одни. С 60 фпс уже в среднем на 7% быстрее проходятся уровни. А с разблокированным фреймрейтом процентов на 10-12 быстрее. Слышал еще байку про нож в РЕ2 ремейк, типа если играть при 600 фпс, то он наносит в 10 раз больше урона, и типа этим пользуются спидоаннеры.

То есть если ФПС - это фреймс пер секонд, то почему за счет увеличенного фпс скорость моего прохождение игры увеличивается? ведь по идее начальный и конечный кадр при 30 кадрах должен совпадать с начальным и конечным кадром при 60 кадрах (просто их будет в 2 раза больше) и как следствие скорость должна быть одинакова…

0
13 комментариев
Написать комментарий...
Алексей Ступников

Такое бывает когда обновление физики и ИИ привязано чисто к фпсам, без проверки прошедшего реального времени

Ответить
Развернуть ветку
HachHQ

Просто они не умножили на Time.deltaTime

Ответить
Развернуть ветку
Jerry Green

Ну тут совокупность факторов:

1. Сугубо кривые руки программистов.
2. Отсутствие хорошего тестирования.
3. Нежелание исправлять баги в уже проданных проектах.

По-хорошему, всё кроме визуальных вещей в игре должно быть FPS-independent, но некоторые косячат, ошибочно пишут код, что скорость его работы зависит от фпс. С технической точки зрения, у игры есть несколько разных часов. Одни часы FPS-dependent, другие часы FPS-independent. Для визуальных вещей чаще всего используют FPS-dependent часы. Но для геймплейно важных вещей, таких как алгоритмы генерации, ИИ, физика, и прочее, - обычно должны использовать FPS-independent часы. Возможно разработчики не видят разницы между часами как двумя похожими объектами/функциями в коде. Например называются они слишком похоже, и непонятно в чем разница, поэтому использует первые попавшиеся, и вроде бы они даже работают, и на этом разработчик успокаивается. И по ошибке привязывают свои события к неправильным часам. Думаю что всё нормально. Ну и в целом от неопытности, - потому что опытный игровой разработчик знает что это известная проблема, и старается быть всегда трижды аккуратным когда имеет дело с часами.

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

Представь часы как просто постоянно увеличивающуюся циферку, которая отсчитывает секунды (чаще миллисекунды, но не суть). Но одна реальная секунда допустим равна одной «FPS-секунде» при 60 FPS, - как некая такая выверенная «норма фпс» допустим. Тогда при 120FPS у тебя такая секунда будет проходить в два раза быстрее. И вот разработчик, например, сделал чтобы у него каждые 20 секунд генерировался монстр на карте. Но он случайно использовал FPS-часы. Циферки, которые при более высоком FPS возрастают в два раза быстрее. Иногда это может просто ускорять игру, особенно когда это касается физики. А иногда как в моём примере, и просто монстры спавнятся чаще. В таком случае даже наоборот: игру пройти будет дольше, сложнее. А то и вовсе невозможно, при достаточно высоком фпс. Это баг. Из-за безалаберности и неопытности разработчиков.

Ответить
Развернуть ветку
Fenochka
Автор

спасибо за развернутый ответ!

Ответить
Развернуть ветку
Vadim

Некоторые анимации привязаны к фпс. Например на релизе фолыча 76, если в пол смотреть и бегать, то скорость можно было получить очень высокую засчет высокого фпс.

Ответить
Развернуть ветку
Саня Лалаев

Фпс может влиять на возможность или простоту спидран страток.

Ответить
Развернуть ветку
Принцесса uTorrent

Погромист поясняет.
Есть такая штука, например, в Unreal Engine, как Event Tick. Что is firing every frame. Так вот, чем больше кадров - тем чаще файрит он и к нему привязанный код.
Это актуально для, например, изменения переменных - разработчик пытается сделать так, чтобы значение некой переменной со временем уменьшалось, и привязывает её к event tick. А нужно же...сикрет... к set timer by event

Ответить
Развернуть ветку
białko

Во тупые ж программисты бывают

Ответить
Развернуть ветку
RicharbSo

возможно учитывается все фреймы удара, тот же нож в ре привязан к фпсу и это не байка

Ответить
Развернуть ветку
Кирилл Ковган

В трилогии ГТА это особенно бесит. Прохожу на Андроиде ГТА 3 в 120 ФПС, так на меня за 150км агрятся боты и убивают за считанные секунды. В локе на 30 ФПС такого нет, но лагает жутко

Ответить
Развернуть ветку
Ближний корабль
про нож в РЕ2 ремейк, типа если играть при 600 фпс, то он наносит в 10 раз больше урона, и типа этим пользуются спидоаннеры.

Механика работы ножа такая, тик урона за каждый фрейм, при соприкосновении ножа с телом противника

Ответить
Развернуть ветку
Fenochka
Автор

но это получается де факто баг разроботчиков? это ведь не нормально

Ответить
Развернуть ветку
Lord Kite

в FH гонки в S2 классе похожи на гонки микромашин на радиоуправлении при 100+fps )

Ответить
Развернуть ветку
Читать все 13 комментариев
null