Wolfenstein 3D engine

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Wolfenstein 3D engine
Игрока атакуют: слева — немецкая овчарка, справа и впереди — простой солдат с пистолетомИгрока атакуют: слева — немецкая овчарка, справа и впереди — простой солдат с пистолетом
Тип Игровой движок (Список)
Разработчик Соединённые Штаты Америки id Software
Ключевой программист Джон Кармак
Часть серии движков id Tech
Следующий движок серии Doom engine
Аппаратная платформа IBM PC-совместимые компьютеры
Поддерживаемая ОС DOS
Написан на языках C, x86-совместимый язык ассемблера
Лицензия свободная, GNU GPL
Первая игра на движке 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 на этом движке были выпущены следующие игры:

Интересные факты

Согласно словам Джона Кармака, игровой движок был создан под вдохновением от технологической демоверсии компьютерной ролевой игры от первого лица Origin/Looking Glass Studios — Ultima Underworld: The Stygian Abyss в 1991. Кармак утверждал, что сможет создать более быстрый визуализатор, в чём и преуспел.[источник не указан 2103 дня]

Ссылки