Stray кашляет комком шерсти на ПК, поскольку разработчики признают серьезную проблему с заиканием

бродячий герой
Все видеоигры жестоки, верно? В них всегда рассказывается о больших, крепких, накачанных мужчинах, которые топают по полям сражений и стреляют в плохих парней или монстров из нелепо больших орудий. Или, если они не об этом, то они о грудастых красотках невероятного телосложения, которые мечутся по полям фантазий, стреляют огненными шарами или рубят вещи мечами. Верно?

Помимо общих стереотипов, существуют всевозможные видеоигры, но одним из самых недооцененных типов игр должна быть игра «играй как кошка». Было несколько; на ум приходит превосходный Catlateral Damage . (Также удивительно жестоко, по иронии судьбы.) Самый последний релиз в этом восхитительно кошачьем микро-жанре — игра Stray от разработчиков-новичков BlueTwelve Studio.
заблудиться 3

В игре вы играете за бездомного кота в киберпанк-городе, который сильно напоминает город-крепость Коулун в Гонконге. Вы потеряны и разлучены со своей семьей, поэтому вам нужно попытаться сбежать из города и найти дорогу обратно к своим близким. Мы еще не играли в эту игру сами, но рецензенты говорят, что игра одновременно и трогательная, и душераздирающая, и богатая повествованием об окружающей среде, и великолепной графикой.

К сожалению, рецензенты также говорят, что версия для ПК страдает серьезной проблемой заикания. Сэм Мачкович, рецензировавший игру для Ars Technica, говорит, что причиной зависаний является компиляция шейдеров. Шейдеры — это просто программы, которые выполняются на графическом процессоре, и, как и обычный код ЦП, шейдеры должны быть скомпилированы в машинный код, прежде чем их можно будет выполнить.
твит Мака 1

Компиляция шейдеров не является проблемой для игровых консолей, потому что там фиксированная аппаратная конфигурация. Это означает, что разработчики могут предварительно скомпилировать код шейдера, который будет загружаться консолью игрока во время выполнения. Для компьютерных игр просто слишком много поддерживаемых аппаратных конфигураций, поэтому компиляция шейдеров выполняется в графическом драйвере. Компиляция выполняется быстро — обычно порядка миллисекунд — поэтому исторически не было проблемой просто сделать это, когда нужен шейдер.

Дело в том, что по мере того, как игровая графика становится все более и более сложной, а код шейдеров становится все более и более сложным, компиляция шейдеров происходит все чаще и занимает больше времени. Это может привести к заиканию, в которое ужасно играть. Обратите внимание, что компиляция шейдера должна произойти только один раз; как только шейдер скомпилирован, его можно мгновенно загрузить из кеша.
заблудиться 2

Тем не менее, для линейной игры, такой как Stray , которая не использует много ресурсов повторно, вы, к сожалению, будете страдать от заикания при компиляции шейдеров на протяжении большей части игры. На очень быстрых ПК с быстрым вводом-выводом NVMe и высокой однопоточной пропускной способностью это значительно менее заметно, но люди, играющие на старых или более медленных машинах, определенно почувствуют удар при загрузке нового актива.

Вполне возможно, что игра предварительно скомпилирует свои шейдеры до того, как игрок войдет в игровой процесс, но для этого требуется продолжительный период «загрузки» перед началом игры. Тем не менее, трудно представить, что однократный процесс компиляции шейдера в течение нескольких минут может стать нарушением условий сделки, особенно по сравнению с игрой с постоянными заминками.

Эта проблема никоим образом не является исключительной для Stray . На самом деле, это стало довольно эндемичным для компьютерных игр, основанных на Unreal Engine . Проблема, похоже, заключается в том, что настройки по умолчанию для проектов Unreal Engine настраивают движок исключительно на использование JIT-компиляции, и большинство разработчиков не знают ничего лучше, чем настроить или предложить другой вариант.
твит Мака 2

Хорошая новость заключается в том, что разработчики Stray справились с проблемой. Они связались с г-ном Мачковцем и сказали, что надеются решить эту проблему, наряду с некоторыми другими проблемами, в следующем патче. Спасибо BlueTwelve за инициативу в решении этой проблемы. Надеюсь, Epic Games сделает то же самое для самого движка.

Источник (англ.)

Поставить оценку
Кофебрейкер | Интернет-журнал