Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Star Trek: Elite Force II была одной из последних игр, в которой использовался движок id Tech 3.

id Tech 3 , широко известный как движок Quake III Arena , - игровой движок, разработанный id Software для их видеоигры Quake III Arena . Он был принят во многих играх. В свое время он конкурировал с Unreal Engine ; оба двигателя были широко лицензированы.

Хотя id Tech 3 основан на движке id Tech 2 , большая часть кода была переписана. Преемник id Tech 4 был создан на основе id Tech 3, как и движок Infinity Ward IW, использовавшийся в Call of Duty 2 и далее.

На QuakeCon 2005 Джон Кармак объявил, что исходный код id Tech 3 будет выпущен под Стандартной общественной лицензией GNU (версия 2), и он был выпущен 19 августа 2005 года. Первоначально распространялся по id через FTP , [1] код можно скачать из аккаунта id на GitHub .

Особенности [ править ]

Графика [ править ]

В отличие от большинства других игровых движков, выпущенных в то время, включая своего основного конкурента Unreal Engine , id Tech 3 требует для работы графического ускорителя, совместимого с OpenGL . Движок не включает программный рендерер .

id Tech 3 представила сплайновые изогнутые поверхности в дополнение к плоским объемам, которые отвечают за многие поверхности, присутствующие в игре. [2]

Шейдеры

Графическая технология игры тесно связана с « шейдерной » системой, в которой внешний вид многих поверхностей может быть определен в текстовых файлах, называемых «скриптами шейдеров». Шейдеры описываются и визуализируются как несколько слоев, каждый слой содержит текстуру, «режим наложения», который определяет, как наложить его на предыдущий слой, и режимы ориентации текстуры, такие как отображение среды, прокрутка и поворот. Эти особенности можно легко увидеть в игре с множеством ярких и активных поверхностей на каждой карте и даже на моделях персонажей. Система шейдеров выходит за рамки визуального внешнего вида, определяя содержимое объемов (например, объем воды определяется путем применения шейдера воды к его поверхностям), светового излучения и того, какой звук воспроизводить, когда по объему наступают.[3]Чтобы облегчить вычисление этих шейдеров, id Tech 3 реализует специальную функцию быстрого вычисления обратного квадратного корня , которая привлекла значительное внимание сообщества разработчиков игр за умное использование целочисленных операций. [4] [5]

видео

Все игровые видео используют собственный формат под названием «RoQ», который изначально был создан Грэмом Дивайном , соавтором Quake 3 , для игры The 11th Hour . Внутренне RoQ использует векторное квантование для кодирования видео и DPCM для кодирования звука. Хотя сам формат является проприетарным, он был успешно реконструирован в 2001 году [6], а фактический декодер RoQ присутствует в версии исходного кода Quake 3 . RoQ мало использовался за пределами игр, основанных на движках id Tech 3 или id Tech 4 , но поддерживается несколькими видеоплеерами (такими как MPlayer) и существует несколько сторонних кодировщиков. Заметным исключением является игра Postal 2: Apocalypse Weekend на базе Unreal Engine , в которой файлы RoQ используются для вступительных и заключительных роликов, а также для шутливых роликов, которые воспроизводятся после миссии в конце первой части.

Модели

id Tech 3 загружает 3D-модели в формате MD3. Формат использует движения вершин (иногда называемые анимацией по вершинам ) в отличие от скелетной анимации для сохранения анимации. Анимация показывает в формате MD3 превосходят в ид Tech 2 «s MD2 формат , потому что аниматор может иметь переменное число ключевых кадров в секунду вместо стандартных 10 ключевых кадров MD2 в секунду. Это позволяет создавать более сложные анимации, менее «шаткие», чем модели в Quake II .

Еще одна важная особенность формата MD3 заключается в том, что модели разбиты на три разные части, которые привязаны друг к другу. Обычно это используется для разделения головы, туловища и ног, чтобы каждая часть могла анимироваться независимо ради смешивания анимации (т. Е. Анимации бега на ногах и анимации стрельбы на туловище). Каждая часть модели имеет свой набор текстур.

Модели персонажей подсвечиваются и затемняются с помощью затенения Гуро, в то время как уровни (хранящиеся в формате BSP ) освещаются либо картами освещения, либо затенением Гуро, в зависимости от предпочтений пользователя. Движок может брать цветные огни из световой сетки и применять их к моделям, в результате чего качество освещения было очень высоким для того времени.

В версии исходного кода под лицензией GPL большая часть кода, связанного с файлами скелетной анимации MD4, отсутствовала. [ необходима цитата ] Предполагается, что id просто так и не закончила формат, [7] хотя почти все лицензиаты создали свои собственные системы скелетной анимации из того, что было. Ritual Entertainment сделали это для использования в игре Heavy Metal: FAKK² , SDK для которой лег в основу поддержки MD4, выполненной кем-то, кто использовал псевдоним Гонго. [8]

Динамические тени

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

Другие особенности рендеринга

Другие визуальные особенности включают объемный туман , зеркала, порталы, декали и искажение вершин формы волны.

Звук [ править ]

Звуковая система id Tech 3 выводит на два канала с использованием выходного буфера зацикливания, микшированного из 96 дорожек со стереопространством и эффектом Доплера . Все микширование звука выполняется внутри движка, что может создать проблемы для лицензиатов, надеющихся реализовать EAX или поддержку объемного звука . [ необходима цитата ] Также отсутствуют некоторые популярные эффекты, такие как эхо.

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

Сеть [ править ]

id Tech 3 использует систему «моментальных снимков» для передачи информации об игровых «фреймах» клиенту по UDP . Сервер обновляет взаимодействие с объектами с фиксированной скоростью, независимо от скорости, с которой клиенты обновляют сервер своими действиями, а затем пытается отправить состояние всех объектов в этот момент (текущий фрейм сервера) каждому клиенту. Сервер пытается опустить как можно больше информации о каждом кадре, передавая только отличия от последнего кадра, который клиент подтвердил как полученный ( дельта-кодирование ). Все пакеты данных сжимаются кодированием Хаффмана со статическими предварительно вычисленными частотными данными, чтобы еще больше уменьшить использование полосы пропускания. [10]

Quake 3 также интегрировал относительно сложную систему защиты от читерства, которая называется «чистый сервер». У любого клиента, подключающегося к чистому серверу, автоматически включается чистый режим, а пока включен чистый режим, можно получить доступ только к файлам в пакетах данных. Клиенты отключаются, если их пакеты данных не проходят одну из нескольких проверок целостности. Cgame.qvm файл, с его высоким потенциалом для накрутки связанной модификации, подлежит дополнительной проверке целостности. [ необходима цитата ] Разработчики должны вручную деактивировать чистый сервер для тестирования карт или модов, которые не входят в пакеты данных, с использованием формата файла PK3. Более поздние версии дополнили чистый сервер PunkBusterподдержка, хотя все привязки к нему отсутствуют в выпуске исходного кода, потому что PunkBuster является программным обеспечением с закрытым исходным кодом, и включение его поддержки в выпуске исходного кода привело бы к нарушению GPL любыми распространителями / повторными пользователями кода . [11]

Виртуальная машина [ править ]

id Tech 3 использует виртуальную машину для управления поведением объекта на сервере, эффектами и прогнозированием на клиенте и пользовательском интерфейсе. Это дает много преимуществ, поскольку авторам модов не нужно беспокоиться о сбое всей игры из-за плохого кода, клиенты могут отображать более сложные эффекты и игровые меню, чем это было возможно в Quake II, а пользовательский интерфейс для модов был полностью настраиваемым.

Файлы виртуальных машин разрабатываются на ANSI C с использованием LCC для их компиляции в 32-битный формат псевдосборки RISC . Затем инструмент под названием q3asm преобразует их в файлы QVM, которые представляют собой многосегментные файлы, состоящие из статических данных и инструкций на основе сокращенного набора входных кодов операций. Если не используются операции, требующие определенного порядка байтов , файл QVM будет работать одинаково на любой платформе, поддерживаемой Quake 3.

Виртуальная машина также содержала компиляторы байт-кода для архитектур x86 и PowerPC , выполняющие инструкции QVM через интерпретатор .

ioquake3 [ править ]

Автоматическое отображение отражений и нормалей в пререлизном клиенте ioQuake3, Tremulous 1.3

Ioquake3 является игровой движок проект , который направлен на создание на ID Tech 3 исходного кода выпуска [12] [13] , чтобы удалить ошибки, чистый исходный код вверх и добавить более продвинутые графические и звуковые возможности с помощью SDL и OpenAL . ioquake3 также предназначен для работы как чистый базовый пакет, на котором могут быть построены другие проекты. Движок игры поддерживает формат Ogg Vorbis и видеозахват демонстраций в формате .avi . [14]

Проект был начат вскоре после выхода исходного кода с целью создания черепашки -бесплатно, расширение с открытым исходным кодом Quake III Дистрибутив исходного кода двигателя , на котором могут быть основаны новые игры и проекты. Кроме того, проект направлен на создание улучшенной среды, в которой можно будет играть в Quake III: Arena , пакет расширения Team Arena и все популярные моды . [15] [16] [17] [18] Среди заметных функций, добавленных проектом, - встроенная поддержка VoIP , анаглифный стерео рендеринг.(для просмотра в 3D-очках) и многочисленные исправления безопасности. Список некоторых функций доступен на проекта веб - сайта .

Ioquake3 был основой нескольких игровых проектов, основанных на движке id Tech 3, таких как OpenArena (имитирующая Quake III Arena ), [19] [20] Tremulous , [21] [22] Smokin 'Guns , [23] Urban Terror. , [24] [25] Turtle Arena и World of Padman [26] [27], а также проекты игрового движка, такие как efport (проект восстановления движка Star Trek: Voyager - Elite Force Holomatch ), ioJedi Outcast, [28] ioJedi Академия, [29] ioDoom3 [30] иOpenMoHAA . [31] Движок и связанные с ним игры были включены в несколько дистрибутивов Linux и BSD . [32] [33] [34] [35] [36]

Исходный код движков Return to Castle Wolfenstein и Wolfenstein: Enemy Territory был выпущен под Стандартной общественной лицензией GNU 12 августа 2010 г. [37] Разработчики ioquake3 объявили о начале соответствующих проектов движков (iortcw, [38] [39 ] ] iowolfet, Вражеская территория: Наследие [40] ) вскоре после этого. [41]

Проект ioquake3 также использовался в академической сфере в качестве основы для различных исследований в таких учреждениях, как Центр компьютерных исследований в музыке и акустике Стэнфордского университета (CCRMA), [42] [43] Нотр-Дам в качестве основы для VR. исследования [44] и Центра передовых интернет-архитектур Суинбернского технологического университета. [45] [46] Есть даже совместные усилия исследователей из Университета Карнеги-Меллона и Университета Торонто, которые используют ioquake3 в качестве платформы для своих опубликованных исследований. [47] [48] Студенты использовали ioquake3 в качестве основы для продвинутой работы с графикой для своих диссертаций, например, работы Стефана Рейтера [49] [50]который даже был отмечен в проекте LLVM [51] благодаря его синтезу движка ioquake3, техники рендеринга с трассировкой лучей и LLVM.

Хотя название «ioquake3» основано на Райана «Icculus» Гордон сайта «s icculus.org , Райан не ведет проект. Вместо этого он поддерживает роль наставника и обеспечивает хостинг для списков рассылки и репозитория SVN, используемого проектом. [52]

Игры на движке [ править ]

Игры на основе исходного кода [ править ]

  • OpenArena - Открытый источник автономной игрызначительной степени основаны на Quake III Arena - стиль сражениясмерти. Геймплей пытается имитировать Quake III Arena в том, что игрок забивает фраги, чтобы выиграть игру, используя сбалансированный набор оружия, каждое из которых предназначено для разных ситуаций. OpenArena также может запускать некоторыемоды на основе Quake III Arena, такие как Tremulous 1.0. OpenArena работает на ioquake3, а версия 0.8 была успешно перенесена на Android. [53]
  • Space Trader - игра в жанре экшн / стратегия от HermitWorks Entertainment .
  • Smokin 'Guns - игра от первого лица с открытым исходным кодом, задуманная как полуреалистичная симуляция атмосферы «Старого Запада». Первоначальномодификация Quake III Arena , но стала отдельной игрой. Он был перенесен обратно на движок ioquake3 в 2009 году. [54]
  • Urban Terror - мод полной конверсии Quake III Arena, разработанный и выпущенный для работы с розничным программным обеспечением Quake III Arena , он также совместим с альтернативами движка с открытым исходным кодом. Игровой процесс можно сравнить с Counter-Strike с большим акцентом на движение с егофункциями паркура . Urban Terror работает на движке ioquake3.
  • Tremulous - Tremulous - это шутер от первого лица, основанный на асимметричной игре про пришельцев и людей, с элементами стратегии в реальном времени. Каждая команда может построить и защитить базу, состоящую из основных и вспомогательных структур, которые тем или иным образом помогают игрокам. Победа команды обычно достигается за счет уничтожения вражеских структур возрождения и оставшихся игроков. Tremulous начинался как мод Quake III Arena , ноначиная сверсии 1.1 игра стала автономной на движке ioquake3.

Игры с проприетарной лицензией [ править ]

На основе id Tech 3
  • Quake III Arena (1999) - id Software
    • Quake III: Team Arena (2000) - id Software
    • Quake III Revolution (2001) - Bullfrog Productions
  • Элис Американ МакГи (2000) - Rogue Entertainment
  • Звездный путь: Вояджер - Elite Force (2000) - Raven Software
    • Star Trek: Voyager - Elite Force - Expansion Pack (2001) - Raven Software
  • Возвращение в замок Вольфенштейн (2001) - Gray Matter Interactive (SP) / Nerve Software (MP)
  • Trinity: The Shatter Effect (Отменено) - Gray Matter Interactive
  • Солдат удачи II: Двойная спираль (2002) - Raven Software
  • Star Wars Jedi Knight II: Jedi Outcast (2002) - Raven Software
  • Звездные войны: Рыцарь-джедай: Академия джедаев (2003) - Raven Software
  • Resident Evil: Dead Aim (2003) - Capcom / Cavia
  • Wolfenstein: Enemy Territory (2003) - Splash Damage
  • Call of Duty (2003) - Infinity Ward
    • Call of Duty: United Offensive (2004) - Gray Matter Interactive / Treyarch
    • Call of Duty Classic (2009) - Infinity Ward
  • Уровень серьезности (отменен) - профессиональная лига кибератлетов
  • Железная хватка: Военачальник (2008) - Isotx
  • Темное спасение (2009) - Mangled Eye Studios
  • Quake Live (2010) - id Software
Использование id Tech 3 с ÜberTools
  • Heavy Metal: FAKK² (2000) - Ritual Entertainment
  • Элис Американ МакГи (2000) - Rogue Entertainment
  • 007: Агент под огнем (2001) - EA Redwood Shores
  • Почетная медаль: Нападение союзников (2002) - 2015, Inc.
    • Почетная медаль: Нападение союзников - Spearhead (2002) - EA Los Angeles
    • Почетная медаль: Нападение союзников - Прорыв (2003) - TKO Software
  • Звездный путь: Элитная сила II (2003) - Ritual Entertainment
  • 007: Все или ничего (2004) - EA Redwood Shores

См. Также [ править ]

  • id Tech 4
  • Список игровых движков

Ссылки [ править ]

  1. ^ quake3-1.32b-source.zip [ постоянная мертвая ссылка ]
  2. ^ Пол Jaquays , Брайан Хук. «Руководство по шейдеру Quake III Arena» . п. 5. Архивировано из оригинала 14 апреля 2006 года . Проверено 1 октября 2006 года .
  3. ^ Пол Jaquays , Брайан Хук. «Руководство по шейдеру Quake III Arena» . п. 1. Архивировано из оригинала на 4 сентября 2006 года . Проверено 1 октября 2006 года .
  4. ^ Eberly, Дэвид (2002). «Быстрый обратный квадратный корень» (PDF) . Геометрические инструменты: 2. Архивировано из оригинала (PDF) 24 февраля 2009 года. Цитировать журнал требует |journal=( помощь )
  5. ^ Sommefeldt, Рысь (29 ноября 2006). "Происхождение быстрого InvSqrt () Quake3" . Beyond3D . Проверено 12 февраля 2009 года .
  6. ^ Тим Фергюсон (2001). «Формат видеофайлов Id Software .RoQ» . Архивировано из оригинала на 1 сентября 2006 года . Проверено 1 октября 2006 года .
  7. ^ ioquake3 md4-readme.txt
  8. ^ гонго. "Спецификация файла md4 v4, автор: gongo" . Архивировано из оригинального 15 июля 2011 года . Проверено 11 августа 2012 года .
  9. ^ «Звук в основном потоке» . Проверено 16 января 2009 года .
  10. ^ "Книга крючка: сетевая модель Quake3" . Архивировано из оригинального 27 -го октября 2006 года . Проверено 1 октября 2006 года .
  11. ^ "Страница справки Ioquake3" . Проверено 17 февраля 2007 года .
  12. ^ «Полное руководство: настройка и настройка ioQuake3 в Linux» . Linux сегодня . Проверено 3 января 2010 года .
  13. ^ "Quake 3 перенесен на iPod Touch с управлением наклоном - Betanews" . 14 апреля 2008 . Проверено 4 января 2010 года .
  14. ^ Valich, Тео (3 апреля 2007). «Две бесплатные игры, основанные на движке Quake 3, доводят» . Спрашивающий . Проверено 12 января 2010 года .
  15. ^ «ioquake3 для OS X - Игры для Mac» . Проверено 3 января 2010 года .
  16. ^ «ioquake3 для Mac OS X доступен для загрузки - Macsimum News» . Архивировано из оригинального 12 сентября 2006 года . Проверено 3 января 2010 года .
  17. ^ «IOQuake3 OSX: Clone de Quake III (бесплатно) - MaxiApple.com» . 10 мая 2009 года . Проверено 3 января 2010 года .
  18. ^ «IOQuake3 1.34 - Jogue Quake 3 без Mac OS X - Maclivre.net» . Архивировано из оригинала 23 июля 2011 года . Проверено 4 января 2010 года .
  19. ^ «Открыть Арену о странице» . Проверено 3 ноября 2009 года .
  20. ^ «Игры XP» . Архивировано из оригинального 20 -го июля 2012 года . Проверено 3 ноября 2009 года .
  21. ^ "Трепет о странице" . Проверено 4 ноября 2009 года .
  22. ^ «Quake, знакомьтесь с GPL; GPL, знакомьтесь с Quake - Linux Journal» . Проверено 4 января 2010 года .
  23. ^ "Entretien avec l'équipe de Smokin'Guns - JeuxLinux" . Проверено 4 ноября 2009 года .
  24. ^ "Руководство городского террора" . Проверено 18 мая 2015 года .
  25. ^ «Две бесплатные игры, основанные на подсказке движка Quake 3 - The Inquirer» . Проверено 4 января 2010 года .
  26. ^ "Взгляд на бесплатные игры на движке Quake3 - Slashdot" . Проверено 3 января 2010 года .
  27. ^ «Сравнение бесплатных программ-шутеров - linuX-gamers.net» . Проверено 4 января 2010 года .[ мертвая ссылка ]
  28. ^ "GitHub - ioquake / Джедай-изгой" . 16 января 2020.
  29. ^ ioАкадемия джедаев
  30. ^ Iodoom3
  31. ^ OpenMOHAA
  32. ^ "Обновление Fedora 12: quake3-1.36-5.fc12 - fedora-package-announce" . Проверено 4 января 2010 года .
  33. ^ "ioquake3-1.36-1mdv2010.0 RPM для i586 - RPM Find" . Архивировано из оригинального 21 февраля 2014 года . Проверено 4 января 2010 года .
  34. ^ "Пакет: openarena-data (0.8.1-2) - Debian" . Проверено 4 января 2010 года .
  35. ^ "ioquake3 1.36 build 3 - FreshPorts" . Проверено 5 февраля 2010 года .
  36. ^ "igames / ioquake3 - Коллекция пакетов NetBSD" . Архивировано из оригинала на 10 июня 2011 года . Проверено 4 января 2010 года .
  37. ^ ftp://ftp.idsoftware.com/idstuff/source/ [ постоянная мертвая ссылка ]
  38. ^ Скомпилированный пакет Iortcw
  39. ^ Исходный код Iortcw
  40. ^ Исходный код ET Legacy
  41. ^ Larabel, Майкл (13 июня 2010). "id Software Open-Sources ET, RTCW" . Фороникс . Проверено 13 августа 2010 года .
  42. ^ "Исследовательская статья Q3osc" (PDF) . Проверено 9 января 2010 года .
  43. ^ "Q3osc wiki" . Проверено 9 января 2010 года .
  44. ^ «Обзор технологий совместной работы в виртуальной среде» (PDF) . Проверено 9 января 2010 года .
  45. ^ «L3DGEWorld 2.1 Входные и выходные характеристики» (PDF) . Проверено 9 января 2010 года .
  46. ^ "L3DGEWorld 2.3" . Проверено 9 января 2010 года .
  47. ^ "Независимое от VMM ускорение графики" (PDF) . Архивировано из оригинального (PDF) 9 октября 2009 года . Проверено 9 января 2010 года .
  48. ^ Статья о VMM в ACM . С. 33–43. ISBN 978-1-59593-630-1. Проверено 9 января 2010 года .
  49. ^ «Трассировка лучей динамических сцен в реальном времени» . Проверено 22 апреля 2012 года .
  50. ^ «Генерация кода времени выполнения для материалов» . Проверено 22 апреля 2012 года .
  51. ^ «Пользователи LLVM, проекты с открытым исходным кодом» . Проверено 9 января 2010 года .
  52. ^ "ioquake3 Miscellany - LinuxGames" . Архивировано из оригинального 14 июня 2011 года . Проверено 4 января 2010 года .
  53. ^ «OpenArena - Android-приложения в Google Play» . Google Play . Проверено 22 января 2018 года .
  54. ^ Bougard, Гийом (псевдоним Tequila) (22 января 2009). "Smokin'Guns ioquake3 backport" . Smokin'Guns Productions . Проверено 26 января 2010 года .

Внешние ссылки [ править ]

  • "Официальная страница лицензирования id Tech 3" . Архивировано 8 ноября 2009 года . Проверено 6 июля 2012 года .CS1 maint: bot: original URL status unknown (link)
  • Репозиторий исходного кода Quake III (id Tech 3) на idsoftware.com [ постоянная мертвая ссылка ]
  • текущий репозиторий исходного кода Quake III от id (id Tech 3) на github.com
  • Страница проекта ioquake3 , продолжение сообщества