От руды до элекса - история движка в играх Piranha Bytes
Все началось в 1997 году, когда несколько коллег собрались вместе, основали Piranha Bytes и приступили к разработке лучшей в мире игры. Результат их труда был представлен широкой общественности в марте 2001 года под названием Gothic. Дебютная игра Пираний стала революционной во многих аспектах: никогда раньше не существовало ни одной RPG с таким впечатляющим игровым миром. Но какая технология за это отвечала? И как дальше развивалась история студии? |
В готической Долине Рудников практически отсутствовали загрузочные экраны — только для четырёх крупнейших подземелий были отдельные зоны загрузки. Диапазон видимости в этом открытом игровом мире был огромным, так что игра поставила на колени многие тогдашние компьютеры. У геймеров, впервые лицезревших Долину со Старым Лагерем посредине и суровыми горами на заднем плане, поотвисали челюсти, потому что в то время RPG в 3D была чем-то принципиально новым. В дополнение к открытости и видимости также впечатляло вертикальное перемещение, которого ранее не существовало. Игровой мир был не просто гигантским, но и невероятно живым: динамическая смена дня и ночи и погодные условия с реалистичными грозами и ливнями вдохнули жизнь в этот мир; падающие звёзды то и дело мелькали на ночном небе, а магический Барьер, отделявший Миненталь от внешнего мира, время от времени грохотал над головами заключенных. Персонажи проводили день правдоподобно: спали, просыпались, кушали, мылись, бегали по своим делам и беседовали друг с другом [прим. подробнее в посте «Почему Готика правдоподобней современных RPG»]. Кроме того, игра радовала окружающей средой с красивой растительностью, которая выглядела максимально естественно, а также интеграцией с DirectX 7 с обеспечением трансформации и освещения [T&L]. Всё это способствовало погружению.
Готика не сразу достигла успеха, что могло быть связано с высокими требованиями к оборудованию, багами и непривычным управлением, но стала неким «секретным рецептом».
Пираньи начали делать новую игру в жанре экшен, но работу над ней пришлось приостановить в пользу аддона к Готике, который позже, в свою очередь, был заменён на Gothic 2. Вторая часть продолжила историю Безымянного героя, позволила игрокам вернуться в Долину Рудников и сразиться с драконами. Gothic 2 была выпущена в ноябре 2002 года, т.е., после всего лишь 11 месяцев разработки, но графика заметно подтянулась. Модели имели больше полигонов, текстуры стали более детализированными, а видимость была выше. Количество объектов увеличилось, растительность похорошела - это видно по елям, легонько покачивающимся на ветру. Игра использовала DirectX 8 для лучшего освещения, и вода стала ещё красивее. Динамический цикл дня и ночи никуда не делся, и игровой мир снова можно было исследовать без каких-либо загрузочных экранов [исключение составляет переход туда-обратно между двумя крупными регионами]. Особенно впечатляющим оказался густонаселённый портовый город Хоринис с его многочисленными гражданами и торговцами, который сильно нагружал процессор.
Gothic 2 тоже изобиловала багами, но основную часть из них пофиксили, поэтому игра довольно быстро стала хитом. Десять месяцев спустя вышло дополнение Ночь Ворона, которое по праву считается одним из лучших аддонов в истории RPG, и превратило Gothic 2 в бессмертную классику. Игроки попадали в Яркендар, ранее недоступную часть острова Хоринис, где находились Долина Зодчих, пустынный каньон и пиратский лагерь. Аддон слегка облагородил графику — например, эффектом блеска металлических объектов, таких как пушки.
Удар. Пока часть Пираний под руководством Бьёрна Панкраца трудилась над дополнением, основная команда под предводительством Майка Хоге уже начала разрабатывать истинного преемника серии — Gothic 3. В амбициозных планах Готики 3 предусматривался полностью открытый игровой мир с тремя материками. Для решения этой непростой задачи Piranha Bytes искали новый движок. Сперва им понравился движок Gamebryo от Numerical Design Limited, который был разработан ещё в 1991 году и в последний раз использовался их главным конкурентом — студией Bethesda — для The Elder Scrolls III: Morrowind. У Gamebryo было преимущество в том, что он был более модулярен и лучше документирован. Однако, позже выяснилось, что данный движок недостаточно хорош для всех замыслов, таких как система физики и бесшовный мир с произвольными мешами. Так что Пираньи параллельно развивали свой собственный движок [прим. позже его назвали Genome] и, таким образом, заменили Gamebryo. В Gothic 3 создатели впервые использовали промежуточное программное обеспечение, такое как Ageia PhysX для физики [позднее приобретённое Nvidia], Emotion FX2 для анимаций и мимики, Miles Sound System для звука и Speedtree для растительности.
Но конструирование собственного движка — та ещё головная боль. Да и в целом, разработка Gothic 3 — великий подвиг для Пираний. Создание RPG в колоссальном игровом мире, который можно было целиком исследовать без каких-либо подзагрузок, и предоставляющем игроку полную свободу передвижения, было задачей неслыханной сложности для небольшой команды из 20 человек. Релиз Gothic 3 пришлось отложить на год, в итоге она вышла в октябре 2006-ого, когда издатель JoWooD уже не мог нести бремя финансирования, а Пираньи чувствовали себя достаточно уверенно, чтобы выпустить игру в свет.
Создатели знали, что игра не будет безупречной в момент релиза, и планировали устранить все недочёты патчами, но попросту недооценили масштаб проблем. Gothic 3 была технической катастрофой — об этом говорилось во многих обзорах. Игра страдала внезапными вылетами, низкой производительностью и лагами, повреждением сохранёнок, графическими сбоями, звуковыми глюками, забагованными квестами, дисфункциональным дальним боем и тому подобное. Игровые критики отмечали, что у команды не хватило времени. Сюжет был слабым — особенно концовка, которая создавала впечатление некой смехамтичности и незавершённости. Боевая система была сырой, а сама игра - несбалансированной. Когда первый ажиотаж спал, стало очевидно, что команда слишком много на себя взяла.
Несмотря ни на что, Пираньи многого достигли в Gothic 3. Да, игру наводняли баги, но на фундаментальном уровне она была вполне рабочей, и, вероятно, удалась бы на славу, если бы издатель выделил ещё несколько месяцев на полировку. Пираньи ухитрились соорудить совершенно новый движок параллельно основной работе — движок, позволяющий развернуть на всю катушку бесшовный мир ошеломляющих размеров. Все меши были довольно сложными, а значит, прикладывалось немало дополнительных усилий для расчётов рендеринга и физики. Это было чем-то невероятным в плане стриминга [прим. подгрузки игровых данных] и системы LoD. Движок вмещал 1,5 миллиона строк кода, написанных 3-6 программистами примерно за 3,5 года. В графическом плане игра являла собой пиршество для глаз: ландшафт, простирающийся до самого горизонта, густая и реалистичная растительность, смена дня и ночи, современное освещение и динамические тени. Однако, у графики были и слабые места: мелкий и плоский океан, странные пропорции тела и бьющая в глаза детализация — так что Пираньям было бесконечно далеко до The Elder Scrolls IV: Oblivion от Bethesda, который вышел чуть раньше, в этом же году. Сердцем Обливиона был всё тот же Gamebryo, поэтому в плане дальности прорисовки, текстур и FP16-HDR-рендеринга игра оставляла позади поделку Пираний, но при этом с треском проигрывала по части пейзажей, которые в Готике 3 создавались вручную и выглядели натуралистично. Кроме того, теоретически, пираньевский движок поддерживал сложные расчёты физики, игровые головоломки, гораздо более детальные меши и сложную материальную систему. В дальнейшем Пираньи выпустили несколько патчей, исправляющих самые грубые баги. Последний патч появился незадолго до Рождества 2006 года.
За кулисами были разногласия с JoWooD. Разработчики планировали усовершенствовать движок, сюжет и геймлей, но, чтобы не вкладывать слишком много ресурсов в фактически завершённый проект, было решено, что все новшества достанутся аддону к Готике 3. При этом, некоторые улучшения из аддона должны были переноситься в основную игру посредством патчей, а также был запланирован модкит. Вместо этого издатель потребовал направить все усилия на работу над обширным патчем. В 2007 год ознаменовался расставанием JoWooD и Piranha Bytes, последние заключили контракт с новым издателем — Deep Silvеr — с игрового подразделения Koch Media. Бывшему издателю достались права на бренд Gothic. Некоторые сотрудники, включая ведущего программиста, покинули команду Пираний.
Фанатам стало очевидно, что о выпуске официальных патчей не стоит даже мечтать, поэтому им пришлось устранять баги самостоятельно. Первый патч от компьюнити появился моментально, за ним последовали и другие [позже даже в сотрудничестве с Spellbound Entertainment]. Версия 1.6 была выпущена в начале 2008 года в составе Gоthic 3 Gold Edition. Тем временем, в конце 2008-ого, JoWooD явили миру печально известный аддон Отвергнутые Боги от разработчиков-индусов Trinе Games, который не только не исправлял старые огрехи третьей Готики, но и добавлял новые, так что лучше забыть его как страшный сон. Спасибо команде Patch Team [специализирующейся на создании патчей] за то, что в 2012-ом подремонтировала Fоrsaken Gоds довольно внушительным патчем. Ранее, в 2009-ом, Patch Team выкатила не менее внушительный билд 1.7 — помимо исправления ошибок, он привнёс новый баланс и облагородил графику. Команда продолжала полировать Готику 3 более мелкими патчами вплоть до 2012 года.
Чтобы не наступать на те же грабли, Пираньи пересмотрели организацию работ и сам процесс разработки. Во избежание дедлайнов команда стала трудиться более слаженно, а переделку фундаментальных аспектов игры согласовывала с издателем заранее. Новую игру собирали из отдельных частей в единое целое не аккурат накануне релиза, а задолго до него — соответственно, это благоприятно отразилось на качестве. Такая политика в компании действует до сих пор. Они создали новый бренд, но при этом стали более консервативными в плане геймплея, в угоду старым фанатам. Нынешняя игра была гораздо компактнее предыдущей и напоминала Готику 2, только более современную. Новое детище появилось на свет в 2009 году и получило имя Risen.
Несмотря на проблемы с Gothic 3, Risen был основан на её движке — правда, на более продвинутой и перепрограммированной версии. Чтобы игра гарантированно не содержала багов, программисты приняли кое-какие меры. Они полностью вылечили все болезни движка, и прикрутили особую квестовую систему для сценаристов — для предотвращения квестовых и сюжетных дыр. Движок обзавёлся новой многопоточной системой для поддержания двухъядерных и даже четырёхъядерных процессоров, а также стримингом, оптимально работающим на отдельном ядре — поэтому во время исследования игрового мира FPS почти не проседали. Поиск пути и искусственный интеллект [AI] стали более толковыми, поэтому NPC запросто могли следовать за игроком через подлесок. Наряду с организационными и структурными мерами эти технические усовершенствования сделали Risen свободной от багов, за исключением совсем уж незначительных. Пираньи частично восстановили свою репутацию — не последнюю роль в этом сыграли хардкорный геймплей и история.
Разумеется, Risen выглядел поприличней и в плане графики, хотя из третьей Готики в него перекочевали рендеринг и DX9 с шейдерной моделью 3.0. Движок традиционно обладал мощной системой управления освещением, на которую влияли время суток, погода и регион. Кроме того, Пираньи интегрировали в движок FP16-HDR-рендеринг с преобразованием динамического диапазона яркостей — это добавило картинке лоска и натуралистичности. Всё это дополнялось адаптацией для зрения, при которой виртуальному глазу приходится привыкать к уровню освещённости при выходе из тёмной комнаты на улицу и наоборот. Новой особенностью стало каскадное теневое отображение с мягкими тенями. В дальнейшем графика усовершенствовалась с помощью SSAO [Screen Space Ambient Occlusion] - известного по Crysis 2007 года — данный эффект придавал картинке убедительности, имитируя косвенное затенение. Эффекты солнечных лучей просто изумляли, прекрасное освещение — визитная карточка Risen, наряду с естественным ландшафтом и густой растительностью бесшовного острова Фаранга. Так как остров со всех сторон окружён океаном, по сравнению с Gothic 3 визуализация воды улучшилась, а океан стал более глубоким. Но, с другой стороны, Risen раскритиковали за устаревший внешний вид по причине небольшого количества полигонов, смазанных текстур и старомодных анимаций. Ещё хуже дела обстояли с портом на Xbox 360 от французской компании Wizarboy — он и вовсе был графическим несчастьем.
Годом позже компания JoWooD выпустила официальную наследницу серии Gоthic под названием Arcania - на движке Trinigy Vision. Багов там было немного, но контент разочаровывал, поэтому игра с треском провалилась. JoWooD объявила о банкротстве, её бренды перекупила Nordic Games для своего австрийского филиала. Год спустя под их эгидой вышел короткий аддон к Аркании от студии-разработчика Arcania Spellbound, который так же не окупился. В тот же период Bethesda выпустила The Elder Scrolls V: Skyrim на основе новейшей версии Gamebryo — к тому времени его основательно переработали и переименовали в Creation Engine. Тогда же Пираньи разработали для Deep Silvеr очередную игру — на этот раз, с пиратским сеттингом — Risen 2: Dark Waters, перевернувшую с ног на голову традиционный пираньевский геймплей. На фоне довольно консервативной Risen это был рискованный ход. Однако, фанаты смешали игру с грязью из-за спорных нововведений и слабой боевой системы, поэтому сиквел не смог тягаться с успехом оригинала.
С технической точки зрения игра была практически без багов, как и её предшественница, а графика сделала большой рывок вперёд. Свет был реализован ещё лучше, так как средством рендеринга стала модификация так называемого отложенного освещения. Затенение перепрограммировали — добавили каскадные теневые карты без мягких теней. Впервые в океане были трёхмерные волны, а над кострами курился дымок. Небо изменилось до неузнаваемости. Пираньи юзали последнюю версию Speedtree, поэтому Risеn 2 могла похвастаться большим количеством трёхмерных деревьев, в отличие от Gothic 3 и Risen с их плоской растительностью. Объёмный туман вдалеке придавал графике необыкновенную глубину. Risеn 2 была первой игрой от Пираний, предлагающей алгоритм сглаживания FXAA. Этот фильтр обнаруживает и смягчает угловатость, но при этом немного размывает изображение, а ещё он бессилен против подпиксельного алиасинга. Для рендеринга местности разработчики интегрировали движок рельефа, упрощавший работу с картами высот — благодаря этому стало намного легче создавать и переделывать карты, по сравнению с использованием одной-единственной 3D-модели.
Апгрейд моделей, текстур и анимаций не прошёл даром — графика ощутимо похорошела, в сравнении в первым Ризеном. Солидную долю бюджета для Risen 2 Пираньи вложили в аутсорсинг, что благоприятно отразилось на качестве объектов и моделек персонажей. Особенно это касается анимаций, для которых использовалось ПО Morpheme. Лицевые анимации были реализованы посредством блендшейпов, а анимации сражений — с помощью технологии захвата движения [Motion Capturing]. Но у Risen 2 были некоторые графические проблемы. Тени, как правило, мерцали — обновление драйверов помогало устранить эту оплошность, но целиком она не убиралась. Растительность была сконфигурирована так, что, чтобы казаться плотнее, сжималась при приближении и расширялась при отдалении, и это быстро начинало раздражать. Из-за чрезвычайно агрессивной детализации объекты слишком поздно появлялись перед глазами или деформировались — последующие патчи кое-как исправляли эти проблемы, но далеко не полностью. Wizarbox на этот раз портировала игру не только на XBox 360, но и на PlayStation 3, и получилось ещё хуже, чем в прошлый раз.
Почти два года спустя была анонсирована последняя часть серии — Risen 3: Titan Lords, выпущенная осенью 2014 года на РС, Xbox 360, PS 3. Она представляла собой некий компромисс между пиратским сеттингом предшественницы и узнаваемыми элементами серий Gоthic и Risеn. Движок и геймплей прокачали, поэтому фанаты тепло приняли игру [прим. переводчик категорически не согласен с автором статьи].
Для Risen 3 Пираньи усилили движок Risen 2: рендеринг был в DirectX 9, но был переключен на отложенное освещение и затенение [Full Deferred Renderer] и физически точный шейдинг [Rhysical Based Shading]. В итоге поверхности и материалы, такие как камень, металл, вода, кожа и т.д., стали выглядеть более жизненно. Прогресс затронул и тени — благодаря интегрированию в рендеры Soft Shadows, они не мерцали как раньше. Объёмный туман был реализован функцией Volumetric Fog Shadows, создающей «эффект солнечного луча», улучшающий объёмное освещение. Кроме того, Пираньи заново смоделировали воду для морских баталий, ставших фишкой Risen 3, откорректировали LoD и устранили морфинг растительности. Появилась новая физика для тканей и предметов [таких, как бочки] и мокрые поверхности во время дождя. Жесты и новые анимации были качественными благодаря Motion Capturing. Помимо этого, незначительно увеличилась плотность объектов.
Разработчики сделали так, чтобы путевые точки не приходилось настраивать вручную — теперь это делал движок, что существенно снизило объём работы. Risen 3 также вмещала в себя автоматическую программу для Occlusion Culling — отключения рендеринга объектов, которые в данные момент не видит камера [прим. обычно в компьютерной 3D-графике это не происходит автоматически]. Несмотря на то, что графика подтянулась, за счёт хорошей оптимизации движка производительность оставалась на уровне Risen 2, а в чём-то даже лучше — так как тени больше не снижали производительность.Также улучшился стриминг и поддержка многоядерных процессоров. На этот раз версии для консолей получились толковыми, потому что их сделали сами Пираньи в сотрудничестве с другим разработчиком.
Год спустя был выпущено неплохое издание Risеn 3: Enhanced Edition для РС и PS4 — первая игра Piranha Bytes для консолей нового поколения. Расширенную версию тоже портировали сами Пираньи, и она содержала некоторые графические украшательства. С тех пор движок стал 64-битным, это повысило дальность прорисовки и позволило применять более детальные текстуры — что наглядно демонстрировалось в Enhanced Edition. Кроме того, был добавлен новый HDR-блюм, новая физическая визуализация облаков и новый эффект глубины резкости с боке [прим. эффект боке — намеренная размытость, нечёткость фона для визуального выделения объекта в фокусе].
Risеn 3: Enhanced Edition послужило подготовкой к очередной игре от Пираний - ELEX, которая вышла 17 октября 2017 на РС, PlayStation 4 и Xbox One, под эгидой издательства THQ Nordic [в прошлом Nordic Games]. Она представляет собой постапокалиптическую научно-фантастическую RPG с полностью открытым миром, в 1,5 раза превосходящим размер мира Gothic 3. И вновь Пираньи сами делали порт с PC на консоли. Также они отладили движок для более успешной реализации своего видения игры. Разработчики улучшили технологию стриминга, чтобы избавить ELEX от загрузочных экранов. Для этого они разделили мир на статические и динамические объекты, в результате чего статические объекты не могут перемещаться и не оседают в сейвах. Статическая сцена сохраняется в памяти и перезагружается в фоновом режиме, а динамические декорации загружаются при запуске игры. Для того, чтобы у ELEX было больше преимуществ от многоядерных процессоров, Пираньи распараллелили рендеринг. Теперь игровая логика выполняется параллельно с рендерингом. К системе поиска пути, основанной на промежуточных путевых точках, добавлена дополнительная система, основанная на полигонах, что позволяет NPC беспроблемно перемещаться по всему игровому миру.
Графика сделала большой шаг вперёд. Впервые используется DirectX 11, который, по словам Пираний, предлагает множество интересных функций, открывающих совершенно новые возможности, в сравнении с DirectX 9. Создатели активно пользуются DirectCompute и возможностью записи в любое место в буфере или текстуре [Unordered Access Writes]. Это позволило воссоздать такие эффекты как унифицированное объёмное освещение и фоновое затенение, оно же LSAO [Line-Sweep Ambient Occlusion], чего нельзя достичь традиционным пиксельным шейдером. Пираньи полностью переработали систему объёмного освещения - теперь она основана на физике. Это значит, что в новой игре, в отличие от Risen 3, объёмное освещение включает в себя все источники света, тени и GI [Global Illumination]. В целях улучшения производительности используются вычислительные шейдеры [Сompute shaders] – например, при операциях с фильтрами или Оcclusion Сulling. Кроме того, материальная система Пираний поддерживает тесселяцию любых объектов.
Сначала рендеринг был переключен на Forward+ [прим. это графическая техника учёта освещения одновременно с выводом геометрии], а ближе к завершению разработки добавился DR [Deferred Rendering[/b], он же отложенный рендеринг] с плиточной системой [Tile-Based]. Forward+ требует меньше памяти, чем DR во времена Risen 3, потому как генерирует уже готовое изображение. Благодаря ему легче интегрировать специальные материалы, базирующиеся на физике, таких как волосы, кожа и т.д. Также, просвечивающие и плотные объекты могут обрабатываться одинаково. В принципе, Forward+ позволяет использовать классический MSAA [прим. Multisample anti-aliasing – метод сглаживания, который эффективнее более мыльного FXAA, но потребляет больше ресурсов видеокарты по сравнению с более качественным SMAA], но это ухудшает производительность, в сравнении с DR. Из-за проблем с производительностью на старых консолях и РС было решено переключиться на DR с плиточной системой, хоть это и лишало игру MSAA.
Благодаря новой графической функции для более реалистичной имитации света - GI, вычисляющей непрямое освещение, графика выглядит более приближённой к жизни. Из-за того, что расчёт GI в реальном времени сильно влияет на производительность, разработчики игр обычно рассчитывают его заранее – в результате чего в таких играх при смене дня и ночи GI не задействована. Совмещение GI с ночным и дневным циклом в ELEX было сложной технической задачей.Пираньи подошли к ней с нескольких сторон: для рассеянного света они ещё на этапе предварительного расчёта создали неструктурированную сетку зондов освещения [Light Probes], каждый из которых содержит определённую информацию, необходимую для закрепления с текущей ситуацией освещённности при движения во время игрового процесса. Затем зонды объединяются в объёмную модель с использованием тетраэдрической интерполяции, так что непрямое освещение можно увидеть в любой точке пространства. К тому же, Пираньи предотвратили прохождение непрямого света через тонкие стены – а это обычное дело для GI, основанной на объёме. Для реализации отражений Пираньи вычисляют кубики для разных точек пространства, скорректированных для текущей ситуации освещения, а затем интерполируют эти кубики с помощью сетки, уже используемой для рассеянного света.
В качестве дополнительной фишки ELEX предлагает физическую камеру – это виртуальная камера, которая работает в соответствии с законами физики. Физически моделируются определённые взаимозависимые действия, такие как открытие объектива и возникающее в связи с этим размытие изображения. Ambient Occlusion тоже продвинулась: игроки могут переключаться между традиционным LSAO и HBAO. Оба варианта относятся к технологии Far Field Ambient Occlusion, которая, в свою очередь, является подтипом SSAO. HBAO подходит для слабых систем, но LSAO предлагает более красивую картинку, так как при расчётах лучи распространяются по всей глубине резко изображаемого пространства. Впервые в игре от Пираний трава отбрасывает тени на саму себя и на всё, что вокруг – что позволяет ей органично вписываться в окружающую среду и выглядеть настоящей. И наконец, все модели, включая персонажей, сильнее детализированы, текстуры имеют гораздо более высокое разрешение, а анимации стали правдоподобнее. Однако, Elex не будет поддерживать DirectX 12 или Vulkan, потому что оба API не были доступны на старте разработки, так что теперь у разработчиков нет времени на их интеграцию. Хотя Пираньи называют Vulkan интересной альтернативой DirectX.
Учитывая тот факт, что Piranha Bytes отлаживают свой движок ради повышения качества игр, можно ожидать от ELEX очень современной графики, хорошей производительности и минимума багов. И, кто знает, вдруг это будет лучшая игра в мире? [прим. От себя добавлю, что это крепкая, средняя RPG, за которую не стыдно. В ней отсутствуют инновации, но она и не претендовала на революцию в жанре. Главное – в неё интересно играть, и она однозначно стоит потраченного времени. Судя по количеству копий, проданных в Steam, ELEX окупилась – с чем и поздравляем маленькую уютную эссенскую студию. Надеюсь, грядущий сиквел учтёт ошибки оригинала. Мне уже не терпится в него поиграть.]