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 на этом движке были выпущены следующие игры:

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

Напишите отзыв о статье "Wolfenstein 3D engine"

Ссылки

  • [github.com/id-Software/wolf3d Исходники движка и инструкции компиляции на github (англ.)]
  • [web.archive.org/web/20070621175821/www.btinternet.com/~belowe/ Исходники движка и инструкции по компиляции (англ.)]
  • [www.gamesector.org/review.php?id=141 Обзор игровых движков iD Software]

Отрывок, характеризующий Wolfenstein 3D engine

– А присудил!.. присудил!.. – сказал старик тихим голосом и, как показалось князю Андрею, с смущением, но потом вдруг он вскочил и закричал: – Вон, вон! Чтоб духу твоего тут не было!..

Князь Андрей хотел тотчас же уехать, но княжна Марья упросила остаться еще день. В этот день князь Андрей не виделся с отцом, который не выходил и никого не пускал к себе, кроме m lle Bourienne и Тихона, и спрашивал несколько раз о том, уехал ли его сын. На другой день, перед отъездом, князь Андрей пошел на половину сына. Здоровый, по матери кудрявый мальчик сел ему на колени. Князь Андрей начал сказывать ему сказку о Синей Бороде, но, не досказав, задумался. Он думал не об этом хорошеньком мальчике сыне в то время, как он его держал на коленях, а думал о себе. Он с ужасом искал и не находил в себе ни раскаяния в том, что он раздражил отца, ни сожаления о том, что он (в ссоре в первый раз в жизни) уезжает от него. Главнее всего ему было то, что он искал и не находил той прежней нежности к сыну, которую он надеялся возбудить в себе, приласкав мальчика и посадив его к себе на колени.
– Ну, рассказывай же, – говорил сын. Князь Андрей, не отвечая ему, снял его с колон и пошел из комнаты.
Как только князь Андрей оставил свои ежедневные занятия, в особенности как только он вступил в прежние условия жизни, в которых он был еще тогда, когда он был счастлив, тоска жизни охватила его с прежней силой, и он спешил поскорее уйти от этих воспоминаний и найти поскорее какое нибудь дело.
– Ты решительно едешь, Andre? – сказала ему сестра.
– Слава богу, что могу ехать, – сказал князь Андрей, – очень жалею, что ты не можешь.
– Зачем ты это говоришь! – сказала княжна Марья. – Зачем ты это говоришь теперь, когда ты едешь на эту страшную войну и он так стар! M lle Bourienne говорила, что он спрашивал про тебя… – Как только она начала говорить об этом, губы ее задрожали и слезы закапали. Князь Андрей отвернулся от нее и стал ходить по комнате.
– Ах, боже мой! Боже мой! – сказал он. – И как подумаешь, что и кто – какое ничтожество может быть причиной несчастья людей! – сказал он со злобою, испугавшею княжну Марью.
Она поняла, что, говоря про людей, которых он называл ничтожеством, он разумел не только m lle Bourienne, делавшую его несчастие, но и того человека, который погубил его счастие.
– Andre, об одном я прошу, я умоляю тебя, – сказала она, дотрогиваясь до его локтя и сияющими сквозь слезы глазами глядя на него. – Я понимаю тебя (княжна Марья опустила глаза). Не думай, что горе сделали люди. Люди – орудие его. – Она взглянула немного повыше головы князя Андрея тем уверенным, привычным взглядом, с которым смотрят на знакомое место портрета. – Горе послано им, а не людьми. Люди – его орудия, они не виноваты. Ежели тебе кажется, что кто нибудь виноват перед тобой, забудь это и прости. Мы не имеем права наказывать. И ты поймешь счастье прощать.
– Ежели бы я был женщина, я бы это делал, Marie. Это добродетель женщины. Но мужчина не должен и не может забывать и прощать, – сказал он, и, хотя он до этой минуты не думал о Курагине, вся невымещенная злоба вдруг поднялась в его сердце. «Ежели княжна Марья уже уговаривает меня простить, то, значит, давно мне надо было наказать», – подумал он. И, не отвечая более княжне Марье, он стал думать теперь о той радостной, злобной минуте, когда он встретит Курагина, который (он знал) находится в армии.
Княжна Марья умоляла брата подождать еще день, говорила о том, что она знает, как будет несчастлив отец, ежели Андрей уедет, не помирившись с ним; но князь Андрей отвечал, что он, вероятно, скоро приедет опять из армии, что непременно напишет отцу и что теперь чем дольше оставаться, тем больше растравится этот раздор.
– Adieu, Andre! Rappelez vous que les malheurs viennent de Dieu, et que les hommes ne sont jamais coupables, [Прощай, Андрей! Помни, что несчастия происходят от бога и что люди никогда не бывают виноваты.] – были последние слова, которые он слышал от сестры, когда прощался с нею.