История технологий - id Tech Engine

Автор -, . Опубликовано в History

ОБЩАЯ ИНФОРМАЦИЯ О ТЕХНОЛОГИИ

 IDtech logo

Разработчик: id Software.
Серия движков: id Tech.
Дата анонса: 1992 год
Написан на языке: C/C++, Assemble.
Лицензия: коммерческая/Свободное ПО
Последняя версия: id Tech 6. 

Начнем пожалуй с предистории, с движка, который заложил фундамент для создания современных игр, а именно с Wolfenstein 3D engine. Wolfenstein 3D engine относится к псевдотрехмерным движкам - это означает, что графика Wolfenstein 3D engine пытается имитировать трёхмерное игровое пространство, но не является трёхмерной. Движок разрабатывался преимущественно Джоном Кармаком, главным программистом компании id Software, для игры Wolfenstein 3D, вышедшей 5 мая 1992 года.

 Wolf3D-001 

Для своего времени движок обладал на самыми революционными технологиями и возможностями, но являлся самым оптимизированным под низкие системные требования и любое игровое железо того времени. 

ОСОБЕННОСТИ Wolfenstein 3D engine

Все объекты в нём отображаются в виде спрайтов - двумерных рисунков, изменяющих размер в зависимости от расстояния. Спрайты использовались во всех 2.5D движках и в первых трёхмерных играх, например, движок BUILD-engineи и игры DukeNukem3D, Shadow Warrior, Exhumed и Redneck Rampage. Связано это с тем, что использование спрайтов вместо текстур снижает ресурсопотребление.

Wolf3D-002

Для отсечения невидимых стен и их граней используется рейкастинг. Рейкастинг - технолгия, которая в реальном времени анализирует и отображает 3D положение на 2D экран с учетом дальности нахождения от сторон.

Wolf3D-003

Движок так же реализует VGA графику, текстурированные стены и возможность использования звуковой карты вместо встроенного динамика.

ОГРАНИЧЕНИЯ Wolfenstein 3D engine

Большинство ограничений данного движка были связаны с тем, что игровая карта размещалась на двухмерной сетке, т.е. фактически была двухмерной. Невозможным так же было движение по вертикали. Особенное представление создавало илюзию трехмерности. Так появилось понятие 2.5D движков. В нём не поддерживается различие геометрической высоты, различия в освещенности. Стены могут быть ориентированы только как «север-юг» или «запад-восток». Движок исключает так же наличие наклонных поверхностей.

Wolf3D-006

Интересный факт - согласно слов Джона Кармака, игровой движок был создан под вдохновением от технологической демоверсии компьютерной ролевой игры от первого лица Ultima Underworld: The Stygian Abyss в 1991. Кармак утверждал, что сможет создать более быстрый визуализатор, в чём и преуспел. 

id Tech 1 ENGINE 

id Tech 1 — движок, разработанный американской компанией id Software и применяемый в компьютерных играх Doom, Heretic, HeXen, Strife, HacX и других играх, созданных по лицензии. Так же является псевдотрехмерным движком, но в этот раз упор в разработке был не на быстродействие движка, Wolfenstein 3D engine стал основой, которую следовало доработать. Первоначально написан на компьютерах NeXT, затем, для первого релиза Doom был портирован под DOS, а позднее ещё на несколько игровых консолей и операционных систем.

doom-004

 ОСОБЕННОСТИ ДВИЖКА

Сразу же перейдем к особенностям движка и его отличиям от предшесвенника Wolfenstein 3D engine. Во-первых пол и потолок теперь могут иметь любую высоту и ориентация стен не обязательно в направлении «север-юг» или «запад-восток». Появилась изменяющаяся освещённость, повышаюшая реалистичность графики.

doom-003

Лифты, дистанционно открывающиеся двери, опускающиеся и придавливающие потолки, поднимающиеся ступеньки и другие движущиеся элементы. Внедрение технологий, которые позволяли перевещаться в высоту, что положительно повлияло на геймплей. Теперь персонажи могли прыгать, падать с крыш и летать по воздуху.

doom-002

Звуковая подсистема поддерживала стереозвук и микширование до 8 эффектов одновременно. Стереозвук позволял воспроизводить звук с разных сторон от игрока, повышая тем самым реалистичность игры.

doom-001

Персонаж при движении покачивался вверх-вниз, что создало иллюзию ходьбы. Разрешалось подключение дополнительных модулей с уровнями, графикой и звуками. Идея расширяемости пошла от Джона Кармака, который сам модифицировал игры и хотел, чтобы другие это делали.

НЕДОСТАТКИ ДВИЖКА 

Лабиринт(карта уровня) имеет горизонтальный пол с потолком и вертикальные стены. Лабиринт создавался таким образом, что две комнаты не могут находиться одна над другой. Таким образом, карта уровня является совершенно двухмерной.

id-tech-1-doom-001

Недоработки в системе перемещения по высоте создавало много несоответствий и багов игрового процесса, так, например платформа могла двигаться только вверх и вниз без возможности движения влево и вправо. Во всей игре масштаб спрайтов и текстур постоянный. Поэтому было невозможно установить высокодетализированный плакат на менее детальной стене. Авторы так и не проработали вертикальные столкновения объектов. Поэтому ирок не имел возможности пробежать под летящим какодемоном или, разогнавшись на какой-нибудь крыше, перепрыгнуть через факел.

id-tech-1-doom-002

Игра не делала и других проверок по оси Z — например, рыскающий в подвале имп вполне мог нанести повреждения игроку, находящемуся в паре сотен метров выше, на чердаке, а взорвавшаяся у основания здания ракета наносила урон монстру на крыше. Игрок мог использовать переключатели вне зависимости от высоты.

 

Особая структура уровня требовала прорисовки всего уровня перед его запуском. Сборка происходит автоматически - на компьютерах того времени менее чем за минуту, тем не менее, это мешало просматривать уровень в реальном времени прямо по ходу редактирования. К тому же двоичное разбиение делило стены на «отрезки» — это усложняло геометрию уровня. Такое разбиение называется BSP-дерево (Binary Space Partition) и используется для обнаружение столкновений и сортировки визуальных объектов в порядке удаления от наблюдателя.

id-tech-1-doom-003

По этой же причине лифты и платформы могут двигаться вверх-вниз, но не в горизонтальной плоскости. Ограниченное горизонтальное движение в Hexen не могло сравниться в мощи с вагончиками Duke Nukem 3D. Высота текстуры, если та повторяется по вертикали, должна всегда равняться 128 текселям. Для неповторяющихся текстур это не требуется. Исправлено в многочисленных портах Doom.

 id-tech-1-doom-004

СИСТЕМНЫЕ ТРЕБОВАНИЯ ДЛЯ id Tech 1 ENGINE

Минимальные системные требования Эффективные системные требования Оптимальные  системные требования
Процессор: Pentium Pro
Оперативная память: 32 Мб RAM
Видео: 2 Мб
Операционные системы: DOS
Процессор: AMD Athlon  или Pentium II 
Оперативная память: 64 Мб RAM
Видео: 8 Мб
Операционные системы: Windows 98SE/2000/XP 
Процессор: AMD Athlon  или Pentium II 
Оперативная память: 64 Мб RAM
Видео: 16 Мб
Операционные системы: DOS
id Tech 2 ENGINE
 quake-II-logo

id Tech 2, прежде известный как Quake II engine, — игровой движок, разработанный Джоном Кармаком в 1997 году. Движок, помимо того, что это был первый 3D движок, имел множество нововведений, которые повияли даже на современное игровое сообщество. Хотя движок разрабатывался в первую очередь для игры Quake II, позднее его лицензировало множество других разработчиков. Дерево развития движков Quake иллюстрирует, какие игры и движки основаны на id Tech 2.

quake-tree

 

Процессоры 1997го года были все еще слабыми, что исключало поддержку пошаговой прогрузки уровня, как порталы в Build engine. Формат уровней все так же использует BSP-дерево. Дополнительно к нему движок использует технологию Скайлайн - полигоны уровней просчитываются сначала сверху, до условной границы-горизонта не как смоделированно в уровне, а как видит персонаж, затем снизу.

idTech-2-quake-II-000

Кармак разрабатывал интерфейс для дизайна уровней, который позволял гораздо быстрее разрабатывать игру так как сама компиляция занимала несколько часов. Так же были использованы разные трюки оптимизации - во время самой компиляции система по средствам разных алгоритмов разделялась на два пространства которое должен был видеть игрок и не должен был видеть. Пространство, которое игрок видел, игра удаляла, что действовало как бы оптимизацией во время игрового процесса, но все равно на расчет требовала много времени. Для работы данного метода требовалась полная герметизация уровня.

idTech-2-quake-II-001

Для неба была использована одна статичная SkyBox текстура, которая могла растягивать сама себя во время компиляции для придания эффекта безкрайнего горизонта.

idTech-2-skybox

В движок были встроены функции, которые позволяли нанести изменения геометрии уровня т.к. процесс компиляции занимал слишком много времени, данные функции упрощали жизнь разработчикам.

idTech-2-quake-II-002
 

Вместо статического освещения движок стал использовать трехмерные источники света и метод лайтмапов — карт освещения, в которых световые данные для каждой поверхности являются предварительно рассчитанными и сохранены как изображения в файлах. Для создания предрасчётных карт теней id Software использовала метод radiosity. Лайтмапы используются для определения того, какую интенсивность света должна получить каждая модель, но они не определяют направление, из-за чего можно было наблюдать что тени иногда шли независимо от направления ламп или просто висели на воздухе. Кроме того в програмном рендеринге свет был простым и белым, а в аппаратном, то есть в OpenGL, был цветным. Цветное освещение в 3d action было впервые реализовано именно в этом движке.

idTech-2-quake-II-004

Другой интересной особенностю было разделение рендерера на компоненты, которые находились в отдельных DLL-файлах. Именно это позволило включить в движок два рендерера, которые находились в отдельных файлах. Также это позволяло модифицировать движок для игр. Игровая логика была также вынесена в отдельные файлы по двум причинам:
id Software могла опубликовывать исходный код этих библиотек, в то же время сохраняя закрытым исходный код самого рендерера  других частей движка. Так как библиотеки были откомпилированы для родной платформы вместо интерпретирования, они могли работать быстрее, чем аналогичные компоненты Quake, которые должны были выполнять игровую логику QuakeC в ограниченном интерпретаторе.

idTech-2-quake-II-003  

СИСТЕМНЫЕ ТРЕБОВАНИЯ ДЛЯ id Tech 2 Engine

Минимальные системные требования Эффективные системные требования Оптимальные  системные требования
Процессор: Pentium Pro
Оперативная память: 32 Мб RAM
Видео: 2 Мб
Операционные системы: DOS
Процессор: AMD Athlon  или Pentium II 
Оперативная память: 64 Мб RAM
Видео: 8 Мб
Операционные системы: Windows 98SE/2000/XP 
Процессор: AMD Athlon  или Pentium II 
Оперативная память: 64 Мб RAM
Видео: 16 Мб
Операционные системы: DOS
 
id Tech 3 ENGINE

 quake-3-arena

1999 году вышел движок idTech 3,который дебютировал с Quake III Arena. Первоначально движок носил имя Quake 3 Engine, однако с разработкой нового движка компании id Software, id Tech 4 и переходом на другую схему наименования разработанных движков, его стали называть id Tech 3. Движок id Tech 3 не базируется на id Tech 2 и был написан с чистого листа. На момент выхода первой игры на данной технологии, конкурентами движка на рынке считались Unreal Engine первой и второй версии и первые версии движков Lithtech.

Технологические особенности движка заметно улучшились за два года после выхода idTech 2. Первым самым заметным изменением было использование трехмерных моделей формата MD3. Возможности анимации в MD3-формате значительно превосходят таковые в формате MD2, который использует движок id Tech 2. MD2 модели имели ограничение на количество кадров в секунду(на создание анимации всего 10 кадров), а в MD3 такого ограничения нет. Это позволяет создавать более масштабную и реалистичную анимацию, чем на движке Quake II.

hunterq1

Другой важной особенностью формата MD3 является то, что модели могут состоять из нескольких частей, скрепленных друг с другом. Таким образом, каждая часть тела персонажа, например, торс, ноги и голова могут двигаться независимо друг от друга. Каждая часть модели может иметь свой набор текстур.

md3struct

Движок имеет несколько вариантов освещения в зависимости от пользовательских настроек. Помимо карт освещения движок использует метод затенения по Гуро. Принцип метода состоит в последовательном вычислении нормалей к каждой из граней трёхмерной модели и дальнейшего определения нормалей вершин путём усреднения нормалей всех примыкающих к вершине граней. Далее на основании значений нормалей по выбранной модели отражения вычисляется освещённость каждой вершины, которая представляется интенсивностью цвета в вершине. Движок способен освещать модели цветным освещением. Значение цвета освещения бралось из так называемой цветовой решетки. Это свойство предоставляло на то время очень продвинутое качество освещения.

quake3 2014 08 15 18 23 09 365

id Tech 3 способен работать с тремя различными типами теней. Первый, относительно простой, так называемый "пузырь" или капельная тень - символизировала тем самым тень персонажа на полу. Второй создаёт непрозрачные черные тени с резкими краями. Третья рисует вторую полупрозрачно в зависимости от освещения объекта. Все эти тени не "оглядывались" на геометрию уровня и запросто "утопают" в стене.

quake3 2014 08 15 18 25 21 689

В движке реализована виртуальная машина позволяющая выполнять части кода независимо от основной программы. Это позволило более гибко изменять сам движок, но и более просто портировать игры на разные платформы, включая UNIX поодобные системы. В движке реализованы не аппаратные шейдеры, а програмные в виде скриптов. Более того эти шейдеры не ограничивались только визуализацией но и содержали описание объекта, света, которое она излучает и звук, если персонаж прошел по ней или нырнул в воду, и т. д. 

 quake3 2014 08 15 18 25 34 053

СИСТЕМНЫЕ ТРЕБОВАНИЯ ДЛЯ Id Tech 3 ENGINE

Минимальные системные требования Эффективные системные требования Оптимальные  системные требования
Процессор: AMD Athlon или Pentium III 700 Ггц
Оперативная память: 128 Мб RAM
Видео: 16 Мб
Видеокарта: Radeon 7500 или GeForce MX 200 и выше
Операционные системы: Windows 98SE/2000/XP
Процессор: AMD Athlon  или Pentium III 1 Ггц
Оперативная память: 256 Мб RAM
Видео: 32 Мб
ВидеокартаRadeon 7500 или GeForce 2  и выше
Операционные системы: Windows 98SE/2000/XP 
Процессор: AMD Athlon или Pentium III 1 Ггц
Оперативная память: 256 Мб RAM
Видео: 64 Мб
Видеокарта: Radeon 8500 или GeForce Ti 3 и выше
Операционные системы: Windows 98SE/2000/XP 
id Tech 4 ENGINE  

 doom3

Выход id Tech 4 был заметным событием в истории компьютерных игр, так как на своё время выхода он был одним из самых технологичных и инновационных игровых движков. Движок был выпущен как полностью коммерческий продукт, доступный для лицензирования сторонним компаниям. Забегая немного вперед скажем, что после выхода id Tech 5, id Tech 4 перелицензирован как свободное ПО. В качестве API движок использует OpenGL.

id-tech-4-doom-iii-001

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

id-tech-4-doom-iii-002

В id Tech 4 добавили множество новых особенностей, отсутствовавших в движке id Tech 3, который предшествовал ему. Они включали построение выпуклостей с использованием карт нормалей и бликовое освещение. Doom 3, первая игра на движке id Tech 4, использует унифицированную модель, которая генерирует освещение и затенение «на лету». Это означает, что любые источники света влияют на всю сцену, а не только на её заранее определённую часть. К возможностям этой технологии относится возможность самозатенения, которое реализуется с помощью теневых объёмов . С использованием теневых объёмов персонажи могут отбрасывать тени сами на себя: например, подбородок человека может отбрасывать тень на его грудь.

id-tech-4-quake-001

В этот раз программисты из id Software постарались на славу и разработали совершенно новый вид динамического освещения. Теперь все источники света на карте могут изменять свою яркость и за ними изменяется окружающая обстановка, абсолютно динамично и «на лету» в условиях пострендеринга, вместо иллюзии динамичности по средствам изменения якркости обьектов и текстур.

id-tech-4-quake-002

Так же была разработана абсолютно новая технология под названием мегатекстура. Суть мегатекстуры заключается в том, что берется одна огромная текстура, которая покрывает всю карту полигонов и высокодетализированный ландшафт. В разных частях самой себя взятая текстура начинает проявлять различные свойства, будь то песок, земляная или каменная поверхность. Мегатекстура может так же хранить физическую информацию о ландшафте, типа силы тяжести в определенных областях, или указывать, какой звуковой эффект должен проигрываться, если игрок двигается по определенным частям карты. То есть ходьба по скале будет казаться отличной от ходьбы по траве. Данная технология используется в Enemy Territory Quake Wars.

id-tech-4-quake-004

В качестве звукового движка используется технология EAX от Creative Labs. Сетевая модель имеет вид клиент-сервера.

id-tech-4-prey-2-001

Недостатком движка id Tech 4 было то, что он нуждался в высокопроизводительном графическом ускорителе, который был бы по крайней мере совместим с OpenGL 2.0, а так же имел полностью программируемые пиксельные и вертексные шейдеры. Сам движок не поддерживал программную прорисовку, которую предоставляла серия интегрированных графических карт Intel GMA. В то время, до появления id Tech 4, сильный CPU мог компенсировать слабую графическую плату. Перед выходом Doom 3 Джон Кармак предостерегал игроков, что-бы они не покупали графические платы GeForce 4 MX для игры, так как эти платы поддерживают OpenGL 1.x, но не OpenGL 2.0.

id-tech-4-prey-2-002

СИСТЕМНЫЕ ТРЕБОВАНИЯ ДЛЯ id Tech 4 ENGINE

Минимальные системные требования Эффективные системные требования Оптимальные  системные требования
Процессор: AMD Athlon XP 2100+ или Pentium 4 2 Ггц
Оперативная память: 512 Мб RAM
Видео: 128 Мб
ВидеокартаRadeon 9600 Pro или GeForce FX 5600 и выше
Операционные системы: Windows XP/Vista/7/8 
Процессор: AMD Athlon XP 3200+ или Pentium 4 3.2 Ггц
Оперативная память: 1024 Мб RAM
Видео: 256 Мб
ВидеокартаRadeon X800XT или GeForce 6800 GT
Операционные системы: Windows XP/Vista/7/8
Процессор: AMD Athlon X2 3800+ или Core 2 Duo 6300
Оперативная память: 1024 Мб RAM
Видео: 512 Мб
ВидеокартаRadeon X1800 XT или GeForce 7800 GT
Операционные системы: Windows XP/Vista/7/8

 

id Tech 5 ENGINE

id-tech-5-logo

 

id Tech 5 является кроссплатформенным ПО, предназначенным для использования на персональных компьютерах, компьютерах Macintosh и игровых консолях Playstation 3 и Xbox 360. Главной особенностью idTech 5, как и его предшественников, была и остается то, что он написан на OpenGL, а не DirectX. Движок id Tech 5 используется в играх: Rage, Wolfenstein: The New Order и The Evil Within.

id-Tech-5-001

Впервые id Tech 5 официально анонсирован на конференции Apple’s Worldwide Developers Conference, которая прошла в Сан-Франциско 11 июня 2007 года. Демонстрация происходила на восьмиядерном компьютере Apple Macintosh, однако демонстрационная версия использовала только одно ядро и однопоточную реализацию API OpenGL. В качестве видеокарты использовалась Quadro 7000 с 512 Мбайт видеопамяти.

id-Tech-5-002

На E3 2007, которая проходила с 11 по 13 июля 2007 года в Санта-Монике, Калифорния, движок был показан потенциальным лицензиарам, но не публике. Первая реальная общественная демонстрация состоялась на QuakeCon 2007 во время ежегодного лейтмотива, проведенного самим Джоном Кармаком. Тогда было заявлено, что id Tech 5 будет использоваться в новой разрабатываемой игре от id Software - Rage, которая была основана на полностью новой интеллектуальной собственности.

id-Tech-5-005

На QuakeCon 2007 Джон Кармак, ведущий разработчик игровых движков в id Software, заявил сайту «LinuxGames» о своём стремлении минимализировать использование в движке сторонних коммерческих технологий, которые в конечном счёте не дадут возможности сделать движок открытым. Следовательно, в конечном счёте будет опубликован исходный код id Tech 5, как и его предшественников.

idtech5-009

При демонстрации движка было использовано около 20 ГБ текстурных данных и полностью динамический изменчивый мир. В движке используется расширенная технология MegaTexture, которая использует текстуру с разрешающей способностью до 128 000 × 128 000 пикселей (в 16 раз больше по сравнению с последней версией id Tech 4, где использовалась текстура размером 32 768 × 32 768 пикселей).

id-Tech-5-003

Из-за скрытной политики id Software, полной информации о движке нет, но можно сделать некоторые выводы. id tech 5 использует все еще шейдеры версии 3.0, что равносильно DirectX 9.0. Отличия данной версии движка от предшественника заключается в двух особенностях, первая - это использование технологии Penumbra. Технология позволяет создавать более сглаженые полутени в процессе рендера, а эффект достигается при помощи теневых карт. Это не похоже на метод затенения движка id Tech 4, где тени получаются с очень резкими краями. Вторая - это доработка технологии мега текстур.

id-Tech-5-004

СИСТЕМНЫЕ ТРЕБОВАНИЯ ДЛЯ id Tech 5 ENGINE
Минимальные системные требования Эффективные системные требования Оптимальные  системные требования
Процессор: AMD Athlon X4 или Core 2 Quad
Оперативная память: 2048 Мб RAM
Видео: 1024 Мб
ВидеокартаRadeon HD 2900 или GeForce 8800 GTX 
Операционные системы: Windows XP/Vista/7/8
Процессор: AMD Athlon X4 или Core i 3
Оперативная память: 3078 Мб RAM
Видео: 1536 Мб
ВидеокартаRadeon HD 7770 или GeForce GTX 560
Операционные системы: Windows XP/Vista/7/8
 
Процессор: AMD FX 4350 или Core i 5 
Оперативная память: 4096 Мб RAM
Видео: 2048 Мб
ВидеокартаRadeon HD 6970 или GeForce GTX 580
Операционные системы: Windows XP/Vista/7/8


Оцените id Tech  1 1 1 1 1 1 1 1 1 1 Рейтинг 100% [6 Голоса (ов)]


Оцените id Tech 4 1 1 1 1 1 1 1 1 1 1 Рейтинг 94% [8 Голоса (ов)]


Оцените id Tech 5  1 1 1 1 1 1 1 1 1 1 Рейтинг 94% [8 Голоса (ов)]

 

 

Печать