Что значит не оптимизирована
Что такое «оптимизация игр» и почему на самом деле тормозит компьютер
Стоит начать обсуждение новой игры для ПК, как наружу тут же вылезет злополучное слово «оптимизация». Deus Ex: Mankind Divided? «Похоже, что эту игру ВООБЩЕ не оптимизировали», — пишет один игрок в Steam. Metro: Last Light? «Если вкратце, то игра тормозит, а оптимизация выполнена ужасно», — пишет другой игрок на Reddit.
Но виноваты ли в игровых тормозах криворукие программисты, которые не смогли написать нормальный код, или ваше устаревшее железо? И что вообще такое — эта оптимизация? Давайте разбираться вместе.
Что такое оптимизация, и чем ее измерить?
Для начала нужно понимать, что оптимизация в играх отличается от обычной математической оптимизации. Допустим, вам необходимо вычислить следующее:
Если вместо этого мы определим:
*d = b*c, то у нас получится a = d + d + d*
Это и есть «оптимизация», так как вместо трех операций с умножением мы обошлись всего одной. Однако эта, отлично работающая в информатике, модель не подходит для оптимизации игр, так как перед геймдевелоперами стоят совсем другие задачи. Тогда как понять, что именно нужно рассматривать?
Ребята из польской геймдев-компании QLOC предлагают следующее определение оптимизации — это когда игра работает с одинаковой частотой кадров на широкой линейке девайсов, включая самые слабые платформы. Дин Секулич из Croteam оптимизирует игры уже 20 лет и уверен, что даже сравнение приблизительно одинаковых игр с одинаковыми настройками графики будет крайне поверхностным. Ден рекомендует копать глубже и думать как кодер.
Современные эффекты и производительность
Если вы разочарованы быстродействием новой игры, скорее всего виной тому один из этих эффектов.
Разрешение экрана. Вероятно, самый простой параметр для сравнения — это разрешение экрана т.к. он состоит всего из двух чисел. Например, 1920 на 1080.
Сглаживание. Это эффект, который делает визуальные объекты менее угловатыми (т.к. сглаживает углы) за счет добавления новых деталей. С точки зрения оптимизации, это довольно сложный эффект. Если простое FXAA или SMA сглаживание задействуют минимум ресурсов, то сложные процессы вроде мультисэмплинга и суперсэмплинга, заставят попотеть вашу видеокарту. При этом мультисэмплинг является сложным мерилом оптимизации так как может по-разному нагружать систему в зависимости от способа реализации. А вот суперсэмплингом отлично работает схема, схожая с разрешением экрана т.к. у него есть цифровой коэффициент, который является метрикой нагрузки на систему.
Там, где есть свет, должны быть и тени. В современных играх в основном используют два источника теней, работающих в реальном времени: «рассеянное затенение», которое снижает интенсивность общего освещения (зависит от близлежащих объектов) и «прямое затенение». Рассеянное затенение мы впервые увидели в Crysis и оно требовало очень много ресурсов. Сегодня это обыденность, на смену которой пришли новые технологические «обжоры» вроде воксельного рассеянного затенения или затенение отдаленных пространств.
Наряду с прямым затенением, в играх сложно воспроизвести и контактное уплотнение. Суть сего эффекта заключается в том, что тени обретают четкость и контрастность в зависимости от расстояния до объекта. Если дерево вдалеке будет отбрасывать слегка размытую тень, то тень от колеса велосипеда под ногами будет очень четкой и контрастной. У этого эффекта есть множество разных реализаций (например PCSS), но все они очень требовательны к ресурсам.
Важная деталь: любая динамика, которую невозможно просчитать заранее — движение света, изменение яркости, перемещение игроков или изменение рельефа местности — влияет на производительность куда сильнее, чем освещение и тени, которые можно рассчитать заранее. Т.е. если в игре есть смена ландшафта или погодных условий, их нужно прорабатывать с тройным усердием.
Особенности оптимизации
Теперь, когда у нас есть некоторое представление о самых ресурсоемких эффектах в современных играх, мы можем перейти к тому, что, собственно, нам нужно оптимизировать.
Предустановленные графические настройки типа «низкие», «средние», «высокие» и «ультра» в разных играх выглядят по-разному и не могут быть метрикой. Например, в Croteam говорят, что средние настройки — это что-то вроде морального ориентира, на который разработчик оглядывается на начальном этапе. Ближе к релизу команда определяет настройки для каждой предустановки, пытаясь найти для них идеальный баланс между качество картинки и производительностью.
Как оценивать оптимизацию игры
Недавний Survival Horror Dying Light с открытым миром, прожорливой дальностью прорисовки и сменой времени суток, кажется отличным пациентом для анализа. Игра получила спорные оценки во многом из-за своей оптимизации. Игроки, жаловались на то, что Dying Light не соответствовала стандартам на максимальных настройках графики, хотя эти самые стандарты они брали с потолка. Как оказалось позже, в первой версии игры для ПК разработчики ограничили дальность прорисовки на 55% т.к. в качестве мерила использовали мощное железо современных консолей.
Выглядела бы игра более «оптимизированной» со 100%? Сомневаюсь. Зато я уверен, что она съела бы на обед вашу видеокарту. Была бы она при этом лучше оптимизирована? Разумеется нет. Именно поэтому Dying Light – отличный пример того, насколько сложно объективно оценить качество оптимизации и факторов, которые должны учитывать разработчики при портировании.
Похожая история недавно произошла с Deus Ex: Mankind Divided, в которой важную роль имеет настройка сглаживания MSAA. Поскольку в игре используется отложенное освещение и затемнение – универсальная техника визуализации, которая делает намного менее эффективной простую реализацию MSAA с аппаратным ускорением — сглаживание давало большую нагрузку на видеокарту, чего никто не ожидал.
Игра редко представляет из себя монолитную сущность, которая либо оптимизирована, либо нет. Не оптимизироваными могут быть отдельные эффекты, но не игра в целом (прим: речь идет о больших игровых проектах). Это особенно бросается в глаза, когда разработчики внедряют в движок совершенно новые эффекты. Например, в Crysis мы впервые увидели рассеянное затемнение. В сравнение с современными образцами, оно тормозило и в целом было плохо оптимизировано. А в недавней Rise of the Tomb Raider – в целом хорошо оптимизированной и красивой игры – был не самый лучший пример оптимизации воксельного рассеянного затенения. Но в этом то и прелесть ПК, что модный тяжелый эффект 2010 года будет шикарно оптимизирован через пару лет.
Разумеется, существуют игры, которые действительно плохо оптимизированы. Обычно за ними стоит одно и то же: недостаток ресурсов, попытка небольшого разработчика откусить больше, чем он может прожевать, или просто низкие технические навыки. Если игра тормозит на базовых настройках и провисает до 20 кадров в секунду даже на мощном ПК, то здесь бессмысленно что-то анализировать.
Трудности оптимизации
Сам процесс создания оптимального кода (в том значении, которое используется в информатике) достаточно трудоемок. Для Дина Секулича из QLOC «худший кошмар оптимизации» — это «смотреть как выполнение верхней функции в профайлере занимает 3% времени».
Профайлер — это инструмент, позволяющий программисту увидеть, сколько времени у программы уходит на выполнение каждой функции и ранжировать их по порядку. Когда верхняя функция занимает 3% времени, это означает, что если вам удастся вдвое сократить время ее выполнения, то общая производительность программ ускорится на 1,5%. Но это титанический труд и задачи здесь редко повторяются. «Поэтому в оптимизации программы не бывает простых и очевидных решений», — говорит Дин.
Так же важно помнить, что оптимизация игры касается не только графики. Как говорят в команде разработчиков QLOC, «Для нас оптимизация — это еще и исправления неудачных решений с управлением, повышение комфорта игрового процесса, улучшения интерфейса, системы сохранений, работы с сетью и даже исправления ошибок первоначального кода».
Подводя итог
Несмотря на то, что эта статья описывает множество различных тонкостей, она лишь слегка заглядывает под капот оптимизации. Тем не менее, я надеюсь, что мне удалось раскрыть несколько секретов внутренней кухни, и помочь вам настроить любимую игру так, чтобы она не тормозила.
И напоследок прошу, будьте менее строги к оптимизаторам! Если они, конечно, действительно не облажались. Хотя новомодные и ресурсоемкие спецэффекты бывают бесполезны сегодня, они раскроются завтра. Их наличие лучше, чем их отсутствие. Они не делают игру не оптимизированной. Я всегда считал, что возможность вернуться к высококлассной игре много лет спустя и увидеть, как раскроется ее красота, является одним из главных преимуществ ПК как платформы. И было бы грустно видеть, как оно сводится на нет из-за недальновидных суждений об оптимизации.
Для тех, кто хочет знать больше
Подписывайтесь на наш нескучный канал в Telegram, чтобы ничего не пропустить.
Стоит только начать обсуждение новой игры для ПК, как неотвратимо всплывет слово «оптимизация».
«Похоже, что эту игру ВООБЩЕ не оптимизировали», — пишет кто-то из игроков в Steam. Metro: Last Light? «Если коротко, то оптимизация выполнена ужасно», — пишет другой.
Жалобы на плохую оптимизацию, как правило, идут бок о бок с фразами наподобие «у меня эта игра тормозит». Но связана ли производительность с ошибками программистов, которые не смогли эффективно написать код? Как понять, игра на самом деле плохо оптимизирована или для нее просто не хватает мощности вашего ПК?
В этой статье я постараюсь прояснить, чем является оптимизация на самом деле, расскажу о некоторых технических средствах вроде освещения и сглаживания, которые всегда требовательны к ресурсам вашего ПК, а также немного объясню, как разработчики определяют настройки графики и системные требования.
Что такое оптимизация, и чем её измерить?
Оптимизация в компьютерных играх — это вовсе не то же самое, что оптимизация в информатике. Она используется не столько для того, чтобы оптимизировать процесс, сколько для того, чтобы что-нибудь улучшить. Ключевое отличие состоит в том, что в информатике оптимизацией называется то, что дает точно такой же конечный результат.
Вот простой пример. Допустим, вам необходимо вычислить следующее:
Если вместо этого мы определим:
d = b*c, и запишем a = d + d + d
это будет «оптимизацией», так как для получения этого же результата используется всего одна операция умножения вместо трех. Если придерживаться такого узкого определения, то попытки сравнивать уровень оптимизации в разных играх, создатели которых ставят перед собой разные цели, становятся совершенно нецелесообразными.
Так как же нам рассуждать об оптимизации, сохранив хоть какую-то объективность? Вот какое определение дали мне в QLOC:
Показатель хорошей оптимизации — работающая игра работает с одинаковой частотой кадров на широкой линейке аппаратных конфигураций, включая низкопроизводительные.
Для поддержания стабильной частоты кадров они уделяют большое внимание настройкам графики, за счет которых можно преодолеть широкий технологический разрыв между высоко- и низкопроизводительными ПК.
Дин Секулич из Croteam оптимизирует игры уже 20 лет и уверен, что «с одной стороны, невозможно сравнить, насколько оптимизированы разные игры», но с другой? всегда можно составить мнение, визуально оценив качество двух разных игр и уровень производительности, который ими достигнут. Однако он также отмечает, что «есть много всего скрытого от глаз», влияющего на поведение игры.
Что же это? Понимание того, что такое оптимизация и что на неё влияет, подразумевает получение ответа на этот вопрос. Мы начнем с оценки того, как на производительность могут влиять те визуальные эффекты, которые дают наибольшую нагрузку на современные аппаратные средства.
Современные эффекты и производительность
Если вы разочарованы производительностью игры, скорее всего виной тому один из этих эффектов. В большинстве случаев картинка не выглядит плавной именно благодаря им, и с них стоит начать настройку графики для достижения частоты 60 FPS (кадров в секунду).
Качество изображения
Возможно, самый простой параметр, который заметно влияет на производительность и позволяет сравнивать уровень оптимизации, это разрешение экрана. Вполне естественно сравнивать игры на одинаковом разрешении, поскольку этот параметр состоит всего из двух чисел (к примеру, 1920×1080) и доступен для настройки практически в каждой игре. Важный факт, который часто упускается из виду: с изменением разрешения меняется количество выводимых пикселей — 4k дает нагрузку примерно в четыре, а не в два раза больше, чем 2k.
Сглаживание – это намного более сложная тема, когда дело касается сравнений. В современных играх вы можете встретить любую из этих настроек:
Список представлен в порядке возрастания ожидаемого влияния на производительность, за исключением последнего пункта, который зависит от используемых методов. Методы, работающие с экранным пространством, задействуют небольшое количество ресурсов, чуть больше нагрузки дает временное сглаживание, далее следуют мультисэмплинг и, наконец, суперсэмплинг. Мультисэмплинг представляет особую сложность для сопоставления производительности, поскольку, в зависимости от способа реализации, нагрузка при использовании этого метода может значительно различаться — от минимальной до близкой с суперсэмплингу. Суперсэмплинг достаточно легко соотнести с разрешением: использование 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 мы знаем в первую очередь благодаря их работе по портированию игр. Ожидая выход игры на ПК, игроки, как правило, вздыхают с облегчением, когда видят название этой компании. Если вы найдете в статье ошибки, то они принадлежат только мне, а не им.
В завершение статьи хотелось бы озвучить две просьбы.
Когда вы сравниваете относительную производительность игр, постарайтесь принять во внимание все то, что в них действительно заложено. Как говорилось выше, освещение в реальном времени и интерактивные объекты несравнимо труднее реализовать с той же эффективностью, как статические сцены, и реальность ставит всех нас — даже самых безучастных — перед фактом, что нагрузка на производительность не зависит от того, насколько оптимизированы эти эффекты.
Аналогичным образом, стоит учитывать, что даже если дополнительные настройки визуальных эффектов новейшего поколения сейчас бесполезны, их наличие в любом случае лучше, чем их отсутствие. Они не делают игру менее оптимизированной. Я всегда считал, что возможность вернуться к высококлассной игре много лет спустя и увидеть, как раскроется ее красота, является одним из главных преимуществ ПК как платформы, и было бы грустно видеть, что оно сводится на нет из-за недальновидных суждений об оптимизации