2

История игровых движков №10 — IW Engine

Егор
infinity-ward.jpg
IW Engine — один из тех движков, которые никогда не были на слуху, как Unity, Source или Unreal Engine, но, тем ни менее, на них построено много хорошо известных игр. На IW Engine, о котором поговорим сегодня, построена практически вся серия известных FPS-шутеров — Call of Duty, от самой первой игры 2003 года до Infinity Warfare 2016 года (исключение — Call of Duty 3).

IW Engine 1.0

Первую версию движка для игры Call of Duty 2003 года разработала компания Infinity Ward. В ней работали в основном выходцы из студии 2015, Inc., которая годом раньше выпустила другую игру про Вторую мировую войну — Medal of Honor: Allied Assault. Эта игра была написана на модифицированном id Tech 3, и поэтому выбор движка для Call of Duty был очевиден — можно было использовать наработки Medal of Honor без их переноса на другой движок, да и работники Infinity Ward хорошо знали этот движок.

Однако это был достаточно серьезно переработанный id Tech 3 — Call of Duty имел в своем арсенале пост-эффекты (например, «размытие изображения»), вода обрабатывалась при помощи шейдеров, что позволило сделать реалистичные отражения, усложнена система освещения и появились динамические мягкие тени. Движок использовал API OpenGL, основанный на рендерере id Tech 3. В общем и целом картинка для 2003 года была очень хорошей:

f833e63ca7112394c14a9ead228495b8.jpg

При этом не была потеряна отличная оптимизация движка Джона Кармака: системные требования Call of Duty были достаточно низкими для игры 2003 года — 600 МГц процессор, 128 МБ ОЗУ и 32 МБ видеокарта (к примеру, Half-Life 2, вышедший годом позже, требовал уже 1.7 ГГц процессора и 512 МБ ОЗУ, при этом выдавая картинку не сильно лучше). 

IW Engine 2.0

В 2005 году студия Infinity Ward выпустила сюжетное продолжение крайне удачной Call of Duty — Call of Duty 2. Ее движок IW Engine 2.0 все еще базировался на id Tech 3, однако уже сильно отличался от исходного движка Кармака — даже рендерер был сменен с OpenGL на DirectX 9. Движок обзавелся поддержкой рельефного текстурирования, Light Bloom (эффект размытости света на ярких гранях сцены), Heat haze (эффект жара от огня) и единой карты теней. Так же в игру была добавлена поддержка консоли. Из-за перехода на DX 9 системные требования достаточно сильно выросли — теперь требуется 1.4 ГГц процессор, 512 МБ памяти и видеокарта с поддержкой DX9 и 64 МБ памяти. Однако это все еще ниже требования того же Half-Life 2, вышедшего годом раньше и имевшего даже несколько худшую графику:

Call-of-Duty-2-2.jpg

IW Engine 3.0

Игра Call of Duty 3 была выпущена в 2006 году компанией Activision и использовала движок Treyarch NGL, который не имел абсолютно никакого отношения к IW Engine, поэтому эту игру мы не рассматриваем. Годом позже Activision вместе с Infinity Ward выпустили игру Call of Duty 4: Modern Warfare, базирующуюся на новой версии движка — IW Engine 3.0. Движок все еще включал в себя код id Tech 3, а API был уже несколько устаревший к тому времени DirectX 9. Однако по количеству поддерживаемых эффектов он был на уровне Crytek в Crysis — движок умел обрабатывать пробивание пулями объектов, поддерживал глубину резкости, имел улучшенный искусственный интеллект, физику тряпичной куклы, а так же улучшенную лицевую анимацию и работу с тенями, светом и частицами. С учетом того, что это был по сути улучшенный IW Engine 2.0, системные требования того же CoD 4 были не очень высоки по меркам 2007 года — 2.4 ГГц процессор, 512 МБ ОЗУ и видеокарта с поддержкой DX 9. Уровень графики был, конечно, лучше, чем в CoD 2, и игра завораживала своими эффектами, но до Crysis, вышедшего в том же году, было все же далеко:

Call-of-Duty-4-Modern-Warfare-features.jpg

IW Engine 4.0

В 2009 году все тот же тандем Activision и Infinity Ward выпускает новую игру линейки Call of Duty — Modern Warfare 2. Основой IW Engine 4.0 был все тот же id Tech 3, которому на тот момент было уже 10 лет! Однако, разумеется, Infinity Ward на месте не сидели, и новая версия движка обзавелась поддержой API DirectX 10.

Одной из главных особенностей движка была поддержка технологии Streaming Textures (потоковая загрузка текстур), позволявшей загружать в память уровень кусками, что снизило и время загрузки, и нагрузку на память и видеокарту, а так же дало возможность создавать гораздо большие уровни. Движок игры теперь использует динамический ИИ (искусственный интеллект), который изменил систему респауна и позволяет «умным» врагам действовать на карте более самостоятельно. В игре нет большого количества повторяющихся ситуаций, так как каждый раз противник ведёт себя по-новому. Была проведена серьёзная работа со светом (к примеру, добавлена поддержка отложенного освещения). Кроме того, был переработан физический движок, и теперь ещё большую роль играет оружейная баллистика: учитываются типы поверхности, формы объектов, разновидности гранат и т. д. 

Из-за поддержки DX 10 движок смог выдавать неплохую картинку, однако базирование на движке десятилетней давности стало сказываться — графика «вау-эффекта» не вызывала:

67233411.jpg

К счастью, хотя бы оптимизация у игры была отличная — минимальные системные требования предполагали наличие среднего игрового компьютера 2006 года — 3.2 ГГц процессор, 1 ГБ ОЗУ и видеокарта с 256 МБ видеопамяти с поддержкой DX 9.0c.

IW Engine 5.0

В 2011 году вышла очередная часть Call of Duty — Modern Warfare 3. Она все еще базировалась на id Tech 3 и все так же работала на API DirectX 10, когда уже во многие игры активно добавлялась поддержка DX 11. По сути эта версия движка не внесла ничего инновационного и являлась небольшой доработкой предыдущей версии движка. Основные изменения — усовершенствование технологии потоковой загрузки текстур для больших локаций и некоторые усовершенствования в работе светового и звукового движков. 

Системные требования были просто смешными для 2011 года — для запуска игры требовался простейший двухядерный Intel Core Duo, 1 ГБ ОЗУ и видеокарта с 256 МБ памяти и поддержкой DX 9.0с. Но, увы, графика так же была смешной, и до Battlefield 3 того же года существенно недотягивала:

codmw3.01.lg.jpg

IW Engine 6.0 Next Gen

После выхода MW 3 разработчики игры поняли, что id Tech 3, конечно, хороший движок, но уже мягко говоря не актуальный (последний его апдейт был в 2004 году, а первая игра на нем, Quake 3, вышла вообще в 1999), и для новой версии CoD решили практически полностью переписать движок. С одной стороны это, конечно, хорошо — вышедший в 2013 году CoD: Ghosts на этом движке графически соответствовал своему году, но, с другой стороны, это резко подняло системные требования — если для MW 3 требовался игровой ПК 2007-2008 года, то хотя бы просто для запуска Ghosts требовался уже хороший игровой ПК 2011-2012 года с мощным двухядерным Core 2 Duo, 6 (!!) ГБ ОЗУ и видеокартой с 1 ГБ видеопамяти и обязательной поддержкой DX 11.

Однако игра не просто так требовала достаточно мощное железо — список изменений огромен:

  • Полноценная поддержка консолей текущего поколения — PlayStation 4 и Xbox One;
  • Полноценная поддежка API DirectX 11 и полный отказ от предыдущих версий API;
  • Поддержка Pixar SubD — технологии, позволяющей динамически изменять качество текстуры в зависимости от расстояния между ею и игроком: это позволяет существенно экономить ресурсы видеокарты практически без ухудшения качества картинки;
  • Переработана анимация персонажей, добавлена возможность скольжения по наклонным поверхностям, наклона корпуса и т.д;
  • Переработана физика жидкостей, добавлен улучшенный дым, поддержка технологии PhysX в версии игры для Windows, улучшена тесселяция, HDR-освещение и эффекты частиц;
  • Доработан ИИ и добавлены динамические карты для мультиплеера.

Уровень графики соответствует своему году, игра не сильно хуже вышедшей тогда же Crysis 3:

COD01.jpg

IW Engine 7.0

Это последняя на данный момент версия движка — первая игра на нем, Call of Duty: Infinite Warfare, вышла меньше года назад. Infinity Ward хорошо понимали, что предыдущая версия движка вышла крайне удачной, но все же ее нужно было дорабатывать и вводить новые «плюшки», так что по сути IW Engine 7.0 был улучшенной 6ой версией. Нововведений немного, основные — поддержка новейшего API DirectX 12, а так же улучшение физического движка для работы с нулевой гравитацией. Так же был улучшен ИИ, освещение, добавлен физически корректный рендеринг и переработана потоковая загрузка текстур, что позволило создавать огромные уровни. Разумеется, все это сказалось на системных требованиях, и теперь они нисколько не отличаются от таковых для большинства ААА-игр 2016 года — для запуска игры требуется Intel Core i3, 8 ГБ ОЗУ и видеокарта с поддержкой DX 11 и 2 ГБ видеопамяти. Но при этом графика находится на очень хорошем уровне:

COD-Infinite-Warfare_SP_Operation-Burn-Water.jpg

Будущее движка

Как видно, движок активно развивается уже почти 15 лет, а серия игр Call of Duty пользуется большим спросом. Поэтому очевидно, что движок и дальше будет развиваться, обрастая все большими графическими эффектами. Однако точной даты выхода следующей версии движка нет, так как он является проприетарным (только для использования внутри компании). На данный момент дерево развития движка выглядит так:
IW_Engine_family_tree.png
7

Будь в курсе последних новостей из мира гаджетов и технологий

Мы в соцсетях

Комментарии

+853
Хорошая статья , познавательно .
1 мая 2017 в 16:21
#
Xoxlamon
+107
Согласен, интересно было почитать вспомнить любимые игрушки.
1 мая 2017 в 17:27
#
–662
в разрабах евреи сидят, столько лет доить один и тот же движок... В дирт ралли такие же сидят.
2 мая 2017 в 12:29
#
Максим Казачков
+17
Умные люди там сидят. Если что то хорошо работает, то не фиг лезть. И хоть не фанат серии, а продажи калла оф дюти хороши. А не такие что написали все с нуля, ужались в короткие сроки, так как издавать надо и в итоге игра с к чей косяков и багов. А они программную часть подогнали под требования года выхода в плане качества и сосредоточились сделать игру такую как все ждали.
2 мая 2017 в 18:03
#
Егор Морозов
+1764
А оно и не могло работать хорошо: с 1999 года до 2011 прошло 12 лет — за это время массово развился directx(id tech изачально openglый), появились многоядерные процессоры(в начале нулевых были только одноядерные), появились видеокарты с объединенной шейдерной архитектурой, винда сама стала NT-шной, да даже 3dfx уже давным-давно нет. И поэтому попытки приделать к такому движку современную графику и физику разумеется оказываются безнадежны, и мне непонятно, зачем было доводить ситуацию с движком до абсурда: по сути начиная с cod 4 и до mw3 графика менялась незначительно.
2 мая 2017 в 18:24
#
+2
А начиная с мв3 и до последней версии, разве что-то сильно поменялось в этих движках?

ПС Егор, как на вас подписаться?!?!?!? -_-
5 февраля 2018 в 15:54
#
Егор Морозов
+1764
Не с мв3 — дальше, начиная с ghosts. Движок был почти с нуля написан, отказались и от старых приставок, и от старых dx.
Что касается подписки на меня — увы, никак нельзя.
5 февраля 2018 в 18:56
#