stringtranslate.com

ID Tech 3

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, как и движок IW Infinity Ward, использовавшийся в Call of Duty 2 и далее.

На QuakeCon 2005 Джон Кармак объявил, что исходный код id Tech 3 будет выпущен под лицензией GNU General Public License v2.0 или более поздней версии , и он был выпущен 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 превосходят возможности формата MD2 от id Tech 2, поскольку аниматор может иметь переменное количество ключевых кадров в секунду вместо стандартных 10 ключевых кадров в секунду MD2. Это позволяет создавать более сложные анимации, которые менее «трясутся», чем модели в Quake II .

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

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

В версии исходного кода под лицензией GPL большая часть кода, связанного с файлами скелетной анимации MD4 , отсутствовала. [ нужна цитация ] Предполагается, что id просто так и не закончила формат, [7] хотя почти все лицензиаты создали свои собственные системы скелетной анимации из того, что присутствовало. Ritual Entertainment сделала это для использования в игре Heavy Metal: FAKK² , SDK , для которого легла в основу поддержка MD4, созданная кем-то, использовавшим псевдоним Gongo . [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] Движок cMod, созданный на основе более раннего порта Elite Force , использовался для упаковки бесплатного выпуска игры, посвященного 20-летию игры, для Windows и Linux . [37]

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

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

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

Игры с использованием движка

Игры на основе исходного релиза

Игры, использующие проприетарную лицензию

Смотрите также

Рекомендации

  1. ^ quake3-1.32b-source.zip
  2. ^ Дженнелл Жакейс , Брайан Хук. «Руководство по шейдерам Quake III Arena». п. 5. Архивировано из оригинала 14 апреля 2006 года . Проверено 1 октября 2006 г.
  3. ^ Дженнелл Жакейс , Брайан Хук. «Руководство по шейдерам Quake III Arena». п. 1. Архивировано из оригинала 4 сентября 2006 года . Проверено 1 октября 2006 г.
  4. ^ Эберли, Дэвид (2002). «Быстрый обратный квадратный корень» (PDF) . Геометрические инструменты. п. 2. Архивировано из оригинала (PDF) 24 февраля 2009 г.
  5. Соммефельдт, Рысь (29 ноября 2006 г.). «Происхождение Fast InvSqrt() в Quake3». За пределами 3D . Архивировано из оригинала 9 февраля 2009 года . Проверено 12 февраля 2009 г.
  6. ^ Тим Фергюсон (2001). «Формат видеофайлов .RoQ от id Software». Архивировано из оригинала 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" . Архивировано из оригинала 11 января 2016 года . Проверено 17 февраля 2007 г.
  12. ^ «Полное руководство: настройка и настройка ioQuake3 в Linux» . Линукс сегодня. Архивировано из оригинала 9 марта 2012 года . Проверено 3 января 2010 г.
  13. ^ «Quake 3 перенесен на iPod Touch с управлением наклоном - Betanews» . 14 апреля 2008 года . Проверено 4 января 2010 г.
  14. ^ Валич, Тео (3 апреля 2007 г.). «Две бесплатные игры на основе движка Quake 3». Спрашивающий . Архивировано из оригинала 28 августа 2010 года . Проверено 12 января 2010 г.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  15. ^ «ioquake3 для OS X – Внутри Mac Games» . Архивировано из оригинала 24 сентября 2015 года . Проверено 3 января 2010 г.
  16. ^ «ioquake3 для Mac OS X доступен для загрузки – Macsimum News» . Архивировано из оригинала 12 сентября 2006 года . Проверено 3 января 2010 г.
  17. ^ «IOQuake3 OSX: Клон 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. ^ "С трепетом о странице" . Архивировано из оригинала 10 декабря 2015 года . Проверено 4 ноября 2009 г.
  22. ^ «Quake, встречайте GPL; GPL, встречайте Quake - Linux Journal» . Архивировано из оригинала 1 октября 2020 года . Проверено 4 января 2010 г.
  23. ^ "Entretien avec l'équipe de Smokin'Guns - JeuxLinux" . Архивировано из оригинала 19 марта 2021 года . Проверено 4 ноября 2009 г.
  24. ^ "Руководство по городскому террору" . Проверено 18 мая 2015 г.
  25. ^ «Две бесплатные игры на основе движка Quake 3 - The Inquirer» . Архивировано из оригинала 28 августа 2010 года . Проверено 4 января 2010 г.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  26. ^ «Взгляд на бесплатные игры на движке Quake3 - Slashdot» . Архивировано из оригинала 19 марта 2021 года . Проверено 3 января 2010 г.
  27. ^ «Сравнение бесплатных шутеров – linuX-gamers.net» . Проверено 4 января 2010 г.[ мертвая ссылка ]
  28. ^ "GitHub - ioquake/джедай-изгой" . Гитхаб . 16 января 2020 года. Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  29. ^ "Академия ioJedi". Гитхаб . Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  30. ^ "Йодум3". Гитхаб . Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  31. ^ "ОткрытьMOHAA". Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  32. ^ «Обновление Fedora 12: quake3-1.36-5.fc12 – Fedora-package-announce» . Архивировано из оригинала 19 марта 2021 года . Проверено 4 января 2010 г.
  33. ^ «ioquake3-1.36-1mdv2010.0 об/мин для i586 — поиск об/мин» . Архивировано из оригинала 21 февраля 2014 года . Проверено 4 января 2010 г.
  34. ^ «Пакет: openarena-data (0.8.1-2) – Debian» . Архивировано из оригинала 19 марта 2021 года . Проверено 4 января 2010 г.
  35. ^ «ioquake3 1.36 build 3 – FreshPorts» . Архивировано из оригинала 19 марта 2021 года . Проверено 5 февраля 2010 г.
  36. ^ "igames/ioquake3 - Коллекция пакетов NetBSD" . Архивировано из оригинала 10 июня 2011 года . Проверено 4 января 2010 г.
  37. Проктер, Леви (13 августа 2020 г.). «Star Trek: Voyager Elite Force Holomatch получает бесплатное переиздание к 20-летию» . мыПК . Проверено 25 марта 2023 г.
  38. ^ ftp://ftp.idsoftware.com/idstuff/source/ [ постоянная неработающая ссылка ]
  39. ^ Пакет, скомпилированный Iortcw
  40. ^ "Исходный код Iortcw" . Гитхаб . Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  41. ^ "Исходный код ET Legacy" . Гитхаб . Архивировано из оригинала 19 марта 2021 года . Проверено 24 октября 2015 г.
  42. Ларабель, Майкл (13 июня 2010 г.). «id Software с открытым исходным кодом ET, RTCW». Фороникс . Архивировано из оригинала 16 августа 2010 года . Проверено 13 августа 2010 г.
  43. ^ "Исследовательская статья Q3osc" (PDF) . Архивировано (PDF) из оригинала 19 марта 2021 г. Проверено 9 января 2010 г.
  44. ^ "Q3osc вики" . Проверено 9 января 2010 г.
  45. ^ «Обзор технологий совместной виртуальной среды» (PDF) . Архивировано из оригинала (PDF) 10 октября 2015 года . Проверено 9 января 2010 г.
  46. ^ «Характеристики ввода и вывода L3DGEWorld 2.1» (PDF) . Архивировано (PDF) оригинала 5 октября 2011 г. Проверено 9 января 2010 г.
  47. ^ "L3DGEWorld 2.3" . Архивировано из оригинала 5 октября 2011 года . Проверено 9 января 2010 г.
  48. ^ «Ускорение графики, независимое от VMM» (PDF) . Архивировано из оригинала (PDF) 9 октября 2009 г. Проверено 9 января 2010 г.
  49. ^ Статья VMM в ACM. 13 июня 2007 г. стр. 33–43. дои : 10.1145/1254810.1254816. ISBN 978-1-59593-630-1. S2CID  655357 . Проверено 9 января 2010 г.
  50. ^ «Трассировка лучей динамических сцен в реальном времени» . Проверено 22 апреля 2012 г.
  51. ^ «Генерация кода времени выполнения для материалов» . Проверено 22 апреля 2012 г.
  52. ^ «Пользователи LLVM, проекты с открытым исходным кодом» . Архивировано из оригинала 23 февраля 2021 года . Проверено 9 января 2010 г.
  53. ^ "Разное ioquake3 - LinuxGames" . Архивировано из оригинала 14 июня 2011 года . Проверено 4 января 2010 г.
  54. ^ «OpenArena — приложения для Android в Google Play» . Гугл игры . Архивировано из оригинала 25 сентября 2015 года . Проверено 22 января 2018 г.
  55. Бугар, Гийом (псевдоним Текила) (22 января 2009 г.). «Бэкпорт Smokin'Guns ioquake3». Компания Smokin’Guns Productions . Проверено 26 января 2010 г.

Внешние ссылки