Статья удалена

Этот материал был удалён по просьбе автора.

911911 открытие

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

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 возрастают в два раза быстрее. Иногда это может просто ускорять игру, особенно когда это касается физики. А иногда как в моём примере, и просто монстры спавнятся чаще. В таком случае даже наоборот: игру пройти будет дольше, сложнее. А то и вовсе невозможно, при достаточно высоком фпс. Это баг. Из-за безалаберности и неопытности разработчиков.

Ответить

Комментарий недоступен

Ответить

тоже интересовал такой вопрос, удивлен что нашел на него ответ на дтф, а не на хабре, спасибо)

Ответить