Вот это переvod: CD Projekt RED рассказывает о разработке The Witcher 2. Спецматериал от Digital Foundry. Часть вторая

Всем привет!

Продолжение предыдущего блога о портировании The Witcher 2: Assasins of Kings на Xbox 360. Теперь с комментариями от сотрудников студии.

Вот это переvod: CD Projekt RED рассказывает о разработке The Witcher 2. Спецматериал от Digital Foundry. Часть вторая

На этой недели Microsoft перевыпустила The Witcher 2: Assasins of Kings по обратной совместимости. Некоторое время игра будет доступна для бесплатной загрузки владельцам Xbox 360 и Xbox One. Такой подарок стоит опробовать на любой из консолей, взяв новую в особое внимание. Под таким поводом мы решили переиздать нашу статью о разработке игры, впервые опубликованную в мае 2012-го.

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

История берет начало еще во времена первой игры: тогда CD Projekt RED обратилась за помощью к коллегам из BioWare и приобрела лицензию на использование Aurora Engine, чтобы обеспечить основу для своего дебютного проекта. По мере разработки становилось ясно, что несмотря на все достоинства, технология не во всем подходит команде.

«Aurora — отличный движок, отлично себя показывающий в ролевых играх BioWare. Нюанс в том, что во многом The Witcher не похож ни на одну из них. Из-за различий нам пришлось вносить существенные правки в движок», — говорит старший программист Томек Вуйчик.

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

Причины были и в другом.

«Мы всегда хотели выпустить игру на нескольких системах, в том числе и на консолях. Осуществить наши планы с Aurora могло быть очень сложно, учитывая ее ориентированность на ПК. Разработка REDengine просто дала нам полный контроль над самим инструментарием и над тем, на что он способен», — добавляет Вуйчик.

Команда очень скромна в своих достижениях, но в наше время уже сама идея создать конкурента Unreal Engine, id Tech и CryEngine 3 просто поразительна.

«У REDengine много секретов: первый из них — люди. Я думаю, они ключевая составляющая успеха. Программисты, художники, дизайнеры — все приложили недюжинные усилия, сотворив технологию, которая соответствует всем требованиям отрасли», — с энтузиазмом говорит старший продюсер Гржесик Рдзани.

«Второй — тесное сотрудничество всех специалистов. Именно командная работа позволила заложить основу под их игровую концепцию. И все же, мы держали свои творческие амбиции в узде здорового прагматизма: если на рынке имелось соответствующее нашим требованиям решение, мы даже не пытались изобрести свой аналог. Вот почему мы использовали Havok для физики, Scaleform GFx для пользовательского интерфейса, а FMOD для звука.»

Такой подход разделяют практически все новаторы из-за существенной экономии времени, денег и работников. Очень редко, когда игра производится без какой-либо сторонней технологии. Даже Unreal Engine не обходится только своими силами.

К отдельной области фантастики принадлежит тот факт, что The Witcher 2 и REDengine разрабатывались параллельно друг другу. Можем только представить, какой сущий кошмар преследовал программистов и художников, вынужденных каждый раз подстраиваться под обновления игрового движка.

«Часть базовых вещей нужно было подготовить заранее. Все остальное мы делали уже одновременно с W2», — рассказывает Рдзани, прежде чем назвать преимущества такой разработки.

«С одной стороны, мы столкнулись с некоторыми осложнениями из-за временной нестабильности движка, но с другой, могли оперативно редактировать код в зависимости от наших потребностей и требований. Именно так мы создали все необходимое для такой игры, как The Witcher 2.»

Расширяя границы компьютерной графики

Финальная версия остается одной из самых технологически продвинутых из доступных на ПК, а REDengine уместно считать флагманом по части визуальных эффектов. Более того, некоторые настройки явно создавались с прицелом на будущее. В ходе нашего технического анализа, мы выявили, что даже Nvidia GTX 680 не выдерживает 720р60fps. Нам пришлось отключить уберсемплинг для сохранения стабильной частоты. Особенно жаль, учитывая, что он полностью устранял все проблемы с наложением и фильтрацией текстур.

«Ubersampling — наш метод сглаживания, вдохновленный рендерингом по типу трассировки лучей, а также некоторыми приемами фотографии», — объясняет старший программист Бартек Вронски.

Обычно он используется для устранения алиазинга на скриншотах, которые мы с другими материалами передаем прессе.»

«По сути это суперсемплинг в реальном времени: мы выполняем несколько проходов с небольшими субпиксельными отклонениями и смещением MIP-текстуры, а затем объединяем в одном буфере», — продолжает Вронски.»

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

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

«Глубина резкости боке — чуть ли не самая ресурсоемкая техника постобработки, созданная CD Projekt RED. Мы черпали вдохновение в том, как работает настоящий эффект глубины резкости в линзах: который не собирает, а фактически рассеивает размытые точки в трех глубинных срезах», — с гордостью делится Вронски.

«Наше решение оказалось избыточным для некоторых видеокарт ввиду затратности (особенно потому, что требовало смешивания в 16-битной плавающей точке). На Xbox 360, к большому сожалению, тоже пришлось отказаться в пользу стандартной глубины резкости по типу Гаусса. Тем не менее, мы считаем такой эффект как нельзя кстати подойдет консолям нового поколения.»

Очень редкий случай, когда CD Projekt RED признают, что им что-то не удалось перенести на консоль. В основном, Xbox 360 смог сохранить подавляющее большинство свойств; однако там, где прямое портирование было невозможно разработчики переписывали код с нуля, учитывая особенности платформы. Иногда консольные ухищрения выглядят даже приятнее, чем ультимативный вариант для ПК.

«The Witcher 2 — наша первая игра для Xbox 360. Мы сделали особый упор на качество, лишь изредка соглашаясь на компромиссы», — говорит Люциан Виечек.

«На Enhanced Edition у нас было больше времени, поэтому мы решили добавить некоторые функции, до которых не дошли руки изначально.»

Начинается разработка для консолей

Еще на раннем этапе разработчики приняли решение о том, что на консольная версия будет эксклюзивом Xbox 360. Объясняет причины исполнительный продюсер Джон Мамайс:

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

Основополагающее преимущество Xbox 360 было в технологическом сходстве со стандартным ПК, в котором центральный процессор обсчитывал исключительно игровую логику, не участвуя в рендеринге, как на Playstation 3. Сильно упрощал задачи и графический API, представленный на консоли уже знакомым DirectX.

«Первые шаги действительно давались легче, однако API в Xbox 360 характеризуется более низкоуровневым доступом к возможностям графического процессора и напрямую управляет eDRAM. Требовалось изменить управление ресурсами, потоковую передачу и даже сам ��ендеринг. Только разобравшись с нюансами, связанными с API, мы смогли приступить к оптимизации производительности различных систем», — рассказывает старший программист Балаж Тёрёк.

Только из-за фундаментальных различий рендеринга The Witcher уже справедливо считать самостоятельным релизом.

«Благодаря новому освещению консольная версия кажется более приятной глазу.»

Richard Leadbetter

«По правде говоря, мы переписали большую часть шейдеров и материалов, переделав весь конвейер постобработки. На начало портирования в большинстве локаций было около 5 кадров в секунду, то есть сцена отрисовывалась за 200мс, вместо желаемых 30», — говорит старший программист Бартек Вронски.

«Хорошо, что у нас было достаточно времени, чтобы найти большинство ограничений и обойти их. Что-то мы оптимизировали без потери качества, но ряд эффектов (например, частицы и альфа-эффекты) пришлось переделать и воспроизводить в половинном разрешении; для SSAO нашли менее точный, но дешевый аналог.»

Борьба с памятью консоли

Нехватка оперативной памяти в Xbox 360 долгое время оставалась отдельной загвоздкой. Сегодня даже ПК начального уровня обладает 4 Гб, но тогда такой объем считался непозволительной роскошью.

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

«Части должны были быть одновременно достаточно большими, чтобы обеспечивать надлежащий опыт и достаточно небольшими, чтобы подгружаться в фоновом режиме с DVD или HDD. Оптимизация The Witcher 2 под особенности Xbox 360 помогла настроить REDengine так, чтобы он обрабатывал только видимое на экране и загружал данные быстрее, не выходя за рамки объема памяти.

«Чрезвычайно важно было все посчитать и измерить. Однажды наш художник превысил один из возможных лимитов и тут же получил уведомление красного цвета с предупреждением. Несколько систем мы полностью переделали, чтобы уложиться в 512 мегабайт, начав с самых проблемных — анимации и навигационной сетки. Дальше мы просто продолжали работу над оптимизацией, пока не запустили игру на девките с 1 Гб памяти», — рассказывают старший программисты Томек Вуйчик и Балаж Тёрёк

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

Улучшение освещения

Даже отладив производительность, CD Projekt RED не перестала встречать вызовы на своем пути. Иногда очень неожиданные... Речь об особенностях обработки цвета на Xbox 360, из-за которых не удавалось напрямую перенести освещение.

«Выдерживать 30 кадров на всем протяжении игры очень непросто, но еще большей помехой для нас оставалась точность цвета. Xbox 360 имеет собственную выходную гамму, отличную от той, что мы привыкли видеть на ПК. И когда мы использовали 10-битные значения рендеринга для HDR (вместо 16), столкнулись с артефактами изображения в виде передержки, уродливых полос на тенях и в целом странными цветами», — вспоминает Бартек Вронски.

В очередной раз программисты и художники решали вопрос сообща.

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

«Решение оказалось верным: многим геймерам и рецензентам по душе больше пришлись оттенки и освещение на Xbox 360.»

«Разрывы экрана едва заметны из-за приглушенной цветовой гаммы и общей плавности игрового процесса.»

Richard Leadbetter

В нашем техническом обзоре мы пришли к выводу, что новое освещение стало особым успехом переноса The Witcher 2. Цвета были не только естественны и органичны, но и физически более правильны: на ПК мы иногда просто не понимали, где расположены источники света. Никто тогда и подумать не мог, что изменения вносились по техническим причинам и не имели отношения желанию CD Projekt RED пересмотреть работу со светом и цветом.

«Да, причина в самих технологиях, которые на Xbox выглядели не так хорошо. Именно потому мы целый год отдали работе над новым освещением», — утверждает ведущий художник Люциан Виечек.

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

Больше чем просто порт

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

Впрочем, версии для ПК и Xbox 360 по-разному реализовуют технологию из соображений производительности.

«На ПК используется сочетание традиционного и отложенного рендеринга: после расчета освещения мы применяем два значения зеркальности для шейдеров кожи и делаем два прохода с подповерхностным рассеиванием», — объясняет старший программист Бартек Вронски.

Еще одним испытанием на прочность стал небольшой объем сверхбыстрой eDRAM, напрямую подключенной к графическому ядру Xenos. Чтобы вместить все составляющие рендеринга в 10 Мб, CD Projekt RED сократили разрешение игры до 1280×672 с последующим масштабированием по вертикали. Альтернативным решением мог бы стать тайловый рендеринг — метод, при котором экран подобно мозаике разделяется на фрагменты и выгружается в основную память.

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

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

При выборе алгоритма сглаживания разработчики остановились на FXAA, который в отличии от MSAA не требовал двойной объем памяти.

«Да, мы применили FXAA. Такое сглаживание очень просто реализовать на любом этапе разработки. На Xbox 360 мы намеренно снизили эффект, чтобы и без того пониженное разрешение качества текстур и разрешение экрана не выглядели чрезмерно размыто», — подтверждает Вронски.

Центральный процессор Xbox 360 также добавил CD Projekt RED головной боли. Трехъядерный чип казался гораздо мощнее, чем был на самом деле: презентация Брюса Доусона на Microsoft GameFest отчетливо показала, насколько сложно добиться максимальной производительности. При частоте 3.2 Ггц. и поддержке аппаратной поточности консоли требуется пять циклов для выполнения всего одной инструкции.

«Мы столкнулись с некоторыми трудностями со стороны центрального процессора: несколько функций в коде оказались особенно неэффективны из-за проблем с Load-Hit-Store, а также ошибок L2-кэша», — подтверждает старший программист движка Балаж Тёрёк.

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

Усилия себя окупили. Возможно, Microsoft не стремится выводить игры Xbox 360 на новый технологический уровень, как Sony, но The Witcher 2 по иронии сам стал такой игрой. Сложно поверить, что столько работы было проделано всего лишь за 11 месяцев.

Вот это переvod: CD Projekt RED рассказывает о разработке The Witcher 2. Спецматериал от Digital Foundry. Часть вторая

«Наши программисты, художники и QA усердно трудились, чтобы достичь такого исторического результата. Игра отлично выглядит и работает на Xbox 360, хотя первоначально создавалась под мощности игровых компьютеров. Что ж, наша работа не прошла даром», — с энтузиазмом говорит исполнительный продюсер Джон Мамайс.

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

Будущее CD Projekt RED

Что дальше? Станет ли REDengine таким же универсальным инструментом как Unreal Engine или CryEngine?

«В первую очередь REDengine предназначен для RPG. Движок дает возможность создавать захватывающие нелинейные истории, динамичный игровой процесс, реалистичные масштабные миры — все то, что делает The Witcher 2, на мой взгляд, одной из лучших ролевок. Что касается вопроса, наша технология достаточно гибкая, чтобы обеспечить работу и гоночной игры, например», — говорит Томек Вуйчик.

Работа над улучшением движка и добавлением новых функций продолжается. Пока CD Projekt RED не разглашает такую информацию.

«REDengine уже содержит множество инноваций. Мы стараемся создавать действительно что-то впечатляющее, чтобы привлечь игроков и других разработчиков. Более подробно я рассказать не смогу, пока движок не будет полностью готов и не попадет в открытый доступ», — объясняет Люциан Виечек.

Компания планирует расширяться: эпоха эксклюзивов для персональных компьютеров, по крайней мере от CD Projekt RED, закончилась. Исполнительный продюсер Джон Мамайс уже подтвердил "переход на мультиплатформенную разработку и DX11".

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

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

Devkit Playstation 4<br />
Devkit Playstation 4

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

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

Реакция сообщества

Тем временем поддержка The Witcher 2 продолжается. А подход компании к бесплатным обновлениям и мерам по борьбе с пиратством нашел отклик в сердцах игроков.

«Мы выпускаем DLC, чтобы сохранить и приумножить наше растущее сообщество, очень важное для нашего дальнейшего успеха. CD Projekt RED старается прислушиваться к нашим поклонникам.»

Мамайс также рассчитывает, что принципиальная неприязнь студии к DRM поможет снизить влияние пиратства.

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

«Посмотрите комментарии на 4chan, где пиратов троллили за попытки скачать W2. Это ли не доказательство, что наш способ не только правильный, но и важный? Нам нужно, а игрокам нужно знать, зачем они покупают. Вот почему мы заботимся о нашей аудитории.»

Оригинальная статья и сопутствующие материалы:

13
3
19 комментариев