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.
Особенности:
- Все объекты отображаются в виде спрайтов.
- Текстурированные стены.
- Для отсечения невидимых стен и их граней используется рейкастинг.
- VGA графика
- Возможность использования звуковой карты вместо встроенного динамика
Ограничения:
- Большинство ограничений связаны с тем, что игровая карта размещалась на двухмерной сетке, то есть фактически была двухмерной.
- Невозможно движение по вертикали (в третьем измерении).
- Не поддерживается различие геометрической высоты.
- Не поддерживаются различия в освещенности.
- Стены могут быть ориентированы только как «север-юг» или «запад-восток».
- Невозможны наклонные поверхности.
Описание работы
[править | править код]Для отрисовки сцен используется метод Ray casting
Мир в Wolfenstein 3D построен на квадратной сетке из стен однородной высоты и ровных сплошных полов и потолков. Для отрисовки игрового уровня из области наблюдения «выпускается» луч, который проходит через каждый столбец пикселей на экране. Далее алгоритм проверяет, не пересёк ли луч стену, и если пересёк, то в соответствии с этим выбирает и масштабирует текстуру стены согласно тому, где на уровне луч «столкнулся» со стеной и насколько далеко он распространился до этого. Далее создается одномерный буфер, в котором располагаются масштабированные спрайты, которые изображают врагов, бонусы и предметы.
Создание уровней, основанных на сетке, преследовало две цели — столкновения луча и стены могут быть найдены более быстро, так как потенциальные столкновения становятся более предсказуемыми и сокращается потребление памяти. Однако обработка открытых пространств становится затруднительной.
Игры, использующие движок Wolfenstein 3D
[править | править код]После Wolfenstein 3D на этом движке были выпущены следующие игры:
- Blake Stone: Aliens of Gold
- Blake Stone: Planet Strike
- Operation Body Count
- Corridor 7
- Sonic’s Schoolhouse
- Spear of Destiny
- Super 3D Noah's Ark
- Rise of the Triad (с модификацией движка)
- Shadowcaster (использует движок промежуточный между Wolfenstein 3D engine и id Tech 1)