Введение

Игровой движок id Tech 4, широко известный как движок Doom 3, — это игровой движок, разработанный id Software и впервые использованный в видеоигре Doom 3. Движок был разработан Джоном Кармаком, который также создал предыдущие игровые движки для Doom и Quake, получившие широкое признание как значительные достижения в этой области. Этот движок, основанный на OpenGL, также применялся в играх Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein и Brink. id Tech 4 распространяется по лицензии GNU General Public License версии 3.0 или более поздней.

Оборудование

Первоначальным требованием id Tech 4 было наличие высокопроизводительного графического процессора (GPU) с полностью программируемыми вершинными и пиксельными шейдерами, такого как Nvidia GeForce 3 или ATI Radeon 8500, с объемом видеопамяти не менее 64 МБ. К E3 2002 года рекомендованным GPU был процессор, "на 100% совместимый с DirectX 9.0b", например Radeon 9700 с 128 МБ видеопамяти. Хотя функции DirectX 9.0, реализованные в Radeon 9700, не были необходимы для рендеринга игры, для запуска Doom 3 с высокой детализацией и приемлемой частотой кадров требовались его продвинутая архитектура, 256-битная шина памяти и эффективность. Графический режим "Ultra", включенный в Doom 3, даже не запускался на высокопроизводительных видеокартах в 2004 году, поскольку для корректного отображения и приемлемой скорости требовалось не менее 512 МБ видеопамяти. id Tech 4 привела к устареванию графических чипов DirectX 7, таких как широко распространенные GeForce 2 и Radeon 7200, а также более старых чипсетов, таких как RIVA TNT2 и Rage 128, и программного рендеринга (с использованием интегрированной графики Intel GMA). До появления id Tech 4 мощный процессор мог в некоторой степени компенсировать устаревшую видеокарту. Джон Кармак изначально предупреждал геймеров не покупать GeForce 4 MX (который обычные пользователи часто путали с GeForce 4 Ti, поддерживающей DirectX 8, хотя это была в лучшем случае улучшенная GeForce 2), но из-за его довольно широкого распространения id Software была вынуждена добавить его в список поддерживаемых карт. Имелись случаи, когда энтузиасты заставляли Doom 3 работать на неподдерживаемых графических чипах, таких как давно устаревшая Voodoo 2, но они не могли обеспечить рендеринг освещения на пиксель и bump mapping.

Графика

Id Tech 4 добавил несколько новых графических функций, отсутствующих в его предшественнике, id Tech 3. Среди них — нормальное отображение и зеркальное выделение. В процессе разработки последующих игр добавлялись новые возможности. Главным нововведением id Tech 4 стало использование полностью динамического освещения для каждого пикселя, в то время как ранее 3D-движки в основном полагались на предварительно вычисленное освещение для каждой вершины, карты освещения и затенение Гуро. Хотя динамические эффекты уже существовали (например, динамические движущиеся источники света), они лишь изменяли яркость вершин полигона, а цвета пикселей просто интерполировались между тремя цветами вершин этого полигона. Этот полностью реализованный в реальном времени подход, использованный в Doom 3, в сочетании с использованием объёмных теней, позволил добиться более реалистичного освещения и теней, чем в предыдущем поколении движков id. Метод создания объёмных теней запатентован компанией Creative, которая предоставила id Software разрешение на его использование в движке Doom 3 в обмен на поддержку продвинутых звуковых технологий EAX от Creative. Модели в играх на движке id Tech 4 анимируются с использованием скелетной анимации. Движок способен смешивать несколько анимаций для создания реалистичного движения модели. Поскольку это требовало значительных вычислительных ресурсов, id Software провела оптимизацию, используя Streaming SIMD Extensions (SSE) от Intel.

Технология рендеринга MegaTexture

Оригинальная версия движка id Tech 4 была разработана для относительно темных окружений и подверглась критике за кажущуюся неспособность обрабатывать огромные дневные открытые пространства. Технология MegaTexture решила эту проблему, предоставив возможность создавать обширные наружные сцены. Путем создания единой массивной текстуры (32 768×32 768 пикселей, хотя в последних версиях технологии MegaTexture она была увеличена до большего размера), покрывающей всю карту полигонов и детализированную местность, можно добиться желаемого эффекта. MegaTexture также может хранить физическую информацию о местности, например, степень сцепления в определенных областях или указывать, какой звуковой эффект следует воспроизводить при ходьбе по конкретным участкам карты. То есть, звук шагов по камню будет отличаться от звука шагов по траве. Первой игрой, использующей MegaTexture, стала Enemy Territory: Quake Wars, основанная на движке Tech 4. Все игры id Tech 5 и id Tech 6 используют MegaTexture, за исключением The Evil Within, которая использует новый рендерер. Brink, использующая сильно модифицированную версию id Tech 4, также применяет виртуальную текстуризацию. Хотя реализация отличается от MegaTexture, она была ею вдохновлена.

Сценарий

id Tech 4 обладает развитым языком скриптов, который можно использовать при создании модификаций и который применяется в Doom 3 для управления монстрами, оружием и событиями на картах. Этот язык скриптов во многом схож с C++. Помимо основного языка скриптов, idTech 4 также включает в себя другой язык, предназначенный для графических интерфейсов (GUI) – как для меню и HUD, так и для GUI, встроенных непосредственно в игровой мир. Эти внутриигровые интерфейсы достаточно мощны, чтобы, например, запустить другую игру, такую как оригинальный Doom, прямо внутри игрового мира. Несмотря на наличие этого дополнительного уровня скриптования, создание модификаций возможно и с использованием C++ для разработки нативного кода.

Звук

В результате соглашения с Creative по патенту на технологию теневых объемов, движок id Tech 4 поддерживает OpenAL, включая специфичные для Creative Technology расширения EAX. Работа по интеграции поддержки OpenAL была выполнена компанией Creative Technology, а не разработчиками id Software.

Сетевые связи

Двигатель использует традиционную клиент-серверную модель. Изначально планировалась модель сети типа "одноранговая". Эта часть движка работает в основном аналогично эквиваленту id Tech 3, однако id Tech 4 предоставляет разработчикам модификаций значительно больше доступа к сетевому протоколу. Это особенно заметно в сравнении с его ближайшими конкурентами, Unreal Engine 2 (2002) и Unreal Engine 3 (2006) от Epic Games. id Software не желала лицензировать свой новый движок до завершения его "основной игры" Doom 3. Однако неожиданно длительное время разработки Doom 3 с 2002 по 2004 год привело к тому, что они не смогли составить конкуренцию Unreal Engine 2 от Epic Games в этот период. Многие, кто лицензировал Unreal Engine 2, смогли затем легче перейти на Unreal Engine 3. В то время как id Tech 4 пошла по новому пути с динамическим освещением на пиксель, эта нестандартная функция предъявляла более высокие требования к аппаратному обеспечению и изначально была полезна только в "атмосферных хоррорах" (до добавления MegaTexture), в то время как всё больше разработчиков предпочитали традиционные движки, способные отображать большие открытые пространства. Также стоит отметить относительно низкую масштабируемость id Tech 4 по сравнению с конкурирующими движками для FPS; id Tech 4 обычно требовала GPU, совместимого с DirectX 8.0, например, GeForce 3. Конкурирующий движок Source (разработанный на основе предыдущего движка GoldSrc, который, в свою очередь, произошел от id Tech 2) всё ещё мог работать на более старых и распространенных графических процессорах DirectX 7, хотя и без использования шейдеров.