Оптимизация видеоигр — что это такое?

Стоит лишь начать обсуждение новой игры для ПК, как неотвратимо всплывет слово «оптимизация». Deus Ex: Mankind Divided? «Похоже, что эту игру По большому счету не оптимизировали», — пишет кто-то из игроков в Steam. Metro: Last Light? «В случае если кратко, то оптимизация выполнена плохо», — пишет второй.

Жалобы на нехорошую оптимизацию, в большинстве случаев, идут вместе c фразами наподобие «у меня эта игра тормозит». Но связана ли производительность с неточностями программистов, каковые не смогли действенно написать код? Как осознать, игра в действительности не хорошо оптимизирована либо для нее просто не хватает мощности вашего ПК?

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

Что такое оптимизация, и чем её измерить?

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

Вот несложный пример. Допустим, вам нужно вычислить следующее:

a = b*c + b*c + b*c

В случае если вместо этого мы определим:

d = b*c, и запишем a = d + d + d

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

Так как же нам рассуждать об оптимизации, сохранив хоть какую-то объективность? Вот какое определение дали мне в QLOC:

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

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

Дин Секулич из Croteam оптимизирует игры уже 20 лет и уверен, что «с одной стороны, нереально сравнить, как оптимизированы различные игры», но с другой? неизменно возможно составить вывод, визуально оценив уровень качества двух различных игр и уровень производительности, что ими достигнут. Но он кроме этого отмечает, что «имеется большое количество всего скрытого от глаз», воздействующего на поведение игры.

Что же это? Познание того, что такое оптимизация и что на неё воздействует, подразумевает получение ответа на данный вопрос. Мы начнем с оценки того, как на производительность смогут воздействовать те зрительные эффекты, каковые дают громаднейшую нагрузку на современные аппаратные средства.

производительность и Современные эффекты

Если вы разочарованы производительностью игры, вероятнее виной тому один из этих эффектов. Как правило картина не выглядит плавной как раз благодаря им, и с них стоит начать настройку графики с целью достижения частоты 60 FPS (кадров в секунду).

Уровень качества изображения

Быть может, самый несложный параметр, что заметно воздействует на производительность и разрешает сравнивать уровень оптимизации, это разрешение экрана. В полной мере конечно сравнивать игры на однообразном разрешении, потому, что данный параметр состоит всего из двух чисел (к примеру, 1920?1080) и доступен для настройки фактически в каждой игре. Ответственный факт, что довольно часто упускается из виду: с трансформацией разрешения изменяется количество выводимых пикселей — 4k дает нагрузку приблизительно в четыре, а не вдвое больше, чем 2k.

Сглаживание – это намного более сложная тема, в то время, когда дело касается сравнений. В современных играх вы имеете возможность встретить любую из этих настроек:

  • Чистые способы работы с экранным пространством, такие как FXAA либо SMAA (1x). Трудятся с уже сгенерированным изображением. На этапе постобработки производится попытка распознать и устранить артефакты визуализации, например, «лесенки».
  • Способы временного сглаживания. Делают перемещения более плавными, генерируя изображение с наложением прошлого кадра и выводят промежуточный итог.
  • Множественная выборка сглаживания либо мультисэмплинг (MSAA). На различных стадиях визуализации пиксели на гранях полигонов генерируются на базе нескольких предварительных виртуальных моделей.
  • Избыточная выборка сглаживания либо суперсэмплинг. На различных стадиях визуализации все пиксели генерируются на базе нескольких предварительных виртуальных моделей.
  • Комбинации из вышеописанных способов (к примеру, TXAA)

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

Мультисэмплинг воображает особенную сложность для сопоставления производительности, потому, что, в зависимости от метода реализации, нагрузка при применении этого способа может существенно различаться — от минимальной до близкой с суперсэмплингу. Суперсэмплинг достаточно легко соотнести с разрешением: применение Nx суперсэмплинга увеличивает нагрузку эквивалентно повышению разрешения в N раз.

Оптимизация видеоигр — что это такое?

Хороший комплект опций для настройки сглаживания в The Talos Principle.

Освещение и тени

Поверхности и окружающая воздух напрямую зависят от освещения, которое относится к базам 3D графики и в один момент есть ее Священным Граалем. Неизменно разрабатываются всё более сложные эффекты, благодаря которым достижимо современное уровень качества изображения, но улучшение картины довольно часто достигается за счет большой вред производительности.

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

Каркасная сетка современных лучей всевышнего в Fallout 4.

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

Рассеянное затенение в первый раз было представлено в Crysis и само по себе потребовало больших ресурсов. Сейчас применение этого результата больше не вызывает неприятностей с производительностью. Но новые графические техники, такие как воксельное рассеянное затенение либо затенение отдаленных пространств, всё еще достаточно требовательны к производительности.

Наровне с прямым затенением, в играх сложно воспроизвести и контактное уплотнение. Данный эффект содержится в том, что, чем ближе тень к отбрасывающему ее объекту, тем контрастнее ее очертания, а чем дальше, тем они мягче. Имеется множество разных реализаций этого результата (к примеру, PCSS), но каждая из них дает высокую нагрузку на производительность.

Пример контактного уплотнения в реальности.

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

Другие зрительные эффекты

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

Настоящий пример тусклых отражений, каковые, значительно чаще, приближенно воспроизводятся на экранном пространстве. Обратите внимание на контактное уплотнение.

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

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

Особенности оптимизации

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

системные требования и Стандартные настройки

Предустановленные графические настройки — привычные «низкие», «средние», «высокие», «высокие», «ультра» — фактически ни при каких обстоятельствах не соответствуют друг другу в различных играх, но они очень важны: их применяют игроки, каковые не желают углубляться в тонкости личной настройки.

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

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

Настройки производительности по категориям в The Talos Principle.

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

Игрокам не всегда до конца известно, как определяются системные требования. Тогда как

любой разработчик применяет личные стандарты, в Croteam «минимальные» требования означают, что игра обязана прекрасно трудиться на низких настройках, и в случае если эти требования не соблюдены, техподдержка не предоставляется. «Рекомендуемые» же системные требования подразумевают, что игра обязана прекрасно трудиться («не на средних, а на высоких», как сообщил мне Дин) c разрешением 1080p.

Как оценивать оптимизацию игры

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

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

Впечатляющая дальность прорисовки в Dying Light.

Встал громкий вой на Dying Light, как на «плохо не оптимизированный порт на ПК» по причине того, что она не соответствовала (произвольно выбранным) стандартам на больших настройках графики. Как выяснилось, ползунок настройки дальности прорисовки, установленный на минимум, в начальной версии игры определял более высокую дальность прорисовки, чем на консоли. В сущности, люди были обиженны тем, что разработчик подразумевал, что в ранних патчах игрокам нужно будет устанавливать ползунок дальности прорисовки на 55% от большого значения.

Смотрелась бы игра более «оптимизированной», если бы данный несложный ход был сделан до релиза? Я в этом уверен. Наряду с этим была бы она в действительности «лучше оптимизирована»?

Очевидно, нет. Dying Light – не только хороший пример того, как сложно оценить уровень качества оптимизации, но и того, что должны учитывать разработчики при определении дешёвых настроек графики.

Похожая история сравнительно не так давно случилась с Deus Ex: Mankind Divided, в которой ответственное значение имеет настройка MSAA (до 8x). Потому, что в игре употребляется отложенное затенение и освещение – универсальная техника визуализации, которая делает значительно менее действенной несложную реализацию MSAA с аппаратным ускорением — MSAA давала громадную нагрузку на производительность, которой от нее никто не ожидал. И опять, игра смотрелась бы более «оптимизированной» в том случае, если бы не предоставляла такую настройку, при чем, снова же, неприятность с оптимизацией совсем не в этом.

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

Помимо этого, первая реализация воксельного рассеянного затенения в Rise of the Tomb Raider – в целом прекрасно оптимизированной и прекрасной игры – может оказаться хуже будущих реализаций.

Техника отложенного затенения и освещения в Deus Ex: Mankind Divided делает сглаживание намного более ресурсоемким.

Metro 2033 стала одной из первых игр, где были обширно использованы объемные лучи, и позиционировалась она как духовный приемник Crysis в том, что касается производительности на высоких настройках. Это же актуально и для недавнего и последующего применения теней с контактным уплотнением. Однако, я считаю, что нужно экспериментировать с внедрением новых возможностей, не обращая внимания на то, что первые реализации не всегда возможно применять из-за их нагрузки на производительность.

Именно поэтому процесс развития игровой разработки не следует на месте, и появляются прекрасно оптимизированные зрительные эффекты. Прелесть платформы ПК содержится в том, что эффект, что был «не оптимизирован» в 2010 году, возможно использован по максимуму в 2016-м, и игра будет смотреться лучше кроме того на средней аппаратной конфигурации.

Очевидно, существуют игры, каковые вправду не хорошо оптимизированы. В большинстве случаев за ними стоит одно да и то же: недочёт ресурсов, попытка маленького разработчика откусить больше, чем он может прожевать, либо легко низкие технические навыки. В то время, когда игра тормозит на настройках по умолчанию кроме того на самом замечательном ПК, либо в простой 2D игре fps падает до 20 кадров в секунду кроме того на современной консоли, тогда никакой самый глубочайший анализ не приведет к утешительным выводам.

Как правило, но, оценка делается куда сложнее, и я надеюсь, что, как я надеюсь, было прекрасно проиллюстрировано в этом разделе.

Трудности оптимизации

Сам процесс создания оптимального кода (в том значении, которое употребляется в информатике, что упоминалось ранее) достаточно трудоемок. Для Дина Секулича «нехороший кошмар оптимизации» это «наблюдать на эти профайлера и видеть, что исполнение верхней функции занимает 3% времени». Для понимания того, что имеется ввиду, сообщу, что профайлер — это инструмент, что разрешает программисту заметить, сколько времени у программы уходит на исполнение каждой функции, в большинстве случаев он сортирует итоговый перечень по убыванию времени исполнения.

В то время, когда верхняя функция занимает 3% времени, это указывает, что в случае если вам удастся в два раза сократить время ее исполнения — для чего смогут потребоваться титанические упрочнения — в целом программа ускорится на 1,5%. По причине того, что подобные обстановки появляются неизменно, оптимизация готового кода преобразовывается в постепенный и трудоемкий процесс.

В QLOC портируют игры с применением самых различных разработок, исходя из этого с каждым проектом появляются новые задачи. «Это возможно по-настоящему сложно для одной игры, и существенно проще для второй».

Так, как говорит Дин, в оптимизации программы «не бывает несложных и очевидных ответов».

К вопросу о DirectX 12: Низкоуровневые интерфейсы наподобие DirectX 12 время от времени становятся несложным ответом на споры об оптимизации, но множество игр с DirectX 12 так и не продемонстрировали больших результатов в производительности.

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

Дин Секулич уверен, что «парадигму движков визуализации пора поменять», но наряду с этим видит громадный потенциал для Vulkan в будущем. Он дает наполовину шуточный совет разработчикам: «Если вы используете Vulkan, додавайте на экран побольше объектов», подразумевая, что в будущем смогут появиться ситуации, каковые нереально как следует воспроизвести, применяя возможности современных интерфейсов.

Оптимизация касается не только графики!

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

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

Подводя результат

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

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

Ожидая выход игры на ПК, игроки, в большинстве случаев, вздыхают с облегчением, в то время, когда видят наименование данной компании. Если вы отыщете в статье неточности, то они принадлежат лишь мне, а не им.

В завершение статьи хотелось бы озвучить две просьбы.

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

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

ЧТО ТАКОЕ \

Темы которые будут Вам интересны: