Wolfenstein 3D engine

Wolfenstein 3D engine
Тип игровой движок
Разработчик Соединённые Штаты Америки id Software
Ключевой программист Джон Кармак
Дата выхода 1992
Аппаратная платформа IBM PC-совместимые компьютеры
Поддерживаемая ОС DOS
Написан на языках C, x86-совместимый язык ассемблера
Лицензия свободная, GNU GPL
Часть серии движков id Tech
Следующий движок серии Doom engine
Первая игра на движке Wolfenstein 3D (5 мая 1992)
Последняя игра на движке Rise of the Triad (21 декабря 1994)
Игрока атакуют: слева — немецкая овчарка, справа и впереди — простой солдат с пистолетом

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

С 1995 года исходный код движка доступен по лицензии GNU GPL, вместе со всей игрой Wolfenstein 3D.

Технические характеристики

[править | править код]

Движок Wolfenstein 3D engine обладает не самыми революционными для своего времени возможностями, но является специально оптимизированным под более низкие системные требования компьютера.
Он реализует VGA графику (рейтранслитинговая), звук (WAV и IMF), физику и управление.
Написан на Си и ассемблере x86.
Особенности:

Ограничения:

  • Большинство ограничений связаны с тем, что игровая карта размещалась на двухмерной сетке, то есть фактически была двухмерной.
  • Невозможно движение по вертикали (в третьем измерении).
  • Не поддерживается различие геометрической высоты.
  • Не поддерживаются различия в освещенности.
  • Стены могут быть ориентированы только как «север-юг» или «запад-восток».
  • Невозможны наклонные поверхности.

Описание работы

[править | править код]

Для отрисовки сцен используется метод Ray casting

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

Создание уровней, основанных на сетке, преследовало две цели — столкновения луча и стены могут быть найдены более быстро, так как потенциальные столкновения становятся более предсказуемыми и сокращается потребление памяти. Однако обработка открытых пространств становится затруднительной.

Игры, использующие движок Wolfenstein 3D

[править | править код]

После Wolfenstein 3D на этом движке были выпущены следующие игры: