Как работает движок doom
Движок был написан на Си на рабочих станциях NEXTSTEP . Изначально использовался компилятор Watcom C . Утилиты были написаны под NeXT на Objective-C . Движок Doom был прогрессивным для своего времени.
Все вычисления проводятся в Рендеринг
Для ускорения отображения используется Сетевой код
Doom основан на модели « Игры на движке Doom’а
Мод Ghostbusters для Doom
Движок Doom’а продавался другим компаниям. На нём был сделан ряд игр. Среди них:
В декабре 1997 года исходный текст Doom для 1998 года выпустить свободной GNU General Public License . Остальные ресурсы так и остаются платными.
В Doom Legacy и ZDoom присутствует возможность игры с ботами.
Менее значимые моды кратко перечислены в [3]. Если к расширенной версии Doom добавить WAD из FreeDoom, получаем полностью свободную игру. По состоянию на апрель 2007 года, проект не готов, страдает плохим качеством изображения и ориентирован на Boom (под версиями, которые не являются производными Boom, непроходим уже первый уровень).
Структура уровней
Простая установка, демонстрирующая, как Doom представляет уровни внутри
Если смотреть сверху вниз, все уровни Doom на самом деле являются двухмерными, что демонстрирует одно из ключевых ограничений движка Doom : невозможно перемещаться по комнате . Это ограничение, однако, имеет положительную сторону: можно легко отобразить «режим карты», который представляет стены и положение игрока, как и на первом изображении справа.
Основные объекты
Базовая единица - это вершина , которая представляет одну 2D-точку. Затем вершины (или «вершины», как они называются внутри) объединяются в линии , известные как «определения линий ». Каждый linedef может иметь одну или две стороны, которые известны как «sidedef». Затем боковые определения группируются в многоугольники ; они называются «секторами». Секторы представляют собой определенные области уровня.
Секторов
Каждый сектор содержит ряд свойств: высоту пола, высоту потолка, уровень освещенности, текстуру пола и текстуру потолка. Например, чтобы иметь другой уровень освещенности в определенной области, необходимо создать новый сектор для этой области с другим уровнем освещенности. Таким образом, односторонние линейные определения представляют собой сплошные стены, а двусторонние линейные определения представляют собой линии моста между секторами.
Sidedefs
Sidedefs используются для хранения текстур стен ; они полностью отделены от текстур пола и потолка. Каждый sidedef может иметь три текстуры; их называют средней, верхней и нижней текстурами. В односторонних линейных определениях для текстуры стены используется только средняя текстура. В двусторонних определениях строк ситуация более сложная. Нижняя и верхняя текстуры используются для заполнения промежутков, где соседние секторы имеют разную высоту пола и потолка: например, нижние текстуры используются для ступенек. У sidedefs также может быть средняя текстура, хотя у большинства этого нет; это используется для того, чтобы текстуры висели в воздухе. Например, когда видно, что прозрачная текстура полосы образует клетку, это пример средней текстуры на двустороннем linedef.
Игровой мир
Дум двигатель отделяет рендеринг от остальной части игры. Графический движок работает с максимальной скоростью, но игровой мир работает со скоростью 35 кадров в секунду независимо от оборудования, поэтому несколько игроков могут играть друг против друга, используя компьютеры разной производительности.
Разделение двоичного пространства
Doom использует систему, известную как разделение двоичного пространства (BSP). Инструмент используется для предварительного создания данных BSP для уровня. Этот процесс может занять довольно много времени для большого уровня. Именно из-за этого в Doom невозможно перемещать стены ; в то время как двери и лифты двигаются вверх и вниз, ни один из них никогда не двигается в сторону.
Уровень разделен на двоичное дерево : каждое место в дереве представляет собой «узел», который представляет определенную область уровня (с корневым узлом, представляющим весь уровень). На каждой ветви дерева есть разделительная линия, которая разделяет область узла на два подузла. В то же время разделительная линия делит определения строк на сегменты, называемые «сегменты».
На листьях дерева расположены выпуклые многоугольники , где дальнейшее деление уровня не требуется. Эти выпуклые многоугольники называются подсекторами (или «SSECTORS») и привязаны к определенному сектору. Каждый подсектор имеет список связанных с ним сегментов.
Система BSP сортирует подсекторы в правильном порядке для рендеринга. Алгоритм довольно простой:
- Начните с корневого узла.
- Рекурсивно нарисуйте дочерние узлы этого узла. Дочерний узел, ближайший к камере, сначала рисуется с использованием алгоритма Scanline . Это можно найти, посмотрев, на какой стороне разделительной линии узла находится камера.
- Когда подсектор достигнут, нарисуйте его.
Процесс завершен, когда весь столбец пикселей заполнен (т. Е. Больше не осталось пробелов). Такой порядок гарантирует, что время не будет тратиться на рисование невидимых объектов, и в результате карты могут стать очень большими без каких-либо потерь скорости.
Двигатель судьбы - Doom engine
id Tech 1 , также известный как движок Doom , - это игровой движок, который используется id Software в играх Doom и Doom II: Hell on Earth . Он также используется в Heretic , Hexen: Beyond Heretic , Strife: Quest for the Sigil , Hacx: Twitch 'n Kill , Freedoom и других играх, выпущенных лицензиатами. Он был создан Джоном Кармаком , а вспомогательные функции написаны Майком Абрашем , Джоном Ромеро , Дэйвом Тейлором и Полом Радеком. Первоначально разработанный на компьютерах NeXT , он был перенесен на DOS для первоначального выпуска Doom, а затем был перенесен на несколько игровых консолей и операционных систем .
Исходный код для Linux версии Гибели был выпущен для общественности в соответствии с лицензией, предоставленным правом некоммерческого использования на 23 декабря 1997 года, а затем версии Linux от Doom II примерно через неделю 29 декабря 1997 года исходный код был позже переиздан под лицензией GNU General Public License v2.0 или более поздней версии, 3 октября 1999 года. Десятки неофициальных исходных портов Doom , которые были созданы с тех пор, позволяют Doom работать в ранее неподдерживаемых операционных системах, а иногда и радикально расширять функциональность движка с новыми функциями.
Хотя движок визуализирует трехмерное пространство, это пространство проецируется с двухмерного плана этажа . Линия обзора всегда параллельна полу, стены должны быть перпендикулярны этажам, и нельзя создавать многоуровневые конструкции или наклонные участки (полы и потолки с разными углами). Несмотря на эти ограничения, движок представлял собой технологический скачок по сравнению с предыдущим движком id Wolfenstein 3D . Думы позже двигатель был переименован в «ид Tech 1» для того , чтобы классифицировать его в списке длинной линии ID Software в игровых системах .
Типы WAD
Уровни и пакеты уровней
Самый распространенный тип WAD состоит из одного уровня , обычно сохраняющего тему оригинальной игры, но, возможно, включающий новую музыку и некоторую измененную графику, чтобы определить более отличительную настройку или настроение. Оба одного игрока и Deathmatch многопользовательских уровней являются общими.
Также распространены WAD, которые содержат несколько уровней, иногда в форме эпизода , заменяющего девять уровней, а иногда в виде мегавада , который заменяет 15 или более уровней в игре (27 в Doom , 32 в Doom II , 36 в The Ultimate Doom ).
Мегавады часто представляют собой работу нескольких человек в течение нескольких месяцев или лет.
Всего конверсий
WAD, который вносит в игру капитальный ремонт и включает в себя совершенно другой сеттинг , набор персонажей и сюжет, вместо того, чтобы просто предоставлять новые уровни или графические изменения, называется полным преобразованием . Фраза была придумана Джастином Фишером как часть названия Aliens TC или Aliens Total Conversion . Надстройки, которые предоставляют обширные изменения в аналогичной степени, но сохраняют отличительные части или характеристики оригинальных игр, такие как персонажи или оружие, часто по расширению называются частичными преобразованиями .
Игры на движке Doom
Дум двигатель достиг большую часть своей известности в результате питания классический шутер от первого лица Гибели , и он был использован в нескольких других играх. Обычно считается, что к «большой четверке» движков Doom относятся Doom , Heretic , Hexen: Beyond Heretic и Strife: Quest for the Sigil .
Редактирование
Для Doom доступно множество редакторов уровней . Первоначальная утилита редактирования Doom (DEU) была перенесена на ряд операционных систем , но со временем потеряла значение; многие современные редакторы Doom все еще уходят корнями в DEU и его парадигму редактирования, включая DETH, DeePsea, Linux Doom Editor и Yadex. Другие редакторы уровней включают WadAuthor, Doom Builder (выпущен в январе 2003 г.) и Doom Builder 2 (выпущен в мае 2009 г. как преемник Doom Builder). Некоторые редакторы уровней Doom , такие как Doom Builder и Doom Builder 2, имеют режим 3D-редактирования. На данный момент эти два больше не выпускаются, но выпущен и регулярно обновляется более новый форк, известный как GZDoom Builder .
Со временем был создан ряд других специализированных редакторов Doom для изменения фрагментов графики и звука, в первую очередь XWE, SLADE, Wintex и SLumpEd. Такие вещи, как монстры и предметы, и поведение оружия также можно до некоторой степени изменить с помощью исполняемой утилиты исправления DeHackEd . В ZDoom пользователи могут создавать новых монстров, оружие и предметы с помощью языка сценариев под названием DECORATE, предназначенного для устранения многих недостатков DeHackEd, таких как невозможность добавлять новые объекты и невозможность далеко отклоняться от поведения. оригинального оружия и монстров.
Утилиту Slige можно использовать для автоматической генерации случайных уровней. Однако у Slige был громоздкий подход к созданию карт, и с тех пор был создан новый инструмент под названием Oblige. Этот инструмент полностью написан на Lua .
Известные WAD
Ниже приводится неполный список очень популярных, уникальных или исторически значимых WAD, выбор которых может считаться бесспорным. См. Раздел внешних ссылок ниже для получения альтернативных списков и обзорных сайтов.
Megawads
- «10 секторов» начинались как соревнование в Doomworld, где участникам предлагалось сделать лучший уровень для порта источника BOOM, используя только 10 секторов, а победитель, Михал Меско, получил графическую карту Voodoo 5 5500 AGP.
- Doom The Way id Did - это 27-уровневый мегавад для Doom, выпущенный в 2012 году. Первоначально он был предложен Джейсоном «Hellbent» Root и реализован как совместный проект Doomworld. Целью мегавада было создать три эпизода уровней Doom, которые выглядели и чувствовали себя так, как будто они могли быть в оригинальной игре, но без какого-либо уважения к ней. В 2013 году был выпущен 32-уровневый сиквел Doom II The Way id Did . Кроме того, были выпущены два спин-оффа: Doom The Way id Did: The Lost Episodes, выпущенный в 2016 году и содержащий шесть эпизодов карт, представленных в Doom. The Way id Did, не вошедший в окончательный вариант, и No End in Sight, выпущенный также в 2016 году, который содержит четыре эпизода карт, созданных тремя участниками Doom the Way id Did, либо новых, либо измененных из карт Doom the Way id Did. Ultimate Doom The Way id Did , 9-уровневый эпизод, следующий за оригинальным мегавадом, был выпущен в 2019 году.
- Eternal Doom - это 32-уровневый мегавад для Doom II, созданный Team Eternal и TeamTNT . Он был выпущен некоммерческий в нескольких вариантах, с окончательным быть выпущены 14 ноября 1997 года Eternal Дум места игрока и оригинал Рок ' монстров s в уровнях различных по теме средневековыхзамков и футуристических высокотехнологичных баз, с дополнительным сюжетом о путешествиях во времени . Отличительным аспектом Eternal Doom является размер уровней, в среднем примерно в четыре раза больше, чем в Doom и Doom II . Eternal Doom получил высокую оценку за грандиозную архитектуру уровней и сложную планировку, но размер некоторых из самых больших замков в сочетании с дизайном уровней, который иногда заставляет игрока перемещаться между переключателями, расположенными вокруг карты, что иногда бывает сложно найти, также подвергался критике.
- Going Down - это 32-уровневый мегавад для Doom II, выпущенный в 2013 году. Он был создан английским художником-фрилансером Сириаком Харрисом.
- Ад Показали является 32 уровня megawad для Doom II выпущен 2 мая 1997 г. Он был создан Yonatan Доннер, один из игроков за обреченности Done Quick speedrunning проекта и Haggay Нив. Hell Revealed был разработан с целью предоставить вызов опытным игрокам и стал печально известен своей сложностью: на самых сложных уровнях из набора есть поля битвы, где игрок сражается с десятками самых сложных монстров одновременно, некоторые уровни содержат около 500 все монстры. Вторая после оригинальных игр Doom и Doom II , Hell Revealed стала предметом самого большого соревнования по скорости прохождения Doom среди всех Doom WAD. 32-уровневый сиквел мегавада, построенный на той же концепции и с еще большим количеством монстров, Hell Revealed II , был создан другой командой и выпущен 31 декабря 2003 года.
- Icarus: Alien Vanguard - это 32-уровневый мегавад для Doom II, созданный TeamTNT и выпущенный 22 марта 1996 года. Он был разработан как бесплатная версия после того, как компания id Software выбрала TNT: Evilution и выпустила как часть пакета Final Doom. . В 2003 году вышло продолжение Daedalus: Alien Defense.
- Memento Mori - это 32-уровневый мегавад для Doom II, созданный двумя членами The Innocent Crew, Денисом и Томасом Мёллерами, а также 19 другими авторами, включая Тома Мастейна, Дарио и Майло Казали. Первоначально он был выпущен 10 декабря 1995 года, а обновленный выпуск - в феврале 1996 года. 32-х уровневый мегавад Memento Mori II был создан и выпущен 27 июля 1996 года.
- Requiem - это 32-уровневый мегавад для Doom II, созданный теми же людьми, которые работали над ранее выпущенной серией Memento Mori, в дополнение к нескольким новым картографам, которые работали специально над этим проектом. Он был выпущен и загружен в архив idgames 4 июля 1997 года.
- Сигил - это 9-уровневый эпизод оригинальной игры Doom, созданной Джоном Ромеро. Он был анонсирован 10 декабря 2018 г. и выпущен в мае 2019 г.
Всего конверсий
Разное
Freedoom
0.12.1 / 22 октября 2019 г . ; 10 месяцев назад ( 2019-10-22 )Freedoom - это проект, целью которого является создание бесплатной замены (модифицированной лицензии BSD ) для набора графики , музыки , звуковых эффектов и уровней (и различных других ресурсов), используемых Doom . Поскольку движок Doom является бесплатным программным обеспечением , его можно распространять вместе с новыми ресурсами, фактически предоставляя полную бесплатную игру. Freedoom также позволяет пользователям играть в любой из тысяч других WAD, для которых обычно требуется оригинальная игра.
Проект распространяет три файла IWAD: две однопользовательские кампании под названием Freedoom: Phase 1 и Freedoom: Phase 2 , а также FreeDM , который содержит коллекцию уровней deathmatch .
Похожий проект Blasphemer направлен на создание полной бесплатной версии Heretic , но менее развит, чем Freedoom.
Содержание
WAD2 и WAD3
В Quake файлы WAD были заменены файлами PAK . Файлы WAD по-прежнему остаются в файлах Quake , хотя их использование ограничивается текстурами. Поскольку WAD2 и WAD3 используют немного большую структуру каталогов, они несовместимы с Doom .
Моддинг Doom - Doom modding
Doom WAD - это формат файлов пакетов по умолчанию для видеоигры Doom и ее продолжения Doom II: Hell on Earth , которые содержат спрайты, уровни и игровые данные. WAD означает " Где все данные?" Сразу после своего выпуска в 1993 году Doom привлек значительное количество игроков, которые создали свои собственные моды для файлов WAD - пакеты, содержащие уровни , графику и другие игровые данные - и сыграли жизненно важную роль в порождении культуры создания модов, которая теперь стала обычным явлением. для шутеров от первого лица . Для Doom созданы тысячи WAD, от отдельных пользовательских уровней до полных оригинальных игр; большинство из них можно бесплатно загрузить через Интернет . Несколько WAD также были выпущены на коммерческой основе , и для некоторых людей хобби по созданию WADстало воротами в профессиональную карьеру дизайнера уровней .
Существует два типа WAD: IWAD (внутренние WAD) и PWAD (патч-WAD). IWAD содержат данные, необходимые для загрузки игры, в то время как PWAD содержат дополнительные данные, такие как новые спрайты персонажей, необходимые для пользовательских уровней.
СОДЕРЖАНИЕ
История
Расширяемость в Doom
При разработке Doom id Software знала, что многие игроки пытались создать собственные уровни и другие модификации для своей предыдущей игры Wolfenstein 3D . Однако процедуры создания и загрузки модификаций для этой игры были громоздкими.
Джон Кармак , ведущий программист в id Software, с нуля разработал внутреннее устройство Doom, чтобы позволить игрокам расширять игру. По этой причине игровые данные, такие как уровни, графика , звуковые эффекты и музыка , хранятся отдельно от игрового движка в «файлах WAD». Это позволяло игрокам создавать свои собственные данные, не внося никаких изменений в движок. По Гибели ' начальной s дизайн документа , WAD означает „ W здесь A Л.Л. D ата?“
Идею сделать Doom легко модифицируемым в первую очередь поддержали Кармак, известный сторонник авторского лева и хакерского идеала, когда люди делятся и опираются на результаты работы друг друга, а также Джон Ромеро , который в молодости взламывал игры и хотел разрешить другие игроки делают то же самое. Однако не все в команде id Software были довольны этим развитием; некоторые, в том числе Джей Уилбур и Кевин Клауд , возражали из-за юридических проблем и полагая, что это не принесет никакой пользы бизнесу компании.
Появляются утилиты и WAD
Сразу после первого условно-бесплатного выпуска Doom 10 декабря 1993 года энтузиасты начали работу над различными инструментами для модификации игры. 26 января 1994 года Брендон Вайбер выпустил первую общедоступную версию программы Doom Editing Utility (DEU) в Интернете, программы, созданной фанатами Doom, которая позволила создавать совершенно новые уровни. DEU продолжал разработку до 21 мая того же года. Это стало возможным благодаря выпуску Мэттом Феллом неофициальных спецификаций Doom . Вскоре после этого энтузиасты Doom приняли участие в дальнейшем улучшении DEU. Рафаэль Кине возглавил разработку программы и общий выпуск проекта, а Стив Бареман руководил работой по документации и созданием учебного пособия DEU. Более 30 человек также помогли с усилиями, и их имена указаны в файле README.1ST, включенном в дистрибутив программы. Yadex, форк DEU 5.21 для систем Unix , работающих под управлением X , был позже выпущен под лицензией GNU / GPL . (Кармак дополнительно выпустил исходный код для утилит, используемых для создания игры, но они были запрограммированы на Objective-C для рабочих станций NeXT и поэтому не могли напрямую использоваться большинством людей, которые были пользователями ПК .)
Джеффри Птица приписывают создание первого пользовательского WAD для Гибели , выпущенный под названием Origwad , 7 марта 1994 г. Вскоре, бесчисленные любители создавали собственные комки и обмениваться ими через AOL и CompuServe форумах и других интернет-каналов. Многие WAD были сделаны в стиле базовой игры, другие были основаны на сериалах , фильмах или оригинальных темах. Некоторые сотрудники id Software рассказали, что они были впечатлены некоторыми WAD; Позже Джон Кармак сказал следующее о модификации на тему « Звездных войн» :
Я до сих пор помню, как впервые увидел оригинальный мод Star Wars DOOM. Было так здорово видеть, как кто-то поместил звезду смерти в нашу игру. Я так гордился тем, что стало возможным, и был полностью уверен, что создание игр, которые могли бы служить основой для работы других людей, было правильным направлением.
Другая особенно примечательная ранняя модификация - Aliens TC (см. Ниже в разделе конверсий ), основанная на фильме Aliens .
Несмотря на то, что WAD модифицировали Doom , заменив графику и звук, количество настроек было несколько ограничено; большая часть поведения игры, включая время и силу оружия и врагов, была жестко запрограммирована в исполняемом файле Doom и не могла быть изменена в WAD. DeHackEd , программа редактирования Doom, созданная Грегом Льюисом, решила эту проблему , позволив пользователям изменять параметры внутри самого исполняемого файла Doom , обеспечивая большую степень настройки.
Коммерческие WAD
Примерно в 1994 и 1995 годах WAD распространялись в основном через BBS и через коллекции компакт-дисков, которые можно найти в компьютерных магазинах или в комплекте с инструкциями по созданию уровней, тогда как в более поздние годы FTP- серверы в Интернете стали основным методом получения этих произведений. Несмотря на то, что лицензия на программное обеспечение Doom требовала, чтобы пользовательские WAD не приносили прибыли, участник id Software заявил, что принял некоторые меры против дистрибьюторов компиляций WAD на компакт-дисках, некоторые наборы WAD и комплекты лопаточного ПО, тем не менее, можно было получить по цене в определенных торговых точках. .
В то время id Software работала над своей следующей игрой, Quake , используя новую технологию, но начала проекты, собирая самых талантливых создателей WAD из сообщества Doom, чтобы создать официальные дополнения и конкурировать с несанкционированными коллекционными компакт-дисками. Команда подготовила 21 мастер-уровень , который 26 декабря 1995 года был выпущен на компакт-диске вместе с Maximum Doom , коллекцией из 1830 WAD, которые были произвольно загружены из Интернета. В 1996 году Final Doom , пакет из двух 32-уровневых мегавадов, созданных TeamTNT , был выпущен в качестве официального продукта id Software.
Кроме того, различные шутеры от первого лица, выпущенные в то время, использовали движок Doom по коммерческой лицензии от id Software, по сути, являясь пользовательскими WAD, упакованными с движком Doom . Примером может служить выпуск 1997 года Hacx: Twitch 'n Kill .
Помимо множества людей, которые внесли свой вклад в коммерчески выпущенные WAD, различные авторы участвовали в разработке других игр:
- Кеннет Скотт, который работал над Hacx: Twitch 'n Kill , позже стал арт-директором id Software и 343 Industries по играм, выпущенным после BungieHalo .
- Тим Уиллитс , который внес два уровня в Master Levels for Doom II , позже стал ведущим дизайнером в id Software.
- Дарио Казали , автор четверти Final Doom , был нанят Valve для работы над Half-Life .
- Сверре Квернмо , дизайнер пяти уровней мастер-уровней для Doom II и член TeamTNT, был нанят Ion Storm для Daikatana .
- Иикка Керянен , автор нескольких Doom WAD и более поздних модов Quake , был нанят Ion Storm для создания уровней для Anachronox и Daikatana , а Looking Glass Studios - для создания уровней для Thief II: The Metal Age . Позже Керэнен был нанят Valve.
- Джон Андерсон (дизайнер уровней), также известный как «Доктор Сон», автор пяти уровней мастер-уровней для Doom II и E4M7 в The Ultimate Doom , позже работал над Blood , Unreal и Daikatana .
- Маттиас Ворч (дизайнер уровней) присоединился к Ritual Entertainment, чтобы работать над SiN . Позже он участвовал в серии Unreal .
Эра исходного порта
Примерно в 1997 году интерес к Doom WAD начал снижаться, поскольку внимание было привлечено к более новым играм с более продвинутыми технологиями и более настраиваемым дизайном, включая Quake от id Software .
23 декабря 1997 года id Software выпустила исходный код движка Doom (первоначально под ограниченной лицензией; 3 октября 1999 года он был выпущен снова в соответствии с условиями Стандартной общественной лицензии GNU ). Имея доступный исходный код, программисты получили возможность изменять любой аспект игры, удалять технические ограничения и ошибки и добавлять совершенно новые функции.
Эти модификации движка, или исходные порты Doom , с тех пор стали целью большей части редактирования WAD (хотя некоторые пуристы предпочитают оригинальный, немодифицированный движок). По состоянию на 2018 год несколько исходных портов все еще активно разрабатываются, и Doom сохраняет сильных поклонников людей, которые все еще создают WAD.
Возможности движка DooM
Я как то в одной из своих статей упоминал, что движок Doom гениален, ровно как и ребята, которые его сделали. Что же сказать? Существуют люди, которые сомневаются в том, что движок еще не изучен, а его потенциал так и не раскрыт.
Ну что же тебе сказать, тот неизвестный чел? На, ешь, с хлебом. Эта вещь под названием "Selaco" делается на движке Doom 1993 года.
Графика шикарная, про возможности пока что не знаю. Я видел конечно подобные моды, но что бы прям такие? Время идет, с двиглом работают модеры и кодеры, и я думаю, что это еще не предел, далеко не предел.
Я буду угорать в голос, если ребята "раскопают" и сделают на нем, что то уже намного более близкое к 2021 году, в то время как другие трудятся над каким то двиглом, заламывая потом непомерные системные требования.
Будет это скорее всего не скоро, ведь столько лет ушло, но потенциал и разница видны на лицо, просто всерьез за это никто не брался.
А еще было бы интересно посмотреть на эту вещь вживую.
По крайней мере, скриншоты очень даже впечатляют
Совсем чуть чуть геймплея
И еще немного о движке, о текстурках гипервысокого разрешения.
Тестирование эффекта - парралакс. Еще вопросы?
Полная, Объемная модель посредством спрайтов на движке. Я уверен, что есть способ использования и полных моделек, комплексных. Как кто то в комментах написал: "That is Incredible"
Мегаплавные анимации дробовика, как тебе такое Илон Маск?
Реализация кровавого пола
Рендеринг
Рисуем стены
Все стены в Doom нарисованы вертикально; именно из-за этого невозможно правильно смотреть вверх и вниз. Можно выполнить вид поиска вверх / вниз с помощью «Y-сдвига» , и это делают многие современные порты исходного кода Doom , а также более поздние игры, использующие этот движок, такие как Heretic . По сути, это работает путем перемещения линии горизонта вверх и вниз по экрану, по сути, обеспечивая «окно» в более высокой видимой области. Перемещая окно вверх и вниз, можно создать иллюзию взгляда вверх и вниз. Однако это будет искажать вид по мере того, как игрок смотрит вверх и вниз.
Дум двигатель делает стены , как она обходит дерево BSP, рисунок подсектор по заказу расстояния от камеры , так что самые близкие SEGS втягивается в первую очередь. По мере рисования сегментов они сохраняются в связанном списке. Это используется для обрезки других сегментов, отображаемых позже, для уменьшения перерисовки. Это также используется позже для обрезки краев спрайтов.
Как только двигатель достигает твердой (односторонней) стены в определенной координате x, больше не нужно рисовать линии в этой области. Для отсечения движок хранит «карту» областей экрана, где были достигнуты сплошные стены. Это позволяет полностью вырезать удаленные части уровня, которые не видны игроку.
В графическом формате Doom текстуры стен хранятся в виде наборов вертикальных столбцов ; это полезно для средства визуализации, которое по существу визуализирует стены путем рисования множества вертикальных столбцов текстур.
Пол и потолок
Система для рисования полов и потолков («квартир») менее элегантна, чем для стен. Квартиры нарисованы с использованием алгоритма, похожего на заливку . Из-за этого иногда возможно, если плохой конструктор BSP используется для получения «дыр», где пол или потолок спускаются до краев экрана, визуальная ошибка, обычно называемая «слизистым следом». Это также причина, по которой, если игрок выходит за пределы уровня, используя чит noclip, полы и потолки будут казаться вытянутыми с уровня на пустое пространство.
Пол и потолок изображены в виде «виспланов». Они представляют собой горизонтальные проходы текстуры от пола или потолка на определенной высоте, уровне освещенности и текстуре (если два соседних сектора имеют точно такой же пол, они могут быть объединены в одну виплоскость). Каждая позиция x на визплоскости имеет определенную вертикальную линию текстуры, которую нужно нарисовать.
Из-за этого ограничения рисования одной вертикальной линии в каждой позиции x, иногда необходимо разделить visplanes на несколько visplanes. Например, рассмотрите пол с двумя концентрическими квадратами. Внутренний квадрат будет вертикально разделять окружающий пол. В том горизонтальном диапазоне, где нарисован внутренний квадрат, необходимы две висспланы для окружающего пола.
По мере рендеринга сегментов также добавляются виплоскости, идущие от краев сегментов к вертикальным краям экрана. Они расширяются, пока не достигнут существующих визпланов. Из-за того, как это работает, система зависит от того факта, что сегменты отрисовываются по порядку всем движком; сначала необходимо приблизить висспланы, чтобы они могли «отрезаться» от других, находящихся дальше. Если его не остановить, пол или потолок «растекутся» до краев экрана, как описано ранее. В конце концов, visplanes образуют «карту» определенных областей экрана, на которых можно рисовать определенные текстуры.
В то время как визпланы состоят в основном из вертикальных «полос», реальный низкоуровневый рендеринг выполняется в виде горизонтальных «промежутков» текстуры. После того, как все виспланы построены, они преобразуются в пролеты, которые затем отображаются на экране. Похоже, это компромисс: легче построить вископланы в виде вертикальных полос, но из-за характера того, как выглядят текстуры пола и потолка, их легче нарисовать в виде горизонтальных полос.
Вещи (спрайты)
Каждый сектор на уровне имеет связанный список вещей, хранящихся в этом секторе. По мере рисования каждого сектора спрайты помещаются в список спрайтов для рисования. Если они находятся вне поля зрения, они игнорируются.
Края спрайтов обрезаются путем проверки списка ранее нарисованных сегментов. Спрайты в Doom хранятся в том же формате столбцов, что и стены, что опять же полезно для средства визуализации. Те же функции, которые используются для рисования стен, используются и для рисования спрайтов.
В то время как подсекторы гарантированно находятся в порядке, спрайты внутри них - нет. Doom хранит список отрисовываемых спрайтов («висспрайты») и сортирует его перед рендерингом. Далекие спрайты отрисовываются раньше близких. Это вызывает некоторое перерисовку, но обычно это незначительно.
И последняя проблема со средними текстурами на двухсторонних линиях, которые используются, например, в прозрачных полосах. Они смешиваются и рисуются со спрайтами в конце процесса рендеринга, а не с другими стенами.
Читайте также: