Гость

Главная » Статьи » Игровые движки

Doom engine
Doom engine («движок Doom»), также известный как id Tech 1 — псевдотрёхмерный игровой движок, разработанный американской компанией id Software и применяемый в компьютерных играх Doom, Heretic, HeXen, Strife, HacX и других играх, созданных лицами, имеющими патент. Создан Джоном Кармаком, вспомогательные функции были написаны Майком Абрашем (англ. Mike Abrash), Джоном Ромеро (англ. John Romero), Дэйвом Тэйлором (англ. Dave Taylor и Полом Райдеком (англ. Paul Radek). Первоначально написан на компьютерах NeXT, затем, для первого релиза Doom был портирован под DOS, а позднее ещё на несколько игровых консолей и операционных систем.
Отличия от Wolfenstein 3D engine
Пол и потолок могут иметь любую высоту.
Стены не обязательно ориентированы в направлении «север-юг» или «запад-восток».
Изменяющаяся освещённость, повышавшая реалистичность графики.
Лифты, дистанционно открывающиеся двери, опускающиеся и придавливающие потолки, поднимающиеся ступеньки и другие движущиеся элементы.
Персонажи могут прыгать, падать с крыш и летать по воздуху (впрочем, пройти под летящим врагом или пролететь сверху в прыжке всё равно невозможно).
Звуковая подсистема поддерживала стереозвук и микширование до 8 эффектов одновременно.
Персонаж при движении покачивался вверх-вниз, что создало бо́льшую иллюзию ходьбы (в Wolfenstein точка обзора находилась на постоянной высоте примерно на уровне живота, игрок словно ехал в инвалидной коляске).
Разрешалось (хоть и не поощрялось) подключение дополнительных модулей (WAD-файлов) с уровнями, графикой и звуками. Идея расширяемости пошла от Джона Кармака, который сам модифицировал игры и хотел, чтобы другие это делали.
[править]Ограничения

Лабиринт имеет горизонтальный пол с потолком и вертикальные стены.
Две комнаты не могут находиться одна над другой. Таким образом, карта уровня является совершенно двумерной.
Во всей игре масштаб спрайтов и текстур постоянный. Поэтому, например, невозможно установить высокодетализированный плакат на менее детальной стене.
Авторы так и не проработали вертикальные столкновения объектов. Поэтому нельзя, например, пробежать под летящим какодемоном или, разогнавшись на какой-нибудь крыше, перепрыгнуть через факел.
Игра не делала и других проверок по оси Z — например, рыскающий в подвале имп вполне мог нанести повреждения игроку, находящемуся в паре сотен метров выше, на чердаке, а взорвавшаяся у основания здания ракета наносила урон монстру на крыше. Игрок мог использовать переключатели вне зависимости от высоты (например, всё ещё можно активировать ушедший под землю выключатель на уровне MAP01 Entryway в Doom 2).
Лифты и платформы могут двигаться вверх-вниз, но не в горизонтальной плоскости.
Особая структура уровня (так называемое двоичное разбиение пространства) требовала сборки перед испытанием уровня. Сборка происходит автоматически, на компьютерах того времени менее чем за минуту — тем не менее, это мешало просматривать уровень в реальном времени прямо по ходу редактирования (в отличие от Build Engine). К тому же двоичное разбиение делило стены на «отрезки» (англ. segs) — это усложняло геометрию уровня. Duke Nukem 3D версии 1.3 успешно работал на компьютерах класса Pentium-100 на разрешении 640×480 — ни один порт Doom не способен на такое.
Высота текстуры, если та повторяется по вертикали, должна всегда равняться 128 текселям. Для неповторяющихся текстур (подступёнков, решёток и т. д.) это не требуется. Исправлено в многочисленных портах Doom.
[править]Технические особенности

Движок был написан на Си на рабочих станциях NeXT в операционной системе NEXTSTEP. Изначально использовался компилятор Intel C, но в дальнейшем был использован Watcom C. Утилиты были написаны под NeXT на Objective-C. Движок Doom был прогрессивным для своего времени. Несмотря на то, что Си — язык процедурного программирования, движок Doom написан в явно выраженном объектном стиле.

Категория: Игровые движки | Добавил: muradin (14.06.2012)
Просмотров: 2496 | Теги: Doom engine | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]