Движок Quake

Движок Quake
Quake engine
Тип Игровой движок
Разработчик Джон Кармак
id Software
Написана на Си
ОС Windows, Лицензия GNU GPL
Сайт Сайт id Software
Скриншот из id Software.

Quake engineангл. движок Quake) — игровой движок, разработанный в 1996 году американской компанией id Software для использования в культовом шутере от первого лица трехмерную графику. Наработки движка были применены компанией при разработке игровых движков следующего поколения — id Tech 2 и id Tech 3, которые были созданы для игр Quake 2 и Quake 3 соответственно.

Согласно традиции id Software, спустя некоторое время после успешного коммерческого лицензирования, движок стал доступен для бесплатного использования согласно лицензии GNU General Public License, которая подразумевает под собой право копировать, модифицировать и распространять его содержимое. Это оказало большое влияние на развитие мира открытого программного обеспечения а также породило большое количество форков — сторонних игровых движков, основанных на Quake engine.

Подобно движку Doom, Quake engine использует систему BSP-деревьев. Движок также использует затенение по методу Гуро для подвижных объектов и

Содержание

История

Лава на одном из уровней игры Джоном Кармаком (англ. John Carmack) в 1996 году на языке Си специально для одноименной игры англ. Michael Abrash), который помогал Кармаку с алгоритмами и оптимизацией ассемблера.

Разработка движка Quake оказала огромное развитие на индустрию компьютерных игр, а также на способы их разработки. Фактически, это был один из первых движков, имеющих открытую архитектуру. Это подразумевает то, что разработчики могут гибко использовать и модифицировать движок, приспосабливая его для своих целей, потому что вся графика и звуки, которые использует игра содержатся в отдельных файлах-архивах с расширением .pak.

Кроме того, движок содержит консоль, в которой используется своя система команд. Примечательной возможностью является также использование специальных конфигурационных файлов для настройки, которые пользователь может открыть в любом текстовом редакторе (таком, как стандартный «Блокнот» в Microsoft Windows) и настроить под себя. В таких файлах содержатся многие параметры игры, касающиеся как обработки графики, так и управления.

Благодаря открытой архитектуре движка, для игры модов (модификаций), некоторые из которых были способны до неузнаваемости изменить игру, добавить новые локации, оружие, персонажей и ввести свои правила. Многие разработчики модификаций для Quake в последствии основали собственные компании на рынке. Одновременно с этим, создание Quake привело к новому этапу в развитии индустрии компьютерных игр, практически положив конец эпохе, когда коммерческую компьютерную игру мог разработать за короткие сроки один энтузиаст.[1]

Основным конкурентом игры Duke Nukem 3D, который использовал игровой движок Build Engine. Эта технология всё ещё использовала спрайтовые модели и устаревшие методы моделирования уровней, из-за чего сильно проигрывала движку Quake в плане графики, а следовательно не пользовалась таким успехом при лицензировании сторонними разработчиками. Движок Quake был положен в основу при разработке Quake ставшая культовой игра

Технологии

Сокращение трёхмерной сложности для увеличения скорости

Процесс сокращения трёхмерной сложности в движке Quake объясняется в четырёх простых шагах.

Компьютерная игра Quake стала первой в мире полноценной и настоящей трёхмерной игрой. Игра использует специальную систему проектирования карт, которая выполняет предобработку и предрендеринг трёхмерного окружения с целью уменьшения необходимой мощности для обработки изображения во время процесса игры. Данная возможность была востребована, так как во время выхода игры стандартные центральные процессоры имели частоту 50-75 МГц. Трёхмерная среда, в которой происходит действия игры, относится к карте даже при том, что эта среда трёхмерная по природе, а не плоское двухмерное пространство. Программа для редактирования карт использует многие простые выпуклые трёхмерные геометрические объекты, известные как «кисти» (англ. brush), которые имеют возможность устанавливать свой размер и степень поворота. Эти объекты используются для создания окружения. Кисти помещены и ориентированны для создания закрытых, пустых и объёмных пространств, и когда дизайн карты закончен, эта карта выполняется через препроцессор рендеринга. Этот препроцессор используется для определения местонахождения двух типов пустого пространства на карте: пустого пространства, созданного кистями, в котором будет находиться игрок во время игры; и другого пустого пространства, которое находится снаружи кистей и которое игрок никогда не увидит. Потом препроцессор убирает невидимые поверхности с индивидуальных кистей, которые находятся вне игрового пространства, и оставляя лишь те полигоны, которые определяют лишь внешний периметр внутреннего игрового пространства.

В общем, как только карты была предобработана, она уже не может быть перередактированной (англ. re-edited) в нормальный вид, так как оригинальные кисти были вырезаны в маленькие части. Вместо этого первоначальные данные из редактора карт вместе с кистями сохраняются и используются для создания новых версий карты. Несмотря на это, возможно редактировать обработанную карту, открыв её в специальном вершинном (англ. vertex) редакторе и редактировать необработанные вершинные данные, или же добавлять или удалять конкретные полигоны. Хотя это — трудное занятие, однако эта методика иногда использовалась читерами, чтобы создать окна в стенах для того, чтобы видеть стандартно невидимых врагов, которые находятся за стенами или дверьми. Эти читерские методики привели к созданию античитерских программ, которые используются в современных трёхмерных играх и вычисляют контрольную сумму для каждого файла, используемого в игре для того, чтобы обнаружить игроков, использующих потенциально взломанные файлы карт.

В обработанного файла с картой количество полигонов может быть существенно меньшим, чем у первоначального необработанного файла. Иногда это отношение доходить до 50-80%. На компьютерах того времени, центральные процессоры которых имели частоту в районе 50-70 МГц, было нормальным, что операция по отсечению занимала много часов.

Процесс предобработки не может быть осуществлён, если есть хоть одно небольшое отверстие или «утечка», которая связывает внутреннее игровое пространство с внешним пустым пространством. Эта проблема была обычным делом для сложных карт с многими строительными объектами, так как дизайнер уровней не мог уследить за всеми утечками на карте. Чтобы предотвратить утечки, кисти должны были накладываться одна на другую и немного проникать друг в друга. Попытка отлично выровнять кисти с необычной формой вдоль их краёв и граней могла привести к возникновению очень маленьких щелей, которые было очень трудно найти.

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

Предвычисление освещения и затенения

Движок Quake также задействует использование (англ. lightmaps) и трёхмерных источников света, в отличии от статического освещения, основанного на секторах, которое использовалось в прошлых играх. Эта инновационная методика id Software начала использоваться во многих играх, которые были выпущены после Quake 1, особенно в шутерах от первого лица. При этом сама id Software переключилась на использование модели Унифицированного освещения и затенения (англ. Unified lighting and shadowing model), которая впервые использовалась в движке id Tech 4 (игра Doom 3). После того, как карта сокращалась от лишних полигонов, использовалась вторая система предварительной обработки, которая предрассчитывала и внедряла карты освещения в игровую карту, тем самым ещё более уменьшая нагрузку на центральный процессор во время игры. Однако полная световая обработка могла занять чрезвычайно много времени, таким образом, для начального процесса по дизайну карты менее качественная обработка света могла быть сделана, но лишь за счёт создания зубчатых световых оттенков (англ. lightcast) вокруг источников света.

Скриншот одного из первых уровней Windows XP.

Секционирование карты для увеличения скорости

Для дальнейшего уменьшения 3D-рендеринга была разработана методика, которая разделяла те большие части карты, которые в данный момент игры не видимы игроку, и не выполняла рендеринг этих невидимых игроку пространств. Трёхмерный движок рендеринга без подобной оптимизации отрисовывал бы каждую часть игрового пространства и затем пытался бы определить, какие полигоны являются самыми близкими. Потом бы этот движок (который без оптимизации) «прятал» бы все полигоны, размещённые позади самых близких (методика, известная как Z-буферизация); то, что полигон невидим, не означает, что он не является частью вычислительной сцены. Таким образом, с этой оптимизацией движок Quake имеет следующее свойство: если игрок во время игры не может видеть какую-то область карты, находящуюся поблизости, то движок загодя может не включать любой из объектов из этой невидимой области в процесс рендеринга; это существенно уменьшает загрузку центрального процессора. Этот эффект может быть замечен в игре как маленькие туннели с острыми 90-градусными изгибами, ведущими от одного большого пространства в другое большое пространство. Маленький туннель используется для блокировки взгляда в смежное неотрендеренное пространство, и специальный тип прозрачной кисти (называемый visportal) используется для определения краёв того места, где движок должен прекратить рендеринг смежного пространства. В игре Quake 1 возможность видеть через всю длину карты является довольно редкой, открытые пространства часто являются очень узкими и высокими, прежде всего используя расстояния «выше» — открытое небо и «ниже» —лава (а не «шире» и «дальше»); таким образом, создаётся низкополигональная иллюзия открытого пространства.

Как выполняется секционирование

Дерево двоичного разбиения пространства (англ. Binary Space Partitioning treeангл. BSP), создаваемое с карты, упрощает поиск полигона к О (число полигонов). Каждый «лист» BSP-дерева создаёт некоторую часть трёхмерного пространства (наподобие разрезания пирога на доли). Листья этого двоичного дерева имеют полигоны первоначальной карты, связанной с ними, которые затем используются для вычисления видимости каждой области. Для каждой области VSD-алгоритм ищет те части карты, для которых существует луч обзора. Это называют потенциально видимым набором (англ. Potentially Visible Setангл. PVS).

Этот процесс использует большое количество памяти, так как он должен взять О (количество полигонов * количество полигонов) битов (необходима только «видимая/скрытая» информация). Джон Кармак понял, что одна область «видит» только маленькую часть других областей, и он сжимал эту информацию, используя кодирование длин серий (RLE-кодирование). Именно это позволило такой сложной для того времени графике работать довольно быстро на аппаратных средствах того времени.

Аппаратное 3D-ускорение

Движок Quake, кроме того, что являлся первым в мире полностью трёхмерным движком, также являлся первым движком, который поддерживал аппаратную 3D-акселерацию (ускорение). Первоначально игра (и, соответственно, движок) имела лишь поддержку программного рендеринга. Однако позже Джон Кармак создал версию движка, которая использовала преимущества графического чипа Vérité 1000 компании Rendition (эта версия движка получила внутреннее имя VQuake).

Поддержка Windows 95 и выше (внутреннее имя этой версии — GLQuake). Многие полагают, что именно это подтолкнуло революцию в независимых видеокартах, а GLQuake стал первым приложением, которое действительно демонстрировало возможности графического чипсета «Voodoo» от компании 3dfx. Только две другие карты были способны рендерить изображение на GLQuake: карта Intergraph 3D OpenGL и карта PowerVR. Обе эти карты были профессиональными и очень дорогими.

Скриншот из мультиплеерного шутера DarkPlaces.

Передвижение игрока

В отличии от современных шутеров от первого лица, в которых игрок полностью управляет взглядом протагониста с помощью движений компьютерной мыши, в Quake по умолчанию используется клавиатура для поворотов налево и направо, а также движений назад-вперед. Для совершения этих же движений можно использовать мышь, подобно игре Quake был схожим на 2.5D-мерное окружение в Doom. Только в нескольких местах в игре был монстр, который мог атаковать выше или ниже игрока. Однако Quake имела возможность выбрать мышь для управления взглядом и клавиатуру для движений, но по умолчанию такая опция была отключена, вплоть до выхода Quake III Arena.

Все опытные игроки во время однопользовательской и многопользовательской игры использовали управление зрением при помощи мыши и движения при помощи клавиатуры, так как это позволяло лучше контролировать персонажа и выполнять вращательные движения, которыми можно было уворачиваться от выстрелов.

Мультиплеер

Изначально движок Quake 1 поддерживал только многопользовательскую игру по локальной сети и два сетевых режима — cooperative и «клиент-сервер». Это значит, что все игроки, что-бы начать совместную игру, соединяются с выделенным сервером, который высылает им ответ на события в игре. Кроме того, использование такого принципа защищает игроков от де-синхронизации сервера. В зависимости от специфического маршрута к серверу, различные клиенты имеют разный лаги, которые затрудняют его движения и делают его более уязвимым для других игроков.

Сетевой код игрового движка был переработан, а для игры Quake в последствии стал называться поклонниками LAN-Quake. Одним из нововведений в QuakeWorld является предсказывание поведения клиента (англ. client-side prediction). Этот режим позволяет компьютеру игрока предсказывать движения объектов до ответа сервера, что позволило значительно снизить требования к скорости интернет-соединения, тем самым открыв доступ к одновременной игре на сервере огромному числу людей.

Воздействие на современный игровой дизайн

Помимо большого влияния на методы разработки компьютерных игр и игровую индустрию в целом, движок Quake оказал огромное влияние на игровой дизайн. Многие технологии, которые используются в движке Quake, до сих пор востребованы в современных игровых движках. Некоторые специалисты отмечают, что такого скачка в игровой индустрии, который совершил движок Doom, а затем и Quake, больше никогда не будет.[1]

Шейдерная вода, которая реалистично отражает окружающий мир в игре игровых приставках. Именно поэтому 3D-игры способны выводить такую качественную визуальную «картинку» и эффекты — большинство лишних данных были удалены ещё до того, как игрок смог бы их увидеть. Суть препроцессинга заключается в том, что не нужные объекты выгружаются из оперативной памяти после их использования, например — игрок стреляет из оружия, и использованные патроны, которые вылетают из него, тут же исчезают (при этом выгружаясь из памяти).

Именно поэтому все игры существенно отличаются от профессиональных пакетов трёхмерного моделирования (CAD). Профессиональные программы не имеют никаких временных ограничений на рендеринг изображения. Ничто не может быть выброшено для увеличения скорости рендеринга трёхмерной технической модели, так как любая часть дизайна этой модели может измениться в любой момент. По этой причине профессиональные графические платы были значительно более дорогими и мощными, чем те графические карты, которые использовались в домашних компьютерах для игры в компьютерные игры. Профессиональные видеокарты должны обладать существенно большей мощностью обработки, так как имеют дело с полной сложностью непредобработанного трехмерного пространства.

Second Life, многопользовательский виртуальный мир, является одной из очень немногих современных игр, которая не делает препроцессинг и отсечение невидимых вершин. Как и в CAD-пакетах, в Second Life любой объект может быть изменён в любой момент людьми, создающими эти объекты. Как и в случае с CAD-пакетами, Second Life требует от потребителя значительно более мощную видеокарту, чем средние типичные видеокарты. Таким образом, освещение окружения и теневые эффекты намного менее сложны, чем в типичной предобработанной компьютерной игре, однако возможно именно эта возможность заставляет игру использовать менее качественную графику для меньшей загрузки ресурсов системы игрока.

Поскольку видеокарта.

Игры, которые используют движок Quake

Ниже приведен список коммерческих игр, в которых используется одвижок Quake.[2]
Игры, которые сделаны на движках, основанных на Quake (таких, как

Модификации Quake, выпущенные на дисках
  • Aftershock (1996) – Head Games Publishing, Inc.
  • Q!Zone (1996) – Ratloop, Inc
  • Dark Hour (1996) – Microforum
  • Q2 (1996) – Micro Star
  • X-Men: The Ravages of Apocalypse (1997) – Zero Gravity Entertainment
  • Shrak (1997) – Ratloop, Inc
  • Malice (1998) – Ratloop, Inc

Редакторы карт

Для движка Quake было выпущено множество редакторов карт, которые позже использовались поклонниками игры для создания своих уровней.

Многие из указанных ниже редакторов совместимы и с поздними версиями движка — Quake 2 и Quake 3, а также с их модификациями.

  • QE4
  • QERadiant
  • Worldcraft (до версии 2.0)

Дальнейшее развитие

Дерево игр и движков, созданных на основе движка Quake. Благодаря этой иллюстрации можно проследить, какое влияние оказал движок Quake на другие, более современные игровые технологии.

Движок Quake 1 был положен в основу при разработке другой технологии id Software, движка id Tech 2 (ранее известного как Quake 2 engine).

Следовательно, последующие движки компании, такие как Id Tech 3 (для игры Quake 3) и Id Tech 4 (Doom 3) возможно также содержат небольшие кусочки кода от первого движка Quake, потому что они были основаны на предыдущих версиях. Согласно традиции id, исходный код id Tech 2 и id Tech 3 также был открыт, а также рано или поздно будет открыт исходный код id Tech 4 . На движках Quake 2 и Quake 3 также было основано много современных бесплатных разработок.

Компания Half-Life использовала[3] игровой движок Quake с сетевым кодом QuakeWorld. Будучи сильно переписанным, он получил название Half-Life описывался игровыми изданиями, как «основанный на унифицированной технологии Quake 1». По некоторым данным, в движок были также интегрированы некоторые наработки движка Id Tech 2 (игра Quake 2). Более того, на старых скриншотах игры, сделанных еще в период разработки, видно, что движок активно использует динамические тени от объектов[4] — вероятно, их поддержка была убрана из финальной версии игры, так как разработчики решили, что домашние компьютеры тех времен еще не готовы для таких сложных обработок.

Игровой движок Half-Life 2[5] на движке от Half-Life 1, а значит также содержит участки кода движка Quake.

Открытие исходных кодов движка Quake 21 декабря 1999 года привело к созданию большого количеству форков, а также позволило энтузиастам портировать движок на другие платформы, такие как мобильная операционная система Symbian или Quake 1 являются бамп-маппинг, сложное освещение и другие современные визуальные эффекты, такие как HDR-рендеринг, а также динамические тени. На их основе созданы современные компьютерные игры с качественной графикой, а также порты (переработки) оригинального Quake.

Открытые игровые движки, основанные на Quake


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Движок Quake" в других словарях:

  • Quake engine — Игровой движок (Список) Разработчик …   Википедия

  • Quake II — Разработчик id Software Издатель Activision Дата выпуска …   Википедия

  • Quake — Разработчик id Software Издатель Acti …   Википедия

  • Quake: Dissolution of Eternity — Разработчик Rogue Entertainment Издатель Activision Virgin Interactive (Linux) Activision BlizzardValve Corporation …   Википедия

  • Движок Doom 3 — id Tech 4 (Doom 3 Engine) Тип Игровой движок Разработчик id Software Написана на C++ ОС ПК (Microsoft Windows, Macintosh, PlayStation 3, Xbox 360[1] …   Википедия

  • Quake III Arena — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей …   Википедия

  • Quake 4 — Разработчик Raven Software, id Software Издатель …   Википедия

  • Quake Live — Разработчик id Software Издатели id Software …   Википедия

  • Quake: Scourge of Armagon — Разработчик …   Википедия

  • Quake III: Team Arena — Разработчик id Software Издатель Activision Дата выпуска 2000 Жанр Шутер от …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»