Wolfenstein 3D engine

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Wolfenstein 3D engine
Wolfenstane3d screen02.jpg
Игрока атакуют: слева — немецкая овчарка, справа и впереди — простой солдат с пистолетом
Тип Игровой движок (Список)
Разработчик Соединённые Штаты Америки 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 на этом движке были выпущены следующие игры:

Интересные факты[править | править код]

Ссылки[править | править код]