Кто виноват в плохой оптимизации игр? Отвечают создатели Crysis, Dying Light и Serious Sam

Eсть нa свeтe извeчныe вoпрoсы, нaд рeшeниeм кoтoрыx зaкипaют лучшиe умы мирa. «Чтo eсть крaсoтa?» «Пoчeму улыбaeтся Мoнa Лизa?» «Зaчeм Ридли Скoтт снял «Прoмeтeя»?» и, рaзумeeтся, «Пoчeму oдни игры нoрмaльнo идут нa кoмпьютeрe, a другиe нeт?». Пoслeдний мучaeт ужe нe oднo пoкoлeниe PC-гeймeрoв oтсутствиeм чёткoгo oтвeтa. Дeйствитeльнo, кaк тaк пoлучaeтся, чтo рeaлистичныe шутeры умудряются oтличнo рaбoтaть дaжe нa кaлькулятoрax, a урoдливыe квeстики прoсeдaют и зaикaются гдe угoднo? Кoллeктив 4PDA рeшил oбрaтиться к свeтилaм индустрии и разобраться в феномене.

Сброс балласта

Ныне заветным словом «оптимизация» бросаются по поводу и без. Проблемы с запуском? Лишь 59 кадров в секунду вместо 60? Дистрибутив весит порядка сотни гигабайт? Ох уж эти лентяи, совсем не желают оптимизировать софт как подобает. А, кстати, что это вообще за процесс-то такой? Загадка.

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

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

«На наш призыв откликнулись сотрудники Crytek, Croteam и Techland»

Но всё это — лишь общий взгляд человека, который сам никогда не залезал под капот любимой игры. А что скажут эксперты? На наш призыв откликнулись сотрудники Crytek, Croteam и Techland. Итак, что же чародеи мыши и клавиатуры могут рассказать о технологиях «облегчения» программ?

Слева направо: Дин Секулич (Croteam), Ян Хеллвиг (Crytek), Якуб Кларович (Techland) и Томаз Шалковски (Techland).

Наши эксперты:

  • Дин Секулич — старший программист Croteam (работал над The Talos Principle и серией Serious Sam).
  • Ян Хеллвиг — программист Crytek (работал над Robinson: The Journey).
  • Якуб Кларович — директор по технологиям Techland (работал над Dead Island, Dying Light и серией Call of Juarez).
  • Томаз Шалковски — ведущий программист Techland (работал над Dead Island и Dying Light).

 

Так ли важна оптимизация

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

Дин (Croteam): Невероятно приоритетная! Мы даже самые слабые PC-билды (способные запустить нашу продукцию на минималках) не обходим стороной. Порой отказываемся от динамического освещения в пользу заранее заготовленного ради них.

Команде кажется, что производительность всегда должна быть высокой. Почему? Даже не знаю. Действительно, и зачем было так заморачиваться с Serious Sam…. Наверное, нам просто нравится, когда игры работают как подобает.

А вот с Talos всё несколько проще — ею увлекается много казуалов, не хардкорных геймеров. Обычно у такой публики PC послабее — но они ведь тоже хотят поиграть. Что, впрочем, неудивительно — игра-то чудесная. [улыбается]

«Выпуск сырого продукта — это то, чего разработчикам следует избегать»

Ян (Crytek): Выпуск сырого продукта — это то, чего разработчикам следует избегать. Иначе их ждут разочарованные клиенты, плохая репутация и низкие продажи — гораздо ниже, чем у собранных надлежащим образом игр. К слову, при создании VR-проектов оптимизация становится во главу угла — чтобы у пользователей не возникало чувства физического дискомфорта.

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

Томаз (Techland): Как правило, мы оптимизируем продукцию для конфигураций с одной стороны слабых, но способных запустить проект в приемлемом (в рамках маломощного «железа») качестве. Работа всегда начинается с консольных версий — именно в них уходит больше всего сил и труда.

А под топовые компьютеры, в свою очередь, технологии подгоняются так, чтобы геймплей казался плавным — 60 кадров в секунду и более. Частенько добавляем уникальные для PC настройки качества (например, NVIDIA GameWorks), а особенности работы «персоналок» (допустим, поддержка DirectX 11) учитываются уже уровне архитектуры движка.

 

Сложно ли это — оптимизировать игру под разные билды? Как долго длится этот процесс? Что он в себя включает?

Дин (Croteam): «Разные билды» — в смысле платформы? О, да, это сложно. И утомительно. И долго. Просто неописуемо! [улыбается]

А если серьёзно, подгон под разные платформы — это редкость, и обычно всё вписывается в пресеты нашего движка. Но когда случается непредвиденное — тогда уже приходится изобретать. Как, например, в случае с использованием EDRAM для Xbox 360: с ней пришлось повозиться, зато теперь мы лучше управляемся с «вулкановским» API. И даже не пытайтесь понять, как так получается.

Ян (Crytek): Для начала надо понять из-за чего возникают проблемы с производительностью. В CRYENGINE есть специальный инструментарий, с помощью которого мы выясняем, над чем нам нужно сосредоточиться — CPU или GPU.

Потом мы проверяем, какие части кадра требуют больше ресурсов, чем необходимо. Скажем, количество объектов на экране или излишне запутанная AI-рутина. Выявив проблему, идём к ответственному за них человеку и пытаемся сообразить, как и что можно улучшить или упростить. Обычно это подразумевает работу с C++ кодом, переделку уровня или модификацию ассетов.

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

«Приведение в порядок почти готового к релизу тайтла может занять 3–6 месяцев работы»

Томаз (Techland): Смотря какая игра, её размер, комплексность. Разумеется, мы всегда обращаем внимание на производительность. Приведение в порядок почти готового к релизу тайтла может занять 3–6 месяцев работы у небольшой команды инженеров-программистов. Наш же движок совместим с разными платформами, так что график Techland более гибкий.

 

Насколько процесс оптимизации изменился за годы вашего пребывания на рынке?

Дин (Croteam): Да немного, на самом деле. Если не считать появления ма-а-алю-ю-юсенькой вещицы под названием «многопоточность». Пришлось потратить немало времени и нервов, чтобы приспособить её под наши технологии.

Томаз (Techland): Суть не меняется, а вот инструменты — программы, железо и драйвера — разнятся. Но сам процесс един: найти проблему, что-то поправить, изучить результаты. И так до победного.

Якуб (Techland): Разработка в начале жизненного цикла какой-то технологии всегда сложна. Как, например, было с DirectX 12. Во-первых, из-за надобности освоить новый API и адаптировать движок, во-вторых, «благодаря» несовершенству инструментария. В подобных случаях очень помогает близкое сотрудничество с поставщиками оборудования (IHV).

 

Консольный вопрос

Какие трюки вы используете, чтобы игра и хорошо смотрелась и отлично работала?

Дин (Croteam): Всего один трюк — оптимизацию! [улыбается]

А если приводить примеры — создаём геометрию под разные пресеты графики. Правильно высчитываем и проставляем дистанцию для рендеринга. На самом деле это даже не трюки, так, обычная логика. Ну ладно, снижение разрешения 3D-рендеринга тоже можно счесть за трюк. Наверное.

Ян (Crytek): Хитрых уловок, с помощью которых можно заставить современный AAA-тайтл работать на десятилетнем железе, не существует. Ровно как нет какого-то универсального способа решить все проблемы с производительностью.

Процесс оптимизации всегда разный, и Crytek старается шлифовать свои движки ещё до начала разработки. Мы пытаемся внедрить наш графический функционал с учётом возможностей компьютеров, что заметно упрощает процесс оптимизации, когда наши продукты (или продукты наших лицензиаров) приближаются к релизу. Таким образом нам удаётся улучшить рабочий процесс не только сотрудников, но и всех пользователей CRYENGINE.

«На современных платформах процесс [оптимизации] не столь болезненный, каким он был на Xbox 360 и PlayStation 3»

Томаз (Techland): Наш обширный и весьма профессиональный QA отдел помогает находить проблемы, о существовании которым мы даже не подозревали. Они тестируют всё на разных конфигурациях.

Якуб (Techland): Ещё нам помогают те самые лаборатории IHV — там очень широкая база «железа» и способов проверки. Никто так хорошо не разбирается в нюансах работы GPU, как их авторы.

 

Считаете ли вы, что сложность подгонки игр под разные PC-билды вынудила разработчиков массово эмигрировать на консоли? И под что сложнее оптимизировать — под PC или консоли (допустим, PlayStation 4 и Xbox One)?

Дин (Croteam): Сразу говорю, на современных платформах процесс не столь болезненный, каким он был на Xbox 360 и PlayStation 3. И всё же, какой смысл переходить на чисто консольную разработку, когда в наших руках такой хороший движок и нам в любом случае надо смастерить PC-версию — как минимум для тестов? Так почему бы и не выпустить игру на PC?

Если сравнивать «персоналки» и приставки, я бы сказал, что с последними сложнее. Но если ты попал в яблочко однажды, больше проблем не будет. А вот на PC так не получится: хватает разных подводных камней вроде плохих драйверов, дурных операционных систем…

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

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

И всё же оптимизация под PC не обязательно сложнее, чем под приставки. А вот проверка результатов на разных машинах — это отнимает кучу времени.

Томаз (Techland): А я не согласен (что эмиграция на консоли вызвана сложностью оптимизации для PC – прим. ред.). Не в этом дело. Напротив, благодаря обилию оборудования и способов обучения разработка на PC куда проще, чем на консолях. Каждый может вникнуть в работу с DirectX или Vulkan «с нуля». А если что-то не работает — что ж, стоит подтянуть системные требования.

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

 

Кто виноват в плохой оптимизации игр

Как компания относится к плохо оптимизированным играм, которые криво работают даже на топовых конфигурациях?

Дин (Croteam): Я убеждён, что геймеры заслуживают лучшего. И мы пытаемся соответствовать. А что же до компаний, которые не тратят своё драгоценное время на шлифовку — что ж, они выставляют себя в не самом лучшем свете. Но углубляться в тему, пожалуй, не буду.

«У игры может быть отличная техническая архитектура, а её всё равно будут хаять за то, что нынешние компьютеры не в силах вытянуть её на максимуме»

Ян (Crytek): Существуют десятки объяснений, почему та или иная игра плохо работает — в каком-то смысле, ни один продукт не получится идеально оптимизировать. Главное — сделать задачу приоритетной с самого начала разработки, всегда держать её в голове и никогда не думать «авось прокатит».

Томаз (Techland): «Плохо оптимизированным»… Не нравится мне это словосочетание — многие геймеры (и даже сотрудники прессы) не знают, о чём говорят. У игры может быть отличная техническая архитектура, у неё может быть задел на будущее (ультра-высокие настройки), а её всё равно будут хаять за то, что нынешние просто хорошие компьютеры не в силах вытянуть её на максимуме. Тут же идёт волна ненависти, и волна не всегда осмысленная (как было с Batman: Arkham Knight).

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

Здесь важна быстрая реакция и хороший коллектив. Как-то раз я по удалённому доступу связался с одним из клиентов (родом из Бразилии), чтобы покопаться в его системе и понять, почему же наш тайтл так плохо у него шёл. Мы разобрались с проблемой — дело было в вирусах.

Techland старается активно и долго поддерживать свои продукты. Поэтому мы следим за форумами Steam и кропотливо ведём собственный. Первые 2–3 недели после релиза на PC всегда самые «горячие». Далеко не каждая компания может себе позволить столь обширные тесты ни до, ни после выхода проекта.

«PC-рынок растёт — чем больше у покупателей денег, тем придирчивее они будут относиться к недоделкам»

Проблемы начинаются, как только фортуна от нас отворачивается. PC-рынок постоянно растёт — чем больше у покупателей денег, тем придирчивее они будут относиться к недоделкам. А тут ещё проблема пиратства — которая, как мне кажется, только пойдёт на убыль (я натыкался на запросы по поводу старых, «спиратченных» версий наших игр). В этом плане с консолями куда проще, пускай недавно количество их вариаций несколько выросло. И мы, и производители их регулярно тестируем.

 

Беседовал Игорь Ерышев

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.