Сборка (игровой движок) - Build (game engine)

Строить
Build engine logo.png
Снимок экрана, показывающий сборку в 2D-режиме
Снимок экрана, показывающий сборку в 2D-режиме
Разработчики)Кен Сильверман
изначальный выпуск30 сентября 1995 г.; 25 лет назад (1995-09-30)
РепозиторийAdvsys.сеть/ ken/ buildsrc/
ПреемникСборка 2
ЛицензияПользовательская лицензия (бесплатно для некоммерческого использования),[1] Стандартная общественная лицензия GNU v.2 (Duke Nukem 3D/Воин Тени исходный код)[2][3]
Интернет сайтAdvsys.сеть/ ken/строить.htm

Строить это движок шутера от первого лица сделано Кен Сильверман, автор Лабиринт Кена, за 3D Realms. Словно Рок двигатель, механизм сборки представляет свой мир на двумерный сетка, использующая замкнутые 2D-формы, называемые секторами, и простые плоские объекты, называемые спрайты для заполнения геометрии мира объектами.

Механизм сборки обычно считается 2.5D Engine, поскольку основная геометрия мира является двумерной с добавленным компонентом высоты, что позволяет каждому сектору иметь различную высоту потолка и высоту пола. Игра показывает, что некоторые этажи могут быть ниже, а некоторые - выше; то же самое с потолками (по отношению друг к другу). Полы и потолки могут поворачиваться вдоль одной из стен сектора, в результате чего возникает уклон. Обладая этой информацией, механизм сборки визуализирует мир так, как трехмерный, в отличие от современных игровых движков, которые создают настоящие 3D-среды.

Хотя движок Build получил наибольшую известность в результате работы 1996 шутер от первого лица Duke Nukem 3D, он также использовался во многих других играх. Игры с движком сборки "Большой четверки" обычно считаются Duke Nukem 3D, Воин Тени, Redneck Rampage, и Кровь.[4] [5]

Технические особенности

Секторов

Секторы - это строительные блоки плана уровня, состоящего из двухмерного многоугольный контур при взгляде сверху, сверху и снизу лица сектора выделены отдельно высоты для создания трехмерного пространства. Следовательно, все стены идеально вертикальны - все, что выглядит иначе, технически является наклонным полом или потолком. Слово комната может использоваться как свободная замена для облегчения понимания, хотя одна комната в игровом мире может состоять из многих секторов, и параллакс небо может создать иллюзию нахождения на открытом воздухе. Секторами можно управлять в режиме реального времени; все их атрибутов, таких как форма, высота и наклон, можно было изменять "на лету" в играх, в отличие от более ранних Рок двигатель. Это позволило играм иметь разрушаемую среду, такую ​​как Кровь. Этот метод похож на использование толкающих стен в более раннем Программное обеспечение Apogee заглавие Восстание триады в котором представлены похожие динамические среды.

Разработчики игр на основе движка использовали специальные зарезервированные «спрайты» (игровые объекты), часто называемые «секторными эффекторами» [sic ], что при задании специальных тегов (чисел с определенным значением) позволит разработчику уровней построить динамический мир; аналогичная информация тегов может быть присвоена стенам сектора и площади пола, чтобы дать сектору особые характеристики. Например, эффект определенного сектора может позволить игрокам провалиться сквозь пол, если они пройдут по нему, и телепортировать их в другой сектор; на практике это можно было использовать для создания эффекта падения из ямы в большую комнату или создания водоема, в который можно было прыгнуть для исследования под водой. Сектору может быть присвоен тег, который заставляет его вести себя как лифт или лифт.

Секторы могли перекрывать друг друга при условии, что они не могли быть видны одновременно (если два перекрывающихся сектора были видны одновременно, это приводило к повреждению дисплея). Это позволило дизайнерам создать, например, воздуховоды, которые, казалось, проходили через верхнюю часть другой комнаты (однако это могло быть сложно для дизайнеров из-за того, что 2D-точка обзора использовалась для большей части процесса редактирования). Это позволило дизайнерам создавать миры, которые были бы физически невозможными (например, дверной проем небольшого здания мог вести в сеть комнат, превышающих само здание). Несмотря на то, что все это сделало игры, использующие движок, кажутся трехмерными, только в более поздних шутерах от первого лица, таких как Землетрясение, который использовал Землетрясение двигатель, что движок фактически сохранил геометрию мира как истинную трехмерную информацию, что делает создание одной области наложенной поверх другой области на одной карте.

Воксели

Более поздние версии движка сборки Кена Сильвермана позволяли заменять выбранные в игре художественные плитки 3D-объектами, сделанными из воксели. Эта функция появилась слишком поздно для использования в Duke Nukem 3D, но был замечен в некоторых более поздних играх Build Engine. Кровь использует вокселы для подбора оружия и боеприпасов, бонусов и приятных для глаз глаз (например, надгробий на уровне «Cradle to Grave», некоторых стульев и Хрустальный шар в «Темном карнавале»). Воин Тени делает еще более продвинутое использование технологии с вокселями, которые могут быть размещены на стенах (все переключатели и кнопки игры являются вокселями).

В течение нескольких лет Кен работал над современным движком, полностью основанным на вокселях, известным как Voxlap.

Комната над комнатой

Одним из ограничений движка Build является то, что его геометрия уровня способна представить только одно соединение между секторами для любой данной стены. Из-за этого такая простая структура, как полка с пространством как сверху, так и снизу, невозможна, хотя иногда можно заменить спрайты или воксели. Строения в несколько этажей технически возможны, но такое здание не может содержать внешнее окно непосредственно над или под другим окном. Кроме того, необходимо будет проявить некоторую свободу в отношении лестниц, лифтов и других способов доступа на каждый этаж.

Несколько игр Build Engine (а именно Воин Тени, Кровь, и Redneck Rampage) работал над этим, отображая «область просмотра» в другом секторе через дополнительный проход рендеринга. Этот метод, называемый комната за комнатой (ROR) игроку кажется бесшовным. В дополнение к расширенному диапазону вертикальной конструкции, ROR часто использовался для придания водоемам полупрозрачный поверхности. ROR никогда не был особенностью самого движка сборки, а скорее был «уловкой», созданной разработчиками игр. Уловка, использованная в Duke Nukem 3D Чтобы обойти это, как и в случае с его непрозрачными подводными участками, нужно было просто быстро перенести игрока в другую область карты, созданную для имитации, подобно лифтам из Восстание триады.

В 2011 году в EDuke32 была добавлена ​​функция под названием настоящая комната над комнатой (TROR), который позволяет размещать несколько секторов вертикально так, чтобы стена каждого сектора имела свое собственное соединение, что позволяет создавать структуры без ограничений по вертикали. Разница между ROR и TROR заключается в том, что секторы TROR физически перекрываются в данных карты и редакторе (что позволяет легко создавать и визуализировать), а не отрисовываются из разных мест с использованием порталов просмотра, следовательно истинный комната над комнатой. TROR - это особенность исходного порта EDuke32, а не игровая особенность или уловка.

Создавайте игры на движке

Игры, созданные непосредственно на движке сборки
Игры, основанные на Duke Nukem 3D код
Невыпущенные игры на Build Engine

Релиз исходного кода и дальнейшие разработки

20 июня 2000 г. (по данным его веб-сайта) Кен Сильверман выпустил движок сборки. исходный код.[9]

Первые дни

Версия 2.0 Мэтта Сэттлера EDuke, проект по улучшению Duke Nukem 3D за моддеры, был отправлен в 3D Realms для упаковки вскоре после выпуска исходного кода сборки, в результате чего Duke Nukem 3D оставил предварительно созданные библиотеки, которые 3D Realms использовала с оригинальным Duke. (Обе Duke Nukem 3D и EDuke на тот момент все еще были с закрытым кодом.)

С частным 2.1 бета, Saettler работал над интеграцией исходного кода сборки Silverman в исходный код Duke, но проект провалился, прежде чем произвести что-то большее, чем несколько очень глючных частных бета-версий. Несколько групп полного преобразования для игр Build решили работать напрямую с кодом сборки Silverman, и была также разработана расширенная версия редактора сборки, известная как Mapster.

В то время многие на форумах 3D Realms утверждали, что будет невозможно перенести Build на многозадачную ОС, поскольку для этого требуется большой непрерывный блок памяти, который не будет доступен в многозадачной среде. Это заявление не выдержало критики, поскольку все современные операционные системы используют виртуальная память который позволяет приложениям получать непрерывную логическую память без использования непрерывной физической памяти, но общепринятое мнение того времени заключалось в том, что перенос Build на такую ​​ОС был невозможен.

Duke Nukem 3D исходный релиз

1 апреля 2003 года, после нескольких лет заявлений об обратном, 3D Realms выпустила исходный код для Duke Nukem 3D. Вскоре после этого оба Райан С. Гордон и Джонатон Фаулер создали и выпустили исходные порты игры, включая движок сборки. Можно было играть Duke Nukem 3D хорошо на NT линейке Windows (включая Windows 2000 / XP) и на Linux и другие Unix операционных систем, и интерес к исходным портам резко возрос.

icculus.org порт

Райан С. Гордон (icculus) с помощью других создал первый порт движка, используя SDL. Порт первым Linux, затем к Cygwin и, наконец, к собственной сборке Windows с использованием Watcom C ++ compiler, который был компилятором, использованным для исходной сборки DOS (несмотря на то, что он был скомпилирован с помощью Watcom C ++, Build является простым C.) Были некоторые разговоры о том, что Мэтт Сэттлер использовал это для переноса EDuke в Windows, но ничего не вышло.

Порт JonoF

Второй исходный порт был создан Джонатоном Фаулером (JonoF) для Windows, а затем для Linux и Mac OS X. Этот порт, JFDuke3D, изначально не имел поддержки сетевых игр, но был добавлен позже в процессе разработки.

Полимост

Задачу обновления движка сборки до истинного 3D-рендерера взял на себя сам Сильверман. в примечания к выпуску для JFDuke3D он написал:

«Когда 3D Realms выпустила исходный код Duke Nukem 3D, я подумал, что кто-нибудь сделает порт OpenGL или Direct3D. Что ж, по прошествии нескольких месяцев я не увидел никаких признаков того, что кто-то работает над настоящим аппаратно-ускоренным портом Build, просто люди говоря, что это невозможно. В конце концов, я понял, что единственный способ, которым это могло произойти, - это сделать это сам ».

Модуль рендеринга Polymost позволял создавать 3D-графику с аппаратным ускорением, используя OpenGL. Он также представил «hightile», функцию, которая позволяла заменять оригинальные текстуры игры на замены с высоким разрешением в различных форматах. Polymost использовался в JFBuild Джонатона Фаулера, JFDuke3D, JFShadowWarrior и исходных портах, полученных из их кодовых баз.

EDuke32

Позже был выпущен исходный код EDuke 2.0, за которым последовал исходный код последней частной бета-версии EDuke 2.1 (которая так и не вышла в релизную версию). Ричард Гобейль (TerminX) объединил исходный код EDuke 2.0 с JFDuke3D, чтобы сделать EDuke32. Другой порт, Wineduke, основанный на коде icculus, с тех пор умер, оставив EDuke32 единственным портом EDuke, который все еще находится в разработке.

EDuke32 также поддерживает игры NAM и Вторая мировая война, поскольку EDuke был основан на коде этих игр.

Полимер

1 апреля 2009 г. было обнаружено, что средство визуализации OpenGL шейдерной модели 3.0 было разработано для EDuke32 под названием Полимер отличить от Кена Сильвермана Полимост. Сначала это было сочтено первоапрельской шуткой, но позже рендерер был обнародован. Он позволяет создавать более современные эффекты, такие как динамическое цветное освещение и отображение теней в реальном времени, зеркальное отражение и нормальное отображение, и другие функции на основе шейдеров в дополнение к большинству функций, добавленных в Polymost за последние годы. Хотя Polymer полностью пригоден для использования, он технически неполный и неоптимизированный и все еще находится в разработке. Разработчики EDuke32 заявили, что после того, как Polymer будет переписан для повышения скорости, он полностью вытеснит Polymost, поскольку он является превосходным средством визуализации, и его можно сделать так, чтобы он выглядел идентично Polymost.

Другие игровые порты

BuildGDX
Разработчики)Александр "[M210]" Макаров
изначальный выпуск12 января 2018 г.; 2 года назад (2018-01-12)
Стабильный выпуск
1.04 / 13 сентября 2019 г.; 14 месяцев назад (2019-09-13)
Репозиторийgitlab.com/ м210/ BuildEngine
ПлатформаЯва
ТипИгровой движок
ЛицензияПользовательская лицензия (бесплатно для некоммерческого использования)
Интернет сайтм210.duke4.сеть

В Воин Тени исходный код был выпущен 1 апреля 2005 г., а 2 апреля 2005 г. JonoF выпустил его порт, JFShadowWarrior. Однако он признал, что у него был доступ к Воин Тени исходный код примерно за неделю до его выпуска.[10] Этот порт позже был разветвлен ProASM для порта SWP.[11]

В Переливание проект, направленный на воссоздание Кровь в движке DarkPlaces, но по состоянию на 2006 год этот проект еще далек от завершения, хотя в нем есть полноценный многопользовательский режим Deathmatch; аналогичный проект BloodCM который воссоздает все уровни одиночной игры Monolith для Кровь поверх EDuke32, а также ZBlood который портирует некоторые Кровь активы и уровни на ZDoom.

Также всплыли исходные коды Witchaven, Witchaven II: Blood Vengeance, TekWar Уильяма Шатнера и Corridor 8: Galactic Wars. Однако их правовой статус неясен. Полный исходный код альфа-версии Кровь также просочился и использовался в качестве справки для других реконструированный порт в Ява с помощью LibGDX называется КровьGDX в мае 2017 года.[12]

Это следует из предыдущего порта автора TekWar выпущен в январе 2016 года, за ним последовали порты для Witchaven, Redneck Rampage, Duke Nukem 3D, Powerslave, Легенды семи паладинов и Воин Тени, теперь все вместе называются BuildGDX.

Еще один порт Кровь, называется NBlood, был выпущен в январе 2019 года на основе EDuke32 и предыдущего Rednukem порт для Redneck Rampage.[13] Порт EDuke32 для PowerSlave, называется ПК, был выпущен 21 ноября 2019 года.

Исходный порт Сметать вилки EDuke32 и связанные порты, включая NBlood, Rednukem, и ПКЭксгумированный, и связывает его с новым базовым сервером на основе GZDoom.[14]

Преемник

После нескольких попыток создать преемника Build, Сильверман снова начал экспериментировать с такой идеей в 2006 году. Он использовал эту работу, которая теперь называется Сборка 2 - обучая детей программированию 3D-игр в летнем лагере с 2007 по 2009 год, и работал до 2011 года, когда он потерял интерес к проекту. Он имеет более продвинутую систему освещения, воксельный рендеринг для объектов и настоящих трехмерных пространств, по крайней мере частично сохраняя обратную совместимость с исходной сборкой. Сильверман опубликовал свои черновики 7 марта 2018 года.[15][16] Исходный код был опубликован 8 июня 2019 года.[17]

Примечания

  1. ^ Из исходного кода BUILDLIC.TXT
  2. ^ Duke Nukem 3D - GitHub
  3. ^ Воин Тени - GitHub
  4. ^ Уилсон, Хэмиш (23 июня 2015 г.). «Большая тройка игр со сборками на GOG». GamingOnLinux. Получено 23 июн 2015.
  5. ^ Зак, Роберт (13 апреля 2016 г.). "Красота движка сборки". КаменьБумагаДробовик.
  6. ^ «ТВИМ». История корейских игр. Хардкорные игры 101. Получено 2017-07-01.
  7. ^ Ыйджок: Им Ккеокчжон для DOS (1994) в MobyGames
  8. ^ а б c «3D Realms». Следующее поколение. № 10. Imagine Media. Октябрь 1995. С. 99–102.
  9. ^ "Страница исходного кода механизма сборки Кена Сильвермана". Получено 7 июля, 2008.
  10. ^ Фаулер, Джонатон (3 апреля 2005 г.). "JFShadowWarrior". JonoF's. п. 1. Получено 3 августа 2011. … Я [JonoF] имел фору на неделю…
  11. ^ Порт SWP ProASM
  12. ^ Алекс Уокер. «Теперь вы можете играть в оригинальную кровь с помощью Java». Котаку. Получено 2020-08-15.
  13. ^ Лиам Доу. "NBlood, порт с открытым исходным кодом классического FPS" Blood "с использованием EDuke32". GamingOnLinux. Получено 2020-08-15.
  14. ^ Лиам Доу. "Raze - новый форк EDuke32 с открытым исходным кодом, поддерживаемый GZDoom tech". GamingOnLinux. Получено 2020-08-15.
  15. ^ Тарасон, Domonic (9 марта 2018 г.). ""Выпущен давно утерянный движок Кена Сильвермана BUILD2"". Камень, Бумага, Ружье. п. 1. Получено 23 июн 2018.
  16. ^ Вавро, Алекс (9 марта 2018 г.). ""Теперь вы можете возиться с преемником движка сборки: Build"". Гамасутра. п. 1. Получено 23 июн 2018.
  17. ^ "Демоверсия и инструменты BUILD2". advsys.net. Получено 2019-08-22.

внешняя ссылка