id Tech 4 вначале планировался как расширение для движка игры Quake III. Первоначально это представлялось как полное переписывание рендеринга движка, при этом все ещё сохраняя другие подсистемы, такие как доступ к файлам и управление памятью. Однако после того, как новая прорисовка (рендеринг) стала функциональна, было принято решение переключиться от языка программирования C к C++. Это потребовало полного реструктурирования и переписывания остальной части движка. Код id Tech 4 сегодня содержит очень небольшие фрагменты кода id Tech 3 (движок Quake III)[4].
На QuakeCon 2007 Джон Кармак, ведущий разработчик игровых движков в id Software, заявил: «I mean I won’t commit to a date, but the Doom 3 stuff will be open source.» (рус.«Я не уверен насчёт даты, но всё связанное с Doom 3 станет с открытым исходным кодом».)[5].
C 23.11.2011 id Tech 4 имеет статус «open source» (с открытым исходным кодом)[6]. Первой компьютерной игрой, использующей id Tech 4, стала игра Doom 3, выпущенная 3 августа 2004 года.
Лицензирование движка
Так как движок 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 вышел ещё в 1999 году, и в 2002—2004 годах в id Software не было актуальной и современной технологии для лицензирования. Этим воспользовался главный конкурент id Software — компания Epic Games, которая предоставила свой движок Unreal Engine 2. В результате большинство тех, кто приобрёл Unreal Engine 2, перешло с него на Unreal Engine 3, так как эти движки довольно похожи и, соответственно, переход с одного на другой является более легким, чем переход на полностью другой движок.
Системные требования
Недостатком движка id Tech 4 было то, что он нуждался в высокопроизводительном графическом ускорителе (например, GeForce FX или Radeon 9700), который был бы по крайней мере совместим с OpenGL 1.3 с полностью программируемыми пиксельными и вершинными шейдерами. К E3 2002 рекомендуемым GPU был Radeon 9700 с 128 Мб видеопамяти; эффективность, продвинутая архитектура и 256-битная шина видеокарты Radeon 9700 были необходимыми для игры в Doom 3 с высокими настройками графики и с играбельной частотой кадров[7].
Выход id Tech 4 привёл к устареванию графических карт класса GeForce 2, Radeon 7200 и более ранних (RIVA TNT2 и Rage 128), так как движку была необходима поддержка OpenGL 1.3 с расширениями GL_ARB_vertex_program и GL_ARB_fragment_program, которые в этих картах отсутствовали. Также движок не поддерживал программную прорисовку, которую предоставляла серия интегрированных графических карт Intel GMA. В то время, до появления id Tech 4, мощный CPU мог компенсировать слабую графическую плату. Перед выходом Doom 3 Джон Кармак предостерегал игроков, чтобы они не покупали графические платы GeForce 4 MX для игры, так как эти платы поддерживают OpenGL 1.2, который был лишен поддержки пиксельных шейдеров. Однако многие неопытные потребители ошибочно купили именно GeForce 4 MX, спутав их с GeForce 4 Ti. Это заставило id Software добавить в движок официальную поддержку GeForce 4 MX, которая вместо пиксельных шейдеров использовала расширения GL_ARB_texture_env_dot3 и GL_ARB_multitexture, благодаря чему Doom 3 запускалась и на более старых графических платах поколения GeForce 2 и Radeon 7000, хотя они и не обеспечивали комфортной для игры производительности. Энтузиасты запускали Doom 3 и на более старых видеокартах, таких как 3dfx Voodoo 2, однако эти видеокарты были неспособны прорисовывать попиксельное освещение и построение выпуклостей (англ.bump mapping)[8].
В 2012 году, к выходу Doom 3 BFG Edition, движок переработали, добавив поддержку многоядерных процессоров и заменив поддержку устаревшей OpenGL 1.3(1.2) на OpenGL 2.0.
Технические характеристики
В id Tech 4 добавили множество новых особенностей, отсутствовавших в движке id Tech 3, который предшествовал ему. Они включали построение выпуклостей (англ.bump mapping) с использованием карт нормалей (англ.normal mapping) и бликовое освещение (англ.specular highlighting).
Главным новшеством движка id Tech 4 было использование в нём полностью динамического попиксельного освещения (англ.dynamic per-pixel lighting). До этого времени все предыдущие трехмерные движки основывались прежде всего на предварительно рассчитанном освещении или картах освещения (англ.lightmaps), и несмотря на то, что динамические эффекты были доступны прежде, эффект просто изменял яркость на всем объекте. Подход, используемый в Doom 3, показывал более реалистическое освещение и тени[9], чем те, что были в предыдущих компьютерных играх[10].
Унифицированное освещение и затенение
Унифицированное освещение и затенение — это модель распространения света, которая разработана в 2004 году компанией id Software и внедрена в игровой движок id Tech 4.
Предыдущие трёхмерные игры, такие как Quake III Arena, использовали раздельные модели освещения для определения, как свет освещает игровых персонажей и окружение. Информация про освещение и затенение для игровых уровней и карт была статической, прегенерированной и заранее сохранённой, в то время как эта же информация для игровых персонажей просчитывалась в режиме реального времени (на лету).
Doom 3, первая игра на движке id Tech 4, использует унифицированную модель, которая генерирует освещение и затенение «на лету». Это означает, что любые источники света влияют на всю сцену, а не только на её заранее определённую часть. К возможностям этой технологии относится возможность самозатенения (англ.self-shadowing), которое реализуется с помощью теневых объёмов (англ.shadow volumes). С использованием теневых объёмов персонажи могут отбрасывать тени сами на себя: например, подбородок человека может отбрасывать тень на его грудь.
Технология мегатекстуры (англ.MegaTexture) была добавлена в оригинальную версию id Tech 4. Единственная массивная текстура (32 768 x 32 768 пикселей) покрывает всю карту полигонов и высокодетализированный ландшафт. Мегатекстура может также хранить физическую информацию о ландшафте типа силы тяжести в определённых областях или указывать, какой звуковой эффект должен проигрываться, если игрок двигается по определённым частям карты, то есть ходьба по скале будет казаться отличной от ходьбы по траве[11]. Ожидается, что использование мегатекстуры приведёт к значительно более детальной сцене, чем большинство существующих технологий, использующих так называемые «плиточные» (англ.tile) текстуры, а также добавит инструмент создания ландшафта т. н. «MegaGen». Технология «Мегатекстура» применена в играх Enemy Territory: Quake Wars и Rage.
Специальное издание оригинальной Doom 3 и дополнения Resurrection of Evil, дополненное новой кампанией The Lost Mission. Графически движок был модифицирован id Software — добавлена поддержка стереоизображения, улучшена система освещения[14].
Данил Гридасов.Doom 3(рус.). iXBT.com (2 сентября 2004). — Обзор игры, детальное описание самого движка id Tech 4 и технологий, использующихся в нём. Дата обращения: 5 января 2009. Архивировано 12 февраля 2012 года.