Build
Build — видеоигровой графический движок, используемый в играх жанра «Шутер с видом от первого лица». Является так называемым «псевдотрехмерным», или 2,5D-движком, то есть обеспечивает визуализацию картинки путём развёртывания двухмерной карты в двухточечной проекции графики. Build является самым технически совершенным 2,5D-движком: его возможности превосходят более старые графические движки от id Software (Wolf3D и Doom), в особенности в плане поддержки третьего измерения: в Build можно разместить один сектор над или под другим, а спрайтовые объекты могут перемещаться в 3D один над другим на произвольной высоте, не сталкиваясь, поэтому некоторые называли Build 2,75D-движком.
|
Сравнение с движком Doom
✅ на голову превосходит Doom; 🔵 несколько превосходит Doom; 〰️ на уровне с Doom; 🟡 несколько отстаёт от Doom; ❌ на голову отстаёт от Doom; ➰ несравнимо
- Общие:
- ➰ Автор: Кен Сильвермен (инди → 3D Realms)
- 〰️ Жанр игр: FPS
- 🔵 Написан на языке Си. Изрядная часть игровой логики записана во внешних скриптах с расширением .CON.
- ❌ Но Сильвермен скрывал движок от клиентов и предоставлял его только в виде OBJ-файлов.
- 〰️ Сложный звук со стерео и приоритетом одних звуков над другими.
- 〰️ Собственный дисковый кэш/подкачка.
- ✅ 256-цветная графика переменного разрешения. Глюки с высокими разрешениями большей частью закрыты.
- 🟡 Системные требования на 320×200 — младшие 80486, 8 мегабайт.
- ✅ Системные требования на 640×480 — Pentium 133. В Atomic Edition несколько выше, но всё равно значительно лучше Doom. 🔵 Желательна, но не обязательна поддержка VESA 2 на уровне видео-BIOS или программного драйвера. (Практически все DOS-Doom’ы требовали VESA 2 и без неё никак.)
- 〰️ Обзор вверх-вниз в двухточечной (не полностью перспективной) проекции.
- 〰️ Стрельба традиционными методами — хитсканом и снарядами.
- 〰️ Демо-запись на командах управления.
- 〰️ Мультиплеер архитектуры «равный с равным», на передаче команд управления, без всякой защиты от читерства или долгого пинга. Вступление в начатую игру невозможно.
- 🟡 Скорость игры — 30 тактов в секунду (у Doom 35).
- Геометрия уровня:
- ✅ Горизонтальные полы и потолки с вкраплением наклонных (подзамедляют игру, но сильно улучшают впечатление). Вертикальные стены. Как правило, один этаж. Крыши имитируются «небесными» секторами.
- 🔵 Зачаточная многоэтажность двух типов: 1) Можно пройти над комнатой, под ней или даже сквозь неё, если геометрия уровня не даёт увидеть обе комнаты сразу[1]. Так, секретный уровень Lunatic Fringe в Duke Nukem 3D представляет собой двухоборотное «кольцо», а Tier Drops — четыре комнаты в одном месте с входами с четырёх сторон света одного кольцевого коридора. 2) Можно объединить по вертикали два разных сектора так, чтобы потолок одного был полом другого — в основном это лифты, трубы, подводный мир.
- 〰️ Примитивное освещение, постоянное для каждого сектора. Чтобы сделать световое пятно, надо сделать несколько секторов друг в друге.
- ✅ Геометрия может менять высоту пола/потолка, а также как угодно передвигать меньший сектор внутри большего, лишь бы отрезки не пересеклись. Это позволяет распахивающиеся двери, горизонтальные лифты, огромные крутящиеся шестерни из полов/потолков и даже подобие машинок.
- ✅ Продвинутая проверка, задавлен ли герой геометрией. В зависимости от эффекта геометрия может как отскочить назад, так и задавить героя насмерть.
- 🟡 Но набор секторных эффектов беднее Doom.
- ✅ Переменный масштаб текстур: на менее детальной стене можно расположить детальный плакат.
- ✅ Декали (надписи, плакаты, выключатели, пули, кровь) на стенах, в том числе динамически появляющиеся, сделавшие очень живой мир.
- Объекты:
- 〰️ Объекты — спрайты, 1 или 5 поворотов у каждого (неизвестно ни одного врага с полноценными 8-ю поворотами), качество спрайтов в Duke значительно ниже, чем в Doom. 🔵 В более поздних играх частично воксельные модели.
- 〰️ Объекты двигаются свободно по всем трём осям.
- 〰️ Существовала простейшая табличная полупрозрачность.
- Разное:
- 🔵 Вся графика взаимозаменяема: картинка может быть спрайтом, текстурой, декалью и т. д. Вопрос только в наличии/отсутствии прозрачных дыр.
- ✅ Рендеринг окружения — программный, от ближних к дальним, с помощью порталов. Поэтому редактор там WYSIWYG, и одна стена — это всегда одна стена и никогда не разбивается на части (но дважды, трижды и т. д. рисуется, если смотрим на неё из-за колонны).
- ❌ Единственный и крайне недружественный редактор — несмотря на эту самую WYSIWYG’нутость.
- ➰ Современная лицензия: GPL2
История
Build появился на свет как результат трудов юного (на момент создания прототипа ему было всего 17 лет) американского программиста по имени Кен Сильверман. В 1992 году под впечатлением от Wolfenstein 3D он решил попробовать создать свою игру и написать для неё собственный графический движок. В июне того же года он закончил работу над прототипом, названным Walken (Walk+Ken). Осенью 1992 он значительно переработал игру, получившую новое название Ken’s Labyrinth, и по совету отца предложил эту игру всем фирмам-издателям программного обеспечения в Соединённых Штатах. Распространял он её сперва сам, затем «Лабиринтом Кена» заинтересовалась компания Epic MegaGames, которая и стала её издателем. Уже в этом продукте видны черты будущего Build: на обширных игровых уровнях встречается много анимированных и интерактивных объектов —— в частности, игровые автоматы, из которых можно выбивать случайные полезные предметы в обмен на собранные монеты и питьевые фонтанчики для восстановления здоровья.
Спустя несколько месяцев Сильверман подписал контракт с фирмой Apogee Software на разработку нового графического движка для видеоигры-шутера с видом от первого лица. Новейшее на тот момент детище Джона Кармака, Doom engine, компания id Software не планировала продавать для использования сторонними разработчиками, а потому свой графический движок Apogee был очень нужен. Впрочем, без участия автора Wolf3D всё равно не обошлось — по воспоминаниям самого Кена, именно телефонный разговор с Кармаком помог ему прийти к идее визуализации по секторам, после чего движок был переписан почти полностью.
Название движка появилось почти случайно: во время демонстрации в июне 1993 года прототипа движка Сильвермана спросили, как называется его движок. Кен до того никакого особенного названия не придумал, а потому предложил название исполняемого файла, который и запускал прототип движка — build.exe. Так и порешили.
Разработка Build шла с середины 1993 по декабрь 1995 года: ключевую часть работы по написанию движка выполнил именно Кен Сильверман, но ему также помогали программисты Apogee Тодд Реплогл, Аллен Блум, Джим Доуз и Марк Доктерманн.
Возможности
Исходный файл, который Build визуализирует, представляет собой двухмерную карту, состоящую из многоугольников-секторов. Каждый сектор имеет базовую форму в виде двухмерной фигуры, а также заданные для него трёхмерные свойства — высоту потолка, наклон пола, и так далее. Именно так реализовывается базовая геометрия уровня: полы, потолки, стены и колонны.
Такая структура имела и свои ограничения.
Во-первых, у каждого сектора может быть только один пол и один потолок. Поэтому никаких многоэтажных конструкций, в которых два или более этажа видны сбоку, реализовать на движке Build было нельзя. Можно поставить один сектор поверх другого, над другим, но виден при этом может быть одновременно только один из этих секторов. То есть можно сделать две совершенно изолированные комнаты одна над другой, переход между которыми происходит по коридору, но нельзя сделать «этажерку» с видом сбоку. Впоследствии в некоторых версиях Build была добавлена так называемая прозрачно-портальная геометрия, с помощью которой можно связать эти две комнаты прозрачным порталом и создать иллюзию двух полов и двух потолков. Непрозрачно-портальная геометрия присутствовала в Build изначально, с её помощью реализовывались, например, вода, некоторые колодцы и лифты.
Во-вторых, таким образом нельзя сделать наклонный столб или стержень, торчащий из земли: любая поверхность, отличная от вертикальной, в Build реализовывается с помощью наклонных полов и потолков.
В общем, реализовать с такими возможностями можно лишь довольно примитивную кубическую геометрию, но умельцы умудрялись даже с помощью неё создавать довольно правдоподобные здания.
Все интерактивные объекты — активные и неактивные, будь то предметы, оружие, противники — реализовывались с помощью плоских изображений-спрайтов. Правда, в поздних версиях движка (с августа 1996 и далее) была поддержка воксельных моделей — объектов, составленных из растровых объёмных пикселей, сейчас достаточно малоизвестная технология. Сложные манипуляции с секторами вроде открывающихся дверей или движущихся средств передвижения осуществляются с помощью секторэффекторов — невидимых служебных спрайтов, в которые забивались числовые коды нужных эффектов.
Технические подробности
Движок получился таким удачным из-за хорошей технологии визуализации. Движок Doom, к примеру, разбивал стены на части (т. н. «отрезки», SEGS
); Build действовал по-другому. Он просто рисовал секторы, при том отмечая, видна граница секторов или нет. Если видна, то движок рисовал соседний сектор. Самое интересное, что для того, чтобы увидеть уровень в 3D, не нужно никакой предварительной обработки. Так что часть работ выполняется в 3D, в самом настоящем WYSIWYG[2] (то, что интерфейс редактора неудобный — это уже другой вопрос). На словах просто, но есть несколько алгоритмических уловок, с которыми, видимо, Джон Кармак в своё время не сумел справился.
Экономия памяти в id Tech 1 достигалась за счёт сборных текстур, а в Build это убрали; вместо них здесь объекты, прикреплённые к стенам. Так, например, устроены все кнопки.
Что на нём было
Первой игрой на графическом движке Build, если не считать прото-Build в «Валкене» и «Лабиринте Кена», стала выпущенная осенью 1994 года тайваньской конторой Accord Legend of the Seven Paladins 3D. Игра использовала нелицензированную и пожалуй, самую раннюю из доступных версий движка, отличалась запредельной сложностью и множеством багов.
Первыми официальными играми на Build стали две малоизвестные игры от Capstone Software — Witchhaven и William Shatner’s TekWar, выпущенные в 1995 году. Capstone, в отличие от тайваньцев, честно купили лицензию на движок у Apogee. Эти программные продукты использовали ранние версии движка Build, не способные, к примеру, отображать наклон горизонтальных поверхностей (пола или потолка).
Сама же Apogee (в 1996 году переименованная в 3D Realms) использовала Build в играх Duke Nukem 3D и Shadow Warrior, а также достаточно щедро продавала лицензию на его использование другими студиями: помимо вышеупомянутых Capstone Software, движок использовала Monolith Production, выпустившая игру Blood. Следует отметить, что все последующие игры, как правило, использовали не исходный игровой движок, а его модифицированную для Duke Nukem 3D версию. Такой вариант Build использовался в развесёлом стрелялове Redneck Rampage, в небезынтересной PowerSlave (в древнеегипетских декорациях), в пращурах микрожанра «военный шутер» NAM и WWII GI и в меметично ужасном многопользовательском FPS Extreme Paintbrawl.
Всего за пять лет коммерческой эксплуатации на графическом движке Build было выпущено 11 игр, что очень много: прямой его конкурент, полноценный трёхмерный движок Quake Engine за тот же период времени был использован всего в пяти играх. Традиционно из игр на «Билде» этого времени выделяют «Великую Тройку» — три игры, в разработке которых принимал участие сам Кен Сильверман: Duke Nukem 3D, Shadow Warrior и Blood. Эти игры отличаются высоким качеством изготовления и потому лучше всех сохранились в народной памяти. Впрочем, иногда «тройка» расширяется до «четвёрки», с включением в её состав Redneck Rampage, также очень хорошей игры на Build, хотя и с некоторыми огрехами гейм-дизайна. Остальное было или малоизвестно, или просто ужасно.
Дальнейшая судьба Build
Некоторое время спустя, в начале 2000-х, и Сильверман, и компании-разработчики выложили исходный код игрового движка в открытый доступ, что позволило многочисленному моддерскому сообществу начать деятельность по адаптации устаревшего уже Build к современным операционным системам. Из таких работ следует отметить самый первый порт движка Duke Nukem 3D, EDuke, а также JFDuke3D, в работе над которым принимал участие сам Кен Сильверман, сочинив рендерер Polymost для работы с w:OpenGL. В дальнейшем оба этих порта получили развитие в форме EDuke32, наиболее совершенного варианта движка Build на настоящий момент: именно этот порт использует самая последняя коммерческая игра на Build, Ion Fury.
В 2006—2011 Кен Сильверман разработал Build 2, который уже являлся полностью трехмерным движком, обратно совместимым с Build. Однако поезд ушел, войти дважды в одну реку не удалось, и интереса игроделы к этому движку уровня начала 2000-х не проявили. В 2018 году Build 2 был выпущен в открытый доступ — для некоммерческих проектов (с коммерческих проектов Сильверман по прежнему просит деньги за его использование — блажен, кто верует…).
Известные личности, связанные с движком Build
- Кен Сильверман — американский программист, автор движка.
- Ричард «Levelord» Грей — известный дизайнер игровых уровней. Начал свою карьеру и прославился именно как мастер выжимания всего возможного из дубовой геометрии Build.
- Мэтт «Matteus» Сеттлер — автор EDuke. До того работал в Microsoft, а затем в Monolith Production. Был продакт-менеджером Blood и Blood 2; к слову, также занимался локализацией первых «Аллодов» на английский, французский и немецкий языки.
- Джонотон(sic!) «JonoF» Фоулер — автор JFDuke3D. Также сделал Win-XP порт для Shadow Warrior.
- Ричард «TerminX» Гобейлль — автор EDuke32. Работал над портом Duke Nukem 3D: Megaton Edition для 3D Realms и Gearbox, на настоящий момент руководит небольшой компанией-разработчиком Voidpoint, выпустившей Ion Fury.
Примечания
- ↑ Что интересно, подобная система как стандартная фича использовалась и в некоторых честных 3D-движках и созданных на них играх, «набирающих» уровень из сегментов. Характерный пример — Dungeon Siege (2002) на собственном Siege Engine, структура бесшовного мира которого, если бы игрок мог видеть этот мир целиком, имела бы множество самопересечений. Подробнее тут.
- ↑ Аббревиатура от «What You See Is What You Get» (англ. «Что видишь, то и получишь»). Это значит, что интерфейс программы, в данном случае редактора, позволяет увидеть и оценить итоговый результат.
Build входит в серию статей Посетите портал «Видеоигры», чтобы узнать больше. |
[ + ] Игровые движки
|
|||
---|---|---|---|
|