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 v3.0 или более поздней версии .
id Tech 4 начинался как улучшение id Tech 3. Во время разработки это было изначально просто полное переписывание рендерера движка , при этом сохранялись другие подсистемы, такие как доступ к файлам и управление памятью. Решение перейти с языка программирования C на язык C++ потребовало реструктуризации и переписывания остальной части движка; сегодня, хотя id Tech 4 содержит код из id Tech 3, большая его часть была переписана. [3]
На QuakeCon 2007 Джон Кармак , ведущий разработчик графического движка в id, сказал LinuxGames : «Я имею в виду, я не буду называть дату, но Doom 3 будет иметь открытый исходный код». И, как и его предшественники, Джон Кармак сказал, что id Tech 4 будет выпущена с открытым исходным кодом . [4]
На QuakeCon 2009 Кармак заявил, что планирует подать петицию в ZeniMax Media с просьбой опубликовать исходный код id Tech 4 после выхода Rage . [5] В рамках своего выступления на QuakeCon 2011 он подтвердил, что исходный код Doom 3 будет опубликован к концу года, после выхода Rage . [6]
16 ноября 2011 года Кармак объявил в Twitter , что пишет новый код для открытого исходного кода Doom 3, поскольку «юристы все еще настороженно относятся к патентному вопросу вокруг «обратного Кармака»». [7] Это относится к реализации алгоритмов теневого объема с буферизацией трафарета .
22 ноября 2011 года Кармак опубликовал исходный код Doom 3 под лицензией GNU GPL-3.0 или более поздней версии на GitHub . [8] Исходный код не содержит кода «Обратный Кармак». По словам Кармака, в код были внесены незначительные изменения, чтобы избежать каких-либо нарушений. [9] С тех пор было выпущено несколько проектов с открытым исходным кодом, таких как dhewm3, Dante и RBDOOM-3-BFG. [10] [11] [12] В 2021 году библиотеки DLL игры Quake 4 были адаптированы для использования с движком с открытым исходным кодом dhewm3, полученным из выпущенного исходного кода Doom 3 (работа над которым также началась в Prey ); с тех пор это использовалось для портирования игры на AmigaOS 4. [ 13]
Первоначальное требование 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 не являются необходимыми для рендеринга игры, его передовая архитектура, 256-битная шина памяти и эффективность были необходимы для запуска Doom 3 с высокой детализацией и играбельной скоростью. [14] Графический режим «Ultra», включенный в Doom 3, даже не запускался на высокопроизводительных видеокартах в 2004 году, поскольку движку требовалось не менее 512 МБ видеопамяти для правильного отображения и играбельной скорости. [15]
id Tech 4 привел к устареванию графических чипов DirectX 7, таких как широко распространенные GeForce 2 и Radeon 7200 , а также старых чипсетов, таких как RIVA TNT2 и Rage 128 , и программного рендеринга (с интегрированным Intel GMA ). До появления id Tech 4 мощный процессор был способен в некоторой степени компенсировать старую видеокарту. Хотя Джон Кармак изначально предостерегал геймеров от покупки GeForce 4 MX [16] (которую случайные потребители часто путали с GeForce 4 Ti, поддерживающей DirectX 8, хотя в лучшем случае это была улучшенная GeForce 2 ) [ нужна цитата ] , ее довольно широкое распространение заставило id Software добавить ее в список поддерживаемых карт. Были случаи, когда энтузиасты заставляли Doom 3 работать на неподдерживаемых графических чипах, таких как давно устаревший Voodoo 2 , но они не способны отображать попиксельное освещение и рельефное отображение. [17]
Id Tech 4 добавил несколько новых графических функций, отсутствовавших в его предшественнике, id Tech 3. Они включали нормальное отображение и зеркальное выделение . Больше функций было добавлено в ходе разработки последующих игр.
Основным нововведением id Tech 4 было использование полностью динамического попиксельного освещения , тогда как ранее 3D-движки в основном полагались на предварительно рассчитанное повершинное освещение или карты освещения и затенение Гуро . Хотя динамические эффекты были доступны и раньше (например, динамические движущиеся источники света), этот эффект просто изменял яркость вершин полигона, а цвета пикселя просто интерполировались между тремя цветами вершин его полигона.
Этот полностью реальный подход, используемый в Doom 3 , в сочетании с использованием теневых объемов позволил добиться более реалистичного освещения и теней [18], чем в предыдущем поколении движков id. Метод, используемый для создания теневых объемов, является предметом патента Creative , который Creative предоставила id разрешение на использование в движке Doom 3 в обмен на поддержку передовых звуковых технологий EAX от Creative. [19]
Модели, используемые в играх на движке id Tech 4 , анимированы с помощью скелетной анимации . Движок может смешивать несколько анимаций вместе, чтобы создать кожу, которая движется правильно для этих анимаций. Поскольку это интенсивно использует процессор, id провела некоторую работу по оптимизации с помощью Streaming SIMD Extensions (SSE) от Intel . [20]
Первоначальная версия движка id Tech 4 была разработана для несколько темных сред и подвергалась критике за ее предполагаемую неспособность обрабатывать чрезвычайно большие дневные открытые пространства. Технология MegaTexture (форма clipmapping ) решила эту проблему. Рисуя одну массивную текстуру (32 768 × 32 768 пикселей , хотя она была расширена до больших размеров в последних версиях технологии MegaTexture), покрывающую всю полигональную карту и высокодетализированный ландшафт, можно достичь желаемых эффектов. MegaTexture также может хранить физическую информацию о ландшафте, такую как величина сцепления в определенных областях, или указывать, какой звуковой эффект должен воспроизводиться при ходьбе по определенным частям карты. Например, ходьба по камню будет звучать иначе, чем ходьба по траве. [21] Первой игрой, использующей MegaTexture, является Enemy Territory: Quake Wars , основанная на движке Tech 4. Все игры id Tech 5 и id Tech 6 используют MegaTexture, за исключением The Evil Within , в которой используется новый рендерер. [22] [23] Brink , который использует сильно модифицированную версию id Tech 4, также использует виртуальное текстурирование. [24] [25] Хотя реализация отличается от MegaTexture, она была вдохновлена ею. [26] [27]
id Tech 4 имеет всеобъемлющий язык сценариев , который можно использовать при создании модов , и который используется в Doom 3 для управления монстрами, оружием и событиями на карте. Этот язык сценариев похож на C++. [29]
В дополнение к основному языку сценариев, idTech 4 также имеет другой язык сценариев, который используется для GUI — как для меню, так и для HUD , а также для GUI, встроенных в игровой мир. [30] Эти внутриигровые GUI достаточно мощны, чтобы вы могли, например, запустить другую игру, такую как оригинальный Doom, в игровом мире. [31]
Несмотря на этот дополнительный уровень скриптинга, также возможно создавать моды с использованием C++ для построения собственного кода. [32]
В результате соглашения с Creative относительно патента на теневые тома, движок id Tech 4 поддерживает OpenAL , включая специфические расширения EAX от Creative Technology . Работа по включению поддержки OpenAL была проделана Creative Technology, а не самой id. [33]
Движок использует традиционную модель клиент-сервер . Изначально планировалось использовать одноранговую сетевую модель. [34] Эта часть движка работает принципиально аналогично эквиваленту id Tech 3 ; однако id Tech 4 предоставляет разработчикам модов гораздо больше возможностей сетевого протокола. [32]
Хотя Doom 3 поддерживает только 4 игроков (и 8 в дополнении Resurrection of Evil ), движок id Tech 4 может использоваться и с большим количеством игроков, поскольку Quake 4 и Enemy Territory: Quake Wars поддерживают значительно большее количество игроков.
По сравнению с предыдущими и широко используемыми id Tech 3 ( движок Quake III Arena ) и id Tech 2 ( движок Quake II ), id Tech 4 имел меньший успех в лицензировании третьим лицам. [35] Это особенно очевидно в сравнении с его ближайшими современниками, Unreal Engine 2 (2002) и Unreal Engine 3 (2006) от Epic Games . [36] 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 обычно требовал совместимый с DirectX 8.0 графический процессор, такой как GeForce 3. Конкурирующий движок Source [a] все еще мог работать на старых распространенных графических процессорах DirectX 7, хотя и без использования шейдеров .
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )