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.
Особенности:
- Все объекты отображаются в виде спрайтов.
- Текстурированные стены.
- Для отсечения невидимых стен и их граней используется рейкастинг.
- 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)
Интересные факты
Согласно словам Джона Кармака, игровой движок был создан под вдохновением от технологической демоверсии компьютерной ролевой игры от первого лица Origin/Looking Glass Studios — Ultima Underworld: The Stygian Abyss в 1991. Кармак утверждал, что сможет создать более быстрый визуализатор, в чём и преуспел.[источник не указан 2103 дня]