Новый движок для новой Call of Duty
Одним из заметных событий прошедшей недели стал анонс новой части Call of Duty — ведь Call of Duty: Modern Warfare, ребут одноименного хита 2007 года, будет первой за 14 лет игрой серии, которая работает на новом движке, и к тому же будет поддерживать кросс-плей на PC, PS4 и Xbox One. На закрытом пресс-показе, устроенном для прессы и стримеров в Лос-Анджелесе, Activision показала 15 минут игрового процесса, чем вызвала небывалый восторг у публики. Всем остальным геймплей продемонстрируют только на E3, но, к счастью, произойдет это уже совсем скоро.
Удивительно, но похоже, что это действительно новый движок, а не обещания маркетологов Activision, которые вы могли слышать прошлые N раз; это подтверждают специалисты Digital Foundry, пообщавшиеся с разработчиками и выяснившие технические подробности.
Судя по ранним отзывам очевидцев, движок новой Call of Duty сможет составить полноценную конкуренцию актуальной версии Frostbite, поскольку разработчикам удалось достичь больших успехов по части картинки и звука. Разработка движка заняла 5 лет; в его создании принимала участие студия Infinity Ward Poland, которая была открыта в конце 2017 года с целью R&D. В создании игры принимают участие ветераны, покинувшие в Infinity Ward после выхода оригинальной Modern Warfare и ушедшие в Respawn, а теперь вернувшиеся обратно поработать над ребутом (что само по себе забавно — ведь если бы не небывалый успех Modern Warfare и последовавший за ним скандал между Activision и отцами-основателями Infinity Ward, то Respawn и Titanfall никогда бы не появились на свет).
Интригует и тот факт, что к Infinity Ward некоторое время назад присоединились Джейкоб Минкофф и Тейлор Куросаки, ушедшие из Naughty Dog, где они принимали участие в работе над Uncharted и The Last of Us, после чего в компанию перешло еще несколько экс-сотрудников Naughty Dog. Вместе они отвечают за сюжетную составляющую новой игры, которая будет посвящена «взрослым» темам и обещает быть достаточно провокационной.
Технические подробности
Смысл в создании нового движка однозначен: в ближайшем будущем нас ждет next gen, который может наступить уже в 2020 и будет совместим с текущим поколением консолей. Перед разработчиками нового движка стояла задача заложить фундамент для дальнейших игр серии, не растеряв ее достоинств. Учитывая, что приоритетом технологической стороны Call of Duty всегда была способность поддерживать частоту кадров в 60 FPS, это была не самая простая задача, но им с успехом удается с ней справиться.
Отличительной особенностью трейлера новой Call of Duty является то, что (по утверждению разработчиков) всё показанное в нем — «по-честному», а сам трейлер записан на PlayStation 4 Pro (никаких CG/in-engine footage).
PBR и фотограмметрия
Радикальная переработка движка началась с создания передовой системы рендеринга, основанной на PBR и фотограмметрии. Здесь все достаточно стандартно — при сканировании объектов сохраняется не только информация об их форме, но и свойства материалов вроде roughness/reflectivity; этот шаг необходим для интеграции с новой системой освещения.
С художественной точки зрения, это позволило не только достичь реализма, но и целостности визуального образа игры — ведь теперь большим количеством деталей могут похвастаться не только модели оружия и близлежащих к игроку объектов, но и все окружение. Продвинутый алгоритм culling (исключение скрытых частей трёхмерного изображения) позволяет уместить на сцене в 5 раз больше геометрии, чем это было возможно в прошлых играх серии. Показанная в трейлере сцена с толпой, к примеру — это целых 8 миллионов полигонов.
Серьезный апгрейд получила система освещения. Теперь движок реализует volumetric lighting, поэтому каждый источник света в игре по своей природе является объемным, благодаря чему стало возможным разнообразить атмосферу игровых уровней — например, добавить эффект сырости или стелющийся по земле туман. Сумеречные лучи (god rays) в игре также присутствуют, но это больше не эффект пост-процессинга, а полноценный результат столкновения лучей с геометрией игровых объектов.
Разумеется, движок поддерживает и рейтрейсинг на PC — без этого сегодня никуда.
Если внимательно взглянуть на трейлер и скриншоты, можно заметить, как сильно новый технологический стек и арт-дирекшн завязаны друг на друга — к примеру, скайбоксы и уровни освещенности воспроизведены по реальным локациям, а система пост-процессинга пусть и основана на наработках последних частей COD, но в очередной раз улучшена — на этот раз в основном в части интеграции с объемным светом (volumetric lighting).
Для справки: конкурент CoD и Activision — движок Frostbite, разработанный DICE и используемый в Battlefield — работает с фотограмметрией начиная со Star Wars: Battlefront (2015), о чем его разработчики делали доклад на GDC.
Спектральный рендеринг
Впечатляющим нововведением стало включение того, что разработчики называют «спектральным рендерингом». Эта система «видит» рендерер Call of Duty в реальном времени за пределами видимого спектра — то есть включая тепловое и инфракрасное излучение. Из-за новой системы реалистичного освещения в некоторых условиях без прибора ночного видения не обойтись. Присутствует здесь и геймплейный элемент — если вы внезапно включите свет, то можете ослепить тех, на ком сейчас надеты приборы ночного видения.
Здесь разработчики полностью отдались реализму, поэтому прибор не только точно передает оттенки температур окружения и целей, но и симулирует сенсоры низкого разрешения, используемые в различном оборудовании, достоверно передавая артефакты сжатия JPEG.
Реалистичное инфракрасное освещение — это то, чего еще никто в играх не делал. Неудивительно, что все были настолько впечатлены реалистичностью ночного видения — ведь до IW никто из разработчиков не включал «нативное» инфракрасное освещение в свой рендерер для того, чтобы материалы могли реалистично на него реагировать.
Гибридная система тайлового стриминга
Некоторые системы, используемые в движке, были разработаны с прицелом на будущее и на следующие игры серии. В частности, в движке наконец-то появилась возможность стриминга уровней, что потенциально открывает дорогу для создания гораздо больших уровней для мультиплеера, чем мы видели до этого в играх серии. Описанные детали системы во многом напоминают стандартные решения, используемые в других движках (например, World Streamer для Unity), а также виртуальную систему текстурирования, реализованную в движке id Tech начиная с 5 версии (появилась в Rage, была доведена до ума в новых Doom и Wolfenstein) и других движках.
Оптимизация
По утверждению Infinity Ward, при разработке COD важно держать в голове следующие цели: отзывчивое управление, быстрое получение фидбека игроком, 60 FPS. Для того, чтобы их достичь, компания изменила свой подход к тому, когда следует заниматься оптимизацией. Правильный ответ здесь — это не откладывать ее на последний момент.
Для ночных билдов включен автоматический анализ производительности, т.е. по каждому билду для всего контента игры, для каждого ее уровня имеется статистика того, каковы средние показатели FPS в различных частях уровня. Со временем эта статистика должна улучшаться, а если происходит наоборот — то это красный флаг и свидетельство того, что последние обновления кодовой базы могли создать проблему. Для предупреждения подобных проблем периодически проводятся ревью для того, чтобы исправить «горячие места» (hot spots), когда тот или иной кадр сильно просаживается по производительности.
Infinity Ward запланировала выделить на оптимизацию производительности несколько месяцев ближе к релизу, но движок уже сейчас выдает в сингл-плеере 60 FPS, хотя полномасштабные работы по оптимизации еще даже не начинались. На данный момент это достигается за счет использования dynamic resolution scaling (DRS), успешно обкатанной в Infinite Warfare и WWII, но разработчики практически уверены в том, что после полноценной оптимизации это станет fallback-решением, в результате чего игра будет работать на целевом разрешении вашей платформы практически всё время.
Остальных технических подробностей нам придется подождать как минимум до E3 (скорее всего — до релиза/выступления разработчиков GDC).
Историческая справка
Создателем серии Call of Duty является компания Infinity Ward, которая была основана 22 выходцами из 2015, Inc. — студии, создавшей шутер Medal of Honor: Allied Assault, вышедший в 2002 году и ставший хитом, в котором в качестве движка использовался старый добрый id Tech 3 (написанный на C и на тот момент еще носивший название Quake 3 Engine). Финансированием разработки Call of Duty занималась Activision, которая сразу выкупила 30% студии, а после релиза первой Call of Duty в конце 2003 года — и всю компанию целиком. Это было неудивительно, ведь игра получила 90 наград «Игра года» и 50 «Выборов редакции».
Движком для COD1 был выбран id Tech 3, поскольку работники студии были отлично с ним знакомы и смогли использовать наработки, придуманные в рамках работы над Medal of Honor: Allied Assault. Вышедший в 2005 году сиквел смог достичь еще лучших коммерческих показателей, а уже сильно модифицированый к тому времени id Tech получил поддержку DirectX 9 вместо OpenGL, улучшенную систему частиц и пост-процессинг, а также официальное имя — IW Engine 2.0.
В оригинальной Call of Duty 4: Modern Warfare, вышедшей в 2007 году (ведь сегодня мы имеем дело с ее ребутом), движком выступал IW 3.0. Игра смогла продаться тиражом, превышающим первую часть в несколько раз — меньше чем за год после релиза она разошлась тиражом в 10 миллионов копий — и встать в один ряд по продажам с Grand Theft Auto IV и Halo 3 (примерные продажи всех частей серии по состоянию на конец 2015 года можно посмотреть здесь). Пост-мортем, посвященный игре, был написан ведущим дизайнером и техническим директором Infinity Ward и опубликован в журнале Game Developer — сегодня его можно прочитать на Gamasutra.
Для того, чтобы наладить ежегодный выпуск новых частей Call of Duty, в дальнейшем разработкой новых игр серии в разное время занимались не только сама Infinity Ward, но и Treyarch, Sledgehammer Games и Raven Software. Следующая часть серии, Call of Duty: World at War, была разработана компанией Treyarch, которая сделала форк движка и модернизировала его, после чего использовала свою версию IW 3.0 в серии Call of Duty: Black Ops (в том числе в прошлогодней Call of Duty: Black Ops 4). По сути, в каждом из следующих релизов переписывались отдельные модули движка, однако были и исключения — например, Sledgehammer для своей Call of Duty: Advanced Warfare практически полностью переписали код, который они позаимствовали из движка Modern Warfare 3, хотя целиком избавиться от «наследия» не удалось даже им. Время от времени маркетологи Activision пытались преподнести используемый в очередной части серии игры движок в качестве нового — так было, например, с используемый в Call of Duty: Infinite Warfare IW Engine 7.0, который стал первым движком студии, рассчитанным на PlayStation 4/Xbox One, и был основан на движке, использованном в Ghosts, с добавлением нововведений, появившихся в Advanced Warfare.
Кстати говоря, разработчики нового движка уже подтвердили, что их наработки будут передана Sledgehammer и Raven Games, так что можно ожидать, что Call of Duty 2020 будет выглядеть не хуже, чем Modern Warfare.
Достаточно подробно проследить за изменениями в движках поможет Википедия, а также пост, посвященный разбору рендереров в различных частях Call of Duty вплоть до Infinity Warfare.