>движок Doom 3 ) — игровой движок, разработанный американской компанией >[3] Движок « >API ).

Содержание

История движка [ править | править код ]

id Tech 4 в начале планировался как расширение для движка игры Quake III. Первоначально это представлялось как полное переписывание рендеринга движка, при этом все еще сохраняя другие подсистемы, такие как доступ к файлам и управление памятью. Однако после того, как новая прорисовка (рендеринг) стала функциональна, было принято решение переключиться от языка программирования C к C++. Это потребовало полного реструктурирования и переписывания остальной части движка. Код id Tech 4 сегодня содержит очень небольшие фрагменты кода id Tech 3 (движок Quake III).

Первой компьютерной игрой, использующей id Tech 4, стала игра Doom 3, выпущенная 3 августа 2004 года.

На QuakeCon 2007 Джон Кармак, ведущий разработчик игровых движков в >«Я не уверен насчёт даты, но всё связанное с Doom 3 станет с открытыми исходным кодом». ). [4] C 23.11.2011 года >[5] .

Лицензирование движка [ править | править код ]

Так как движок id Tech 4 является текущей технологией id Software, поэтому именно он предлагается для лицензирования сторонним компаниям. Лицензия для одной игры стоит фиксированную сумму: $250 000. При этом игра может выходить как на любой из поддерживаемых платформ, так и на всех одновременно. Если лицензиат хочет использовать движок в множестве игр, условия меняются. При покупке движка покупатель получает весь исходный код id Tech 4 и поддержку следующих аппаратно-программных платформ: PC, Mac, Xbox 360 и PlayStation 3. id Software гарантирует поддержку движка, чистоту и стабильность программного кода, а также своевременный выпуск необходимых обновлений к движку. Перед лицензированием покупатель может получить оценочный (пробный) SDK.

В отличие от предшествующих и широко используемых игровых движков id Tech 3 (известен также как Quake III Engine), id Tech 2 (известен также как Quake II Engine) и Quake engine, движок id Tech 4 имеет существенно меньший успех в его лицензировании третьими лицами. Это особенно очевидно по сравнению с его главным конкурентом, движком Unreal Engine 3. Так, движок приобрёл лишь один сторонний разработчик (Human Head Studios) для одной игры (Prey). Причина такого провала в лицензировании id Tech 4 состоит в том, что движок разрабатывался слишком долго. id Tech 3 вышел ещё в 2000 году, и в 2002—2004 годах в id Software не было актуальной и современной технологии для лицензирования. Этим воспользовался главный конкурент id Software — компания Epic Games, которая предоставила свой движок Unreal Engine 2. В результате большинство тех, кто приобрёл Unreal Engine 2, перешли с него на Unreal Engine 3, так как эти движки довольно похожи и, соответственно, переход из одного на другой является более легким, чем переход на полностью другой движок.

Системные требования [ править | править код ]

Выход >bump mapping ). [7]

В 2012 году, к выходу Doom 3 BFG Edition, движок переработали, добавив поддержку многоядерных процессоров и заменив поддержку устаревшей OpenGL 1.3(1.2) на OpenGL 2.0.

Технические характеристики [ править | править код ]

В >bump mapping ) с использованием карт нормалей (англ. normal mapping ) и бликовое освещение (англ. specular highlighting ).

Главным новшеством движка >dynamic per-pixel lighting ). До этого времени все предыдущие трехмерные движки основывались прежде всего на предварительно рассчитанном освещении или картах освещения (англ. lightmaps ), и несмотря на то, что динамические эффекты были доступны прежде, эффект просто изменял яркость на всем объекте. Подход, используемый в Doom 3, показывал более реалистическое освещение и тени, [8] чем те, что были в предыдущих компьютерных играх. [9]

Унифицированное освещение и затенение [ править | править код ]

Унифицированное освещение и затенение — это модель распространения света, которая разработана в 2004 году компанией id Software и внедрена в игровой движок id Tech 4.

Предыдущие трёхмерные игры, такие как Quake III Arena, использовали раздельные модели освещения для определения, как свет освещает игровых персонажей и окружение. Информация про освещение и затенение для игровых уровней и карт была статической, прегенерированной и заранее сохранённой, в то время как эта же информация для игровых персонажей просчитывалась в режиме реального времени (на лету).

Doom 3, первая игра на движке >self-shadowing ), которое реализуется с помощью теневых объёмов (англ. shadow volumes ). С использованием теневых объёмов персонажи могут отбрасывать тени сами на себя: например, подбородок человека может отбрасывать тень на его грудь.

Технология «Мегатекстура» [ править | править код ]

Технология мегатекстуры (англ. MegaTexture ) была добавлена в оригинальную версию >[10] Ожидается, что использование мегатекстуры приведёт к значительно более детальной сцене, чем большинство существующих технологий, использующих так называемые «плиточные» (англ. tile ) текстуры, а также добавит инструмент создания ландшафта т. н. «MegaGen». Технология «Мегатекстура» применена в играх Enemy Territory: Quake Wars и Rage.


id Tech — один из самых старых и известных игровых движков, снискавший популярность по серии игр Doom. В отличии от других движков использует только OpenGL (в основном движки работают с API DirectX) — это позволяет относительно легко портировать игры под платформы, отличные от Windows (DirectX нативно работает только в ней). Так же через какое-то время после выхода новой версии движка исходный код старой публикуется в свободном доступе.

id Tech 1

Первый движок от id Software, впервые появился в 1993 году в игре Doom, откуда пошло его второе название — Doom Engine. Движок был псевдотрехмерным, монстры были спрайтовыми, но графика по тем временам была передовой:

Движок был гораздо «продвинутее», чем таковой в Wolfenstein 3D:

  • Каждая комната могла иметь свою высоту потолка и пола, но при этом комнаты не могли быть друг над другом, то есть карта уровней двухмерная.
  • Стены могут быть ориентированы по любым направлениям, но при этом пол и потолок всегда оставались горизонтальными, а стены — вертикальными.
  • Изменяющаяся освещённость, повышавшая реалистичность графики.
  • Лифты, дистанционно открывающиеся двери, опускающиеся и придавливающие потолки, поднимающиеся ступеньки и другие движущиеся элементы.
  • Персонажи могут прыгать, падать с крыш и летать по воздуху (однако пройти под летящим врагом или пролететь сверху в прыжке всё равно невозможно).
  • Звуковая подсистема поддерживала стереозвук и микширование до 8 эффектов одновременно.
  • Персонаж при движении покачивался вверх-вниз, что создавало большую иллюзию ходьбы.
  • Во всей игре масштаб спрайтов и текстур постоянный. Поэтому, например, невозможно установить высокодетализированный плакат на менее детализированной стене.
  • Движок не делает проверок по оси Z — например, рыскающий в подвале имп вполне мог нанести повреждения игроку, находящемуся в паре сотен метров выше, на чердаке, а взорвавшаяся у основания здания ракета наносила урон монстру на крыше.

В общем — для начала 90ых это был очень продвинутый движок, однако про поддержку ускорения графики (OpenGL, DirectX) с помощью видеокарт тогда еще никто не слышал — использовался программный рендеринг, поэтому системные требования Doom 1 были достаточно высокими — Intel 486 33 МГц и 4 МБ ОЗУ. Впрочем, игра запускалась и на гораздо более распространенных в те времена 386ых, однако fps оставлял желать лучшего, хотя и был вполне «играбельным».

id Tech 2

Вторая версия движка изначально разрабатывалась для другого популярного шутера 90ых — Quake 2, поэтому и назывался движок изначально Quake 2 Engine. Для 1997 года движок был передовым (до выхода первого Half-Life оставался год. ), обеспечивая хорошую по тем временам графику:

Изменений в сравнении с первым id Tech было много:

  • Была включена поддержка OpenGL для видеокарт 3dfx Voodoo (ныне исчезнувших), nVidia RIVA TNT и ATI RagePro. Однако на момент выхода движка ускорители графики были мало распространены, поэтому в движок был включен и программный рендеринг.
  • Формат уровней использует BSP-дерево (в общих чертах — изначально имеется некое множество полигонов. Из них выбирается один, который своей плоскостью разбивает пространство на два подпространства. Он становится корневым узлом дерева. Оставшиеся полигоны разделяются на два множества, в зависимости от того, в каком подпространстве они геометрически располагаются. Из полученных множеств снова выбираются рассекающие полигоны, которые в свою очередь делят их на две части. Эти полигоны становятся узлами дерева. Процедура разделения рекурсивно продолжается до тех пор, пока все полигоны не попадут в дерево).
  • Освещение уровней использует метод лайтмапов — карт освещения, в которых световые данные для каждой поверхности являются предварительно рассчитанными и сохранены как изображения в файлах. Лайтмапы используются для определения того, какую интенсивность света должна получить каждая модель, но они не определяют направление, из-за чего можно было наблюдать, что тени иногда шли независимо от направления ламп или просто висели на воздухе.

Из-за того, что после выхода id Tech 3 вторая версия движка стала бесплатной и открытой для всех, игры на ней выходили еще долго — до 2005 года (Замок на Экзе).

id Tech 3

Движок создавался изначально для игры Quake 3 (угадайте, как он еще назывался — правильно, Quake 3 Engine):

Как и вторую версию движка, id Tech 3 писал все тот же Джон Кармак полностью с нуля. Для 1999 года движок был достаточно продвинут, однако все же проигрывал по возможностям GoldSrc в Half-life 1:

  • id Tech 3 использует трехмерные модели формата MD3. Этот формат использует вертексную анимацию (покадровая запись деформаций объекта с их последующим воспроизведением). Возможности анимации в MD3-формате значительно превосходят таковые в формате MD2, который использует движок id Tech 2, потому что аниматор может использовать любое количество кадров в секунду для анимации модели, в то время как ограничение MD2 — лишь 10 кадров в секунду. Это позволяет создавать более масштабную и реалистичную анимацию. Модели в формате MD3 могут состоять из нескольких частей, скрепленных друг с другом. Таким образом, каждая часть тела персонажа (торс, ноги, голова) могут двигаться независимо друг от друга и иметь свой набор текстур.
  • Модели персонажей и игровые уровни освещены с использованием цветовой интерполяции (считывается информация о цвете каждого полигона, на которые разбита поверхность объекта, и плавно интерполируется интенсивность красного, зеленого и синего цветов по трем координатам — это уменьшает блочность изображения).
  • id Tech 3 способен работать с тремя различными типами теней. Первый, относительно простой, так называемый «пузырь» или капельная тень (просто круглое затенение под моделями персонажей). Второй создаёт непрозрачные черные тени с резкими краями. Третий рисует вторую полупрозрачно (в зависимости от освещения объекта).

Из-за своей простоты, открытости и способности работать с OpenGL на движке было написано множество игр под Windows, Linux, macOS, FreeBSD и даже Solaris — последняя игра вышла в 2012 году (Iron Grip: Warlord — Scorched Earth), таким образом движок использовали на протяжении 13 лет!

Движок является существенно переделанным id Tech 3 и впервые использовался в игре Doom 3 (ага, и назывался Doom 3 Engine):

Для 2004 года это был, пожалуй, самый продвинутый движок — Doom 3 заигрывали до дыр, и он не устаревал вплоть до выхода нового Doom аж в 2016 году. Изменений в сравнении с id Tech 3 было много:

  • Движок поддерживает API OpenGL 2.0, но при этом перестал поддерживать программный рендеринг.
  • Движок поддерживает рельефное текстурирование с использованием карт нормалей, что сделало поверхность объектов более реалистичной.
  • Главным новшеством движка id Tech 4 было использование в нём полностью динамического попиксельного освещения: используется унифицированная модель, которая генерирует освещение и затенение «на лету». Это означает, что любые источники света влияют на всю сцену, а не только на её заранее определённую часть. К возможностям этой технологии относится способность самозатенения, которое реализуется с помощью теневых объёмов. С использованием теневых объёмов персонажи могут отбрасывать тени сами на себя: например, подбородок человека может отбрасывать тень на его грудь.
  • Технология мегатекстуры: единственная массивная текстура (32 768 x 32 768 пикселей), покрывающая всю карту полигонов и высокодетализированный ландшафт. Мегатекстура может также хранить физическую информацию о ландшафте типа силы тяжести в определенных областях, или указывать, какой звуковой эффект должен проигрываться, если игрок двигается по определенным частям карты, то есть ходьба по скале будет казаться отличной от ходьбы по траве.

И хотя движок был достаточно продвинутым, вплоть до выхода игр на id Tech 5 в 2011 году он был платным (250 000 долларов за лицензию на одну игру), поэтому игр на нем вышло немного (из известных — Doom 3, Quake 4 и Wolfenstein 2009) — для небольших инди-проектов разработчики стали использовать Source.

id Tech 5

Движок был представлен в 2007 году на. WWDC на компьютере Apple Mac Pro. Казалось бы — вот оно, будущее игр на macOS, однако увы — только одна из игр на этом движке (Rage) официально вышла под яблочную ОС:

Движок является доработанным id Tech 4 для консолей — в нем есть поддержка PlayStation 3 и Xbox 360. Изменений немного:

  • В движке используется расширенная технология MegaTexture, которая использует текстуру с разрешающей способностью до 128 000 × 128 000 пикселей (в 16 раз больше по сравнению с последней версией id Tech 4, где использовалась текстура размером 32 768 × 32 768 пикселей).
  • Движок обзавелся поддержкой многоядерных процессоров.
  • Одной из особенностей рендерера — использование полутени при затенении, которая достигается путем использования теневых карт. Так же движок поддерживает HDR и размытие в движении.

Хотя id Tech 6 уже вышел, 5ая версия движка все еще остается платной, более того — доступна всего нескольким именитым разработчикам, поэтому игр на нем всего 5: Rage, Wolfenstein: The New Order и Old Blood, The Evil Within и Dishonored 2.

id Tech 6

Самая новая версия движка, анонсирована в 2011 году, и на нем на данный момент вышла всего одна игра — Doom в 2016 году:

Возможности движка существенно выросли — теперь он поддерживает консоли нового поколения, PlayStation 4 и Xbox One, а так же кроме OpenGL научился работать и с API Vulkan. Список изменений:

  • Движок поддерживает технологию SVO — разреженное воксельное октодерево, то есть геометрия игрового уровня теперь не полигональная (набранная из полигонов — треугольников), а воксельная (набранная из вокселов — трехмерных пикселов). Одна из целей технологии SVO состоит в том, чтобы иметь возможность «подгружать» части октодерева в видеопамять, идя вниз вдоль ветвей дерева. Это значит, что объекты на нижних ветвях октодерева, то есть те объекты, которые расположены к наблюдателю ближе всего, будут рендериться в максимальном качестве, с максимальной детализацией и текстурами максимального разрешения. Соответственно, для дальних объектов, которые расположены на более высоких ветках октодерева, будет использоваться меньшее качество, они будут построены на вокселях больших размеров. Таким образом, данная технология является способом контроля уровня детализации.
  • В id Tech 6 с помощью SVO рендерится только статическая геометрия, например ландшафт, строения и т. д. Из-за этого рейкастинг-освещение также статическое. Все динамические объекты типа персонажей, транспорта и т. д. построены на классических полигонах и динамически освещаются с помощью стандартных растеризационных методик.
  • id Tech 6 использует более продвинутую технологию мегатекстуры — теперь вся поверхность уровня покрывается одной текстурой.

В Doom 4 движок показал себя с лучшей стороны — игра без проблем идет на высоких настройках графики даже на самых простых видеокартах новых поколений типа AMD Radeon RX 460, а с включением API Vulkan fps местами поднимается на 20% — оптимизаторам игр под DirectX 12 есть чему поучиться.

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

Об id Tech 7 известно мало — в нем будет улучшено SVO (в частности появится динамическая геометрия), и на этом все: ни дат выхода, ни утечек. И это вполне ожидаемо — на id Tech 6 вышла всего одна игра, и движок активно развивается и дорабатывается (например, на нем будет работать новая часть Wolfenstein), поэтому задумываться о новых версиях пока еще рано.

John D. Carmack, один из основателей и ведущий разработчик id Software в своем Твиттере объявил о доступности исходного кода игры Doom III.

Компания долго не могла опубликовать исходный код движка в связи с использованием в нем запатентованного алгоритма расчета теней от Creative Labs, публикация которого могла бы стать правонарушением. Теперь же данный участок кода переписан и юристы Zenimax, материнской компании id Software, к нему претензий не имеют.

Исходный код опубликован на GitHub и на официальном FTP компании под лицензией GPL v3 (версия выбрана теми же юристами Zenimax; Кармак не выяснял почему). Игровые данные по прежнему проприетарные и распространяются платно.

Doom III — последняя в данный момент игра культовой линейки шутеров Doom, разрабатываемой с 1993 года компанией id Software. Для игры специально создан 3D-движок id Tech 4, который является достаточно актуальным и в наше время, несмотря на то, что Doom III была выпущена еще в 2004 году. По традиции, исходный код каждого нового движка этой компании выпускается под свободной лицензией, с правом коммерческого лицензирования, после выхода новой технологии, которая остается закрытой и коммерческой до выхода следующей.

Джон Кармак — несменный разработчик всех ключевых технологий id Software, в том числе и движка id Tech различных версий.