ID Tech 3
Разработчик(и) | программное обеспечение id |
---|---|
Стабильная версия | 1.32б
/ 19 августа 2005 г |
Репозиторий | github.com/id-Software/Quake-III-Arena |
Написано в | С (переписано 14% на C++ ) |
Платформа | Windows , Mac OS , OS X , Linux , Dreamcast , GameCube , Nintendo Switch , PlayStation 2 , PlayStation 3 , PlayStation 4 , Xbox , Xbox 360 , iOS , Android |
Предшественник | Движок Quake II |
Преемник | id Tech 4 , двигатель IW |
Лицензия | GNU GPL-2.0 или новее |
Веб-сайт | www |
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 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 ), а также существует несколько сторонних кодировщиков. Заметным исключением является Unreal Engine на базе игра Postal 2: Apocalypse Weekend , в которой файлы RoQ используются для вступительных и завершающих роликов, а также для шуточного ролика, который воспроизводится после миссии в конце первой части.
- Модели
id Tech 3 загружает 3D-модели в формате MD3. используются вершин движения (иногда называемые повершинной анимацией ) в отличие от скелетной анимации В этом формате для хранения анимации . Возможности анимации в формате MD3 превосходят возможности в id tech 2.5 , формата MD2 поскольку аниматор может иметь переменное количество ключевых кадров в секунду вместо стандартных 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]
Виртуальная машина
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Октябрь 2022 г. ) |
id Tech 3 использует виртуальную машину для управления поведением объектов на сервере, эффектов и прогнозирования на клиенте и пользовательском интерфейсе. Это дает множество преимуществ, поскольку авторам модов не нужно беспокоиться о сбое всей игры из-за плохого кода, клиенты могут отображать более продвинутые эффекты и игровые меню, чем это было возможно в Quake II , а пользовательский интерфейс модов можно полностью настраивать.
Файлы виртуальных машин разрабатываются в ANSI C с использованием LCC для их компиляции в 32-битный RISC формат псевдосборки . Инструмент под названием q3asm затем преобразует их в файлы QVM, которые представляют собой многосегментированные файлы, состоящие из статических данных и инструкций на основе сокращенного набора входных кодов операций. Если не используются операции, требующие определенного порядка байтов , файл QVM будет работать одинаково на любой платформе, поддерживаемой Quake 3.
Виртуальная машина также содержала компиляторы байт-кода для архитектур x86 и PowerPC , выполняющие инструкции QVM через интерпретатор .
ioquake3
[ редактировать ]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 ), Tremulous , [19] [20] Дымящиеся ружья , [21] Городской террор , [22] [23] Черепашья арена и мир Падмена [24] [25] и проекты игровых движков, такие как efport ( клон Star Trek: Voyager – Elite Force Holomatch ), ioJedi Outcast, ioJedi Academy, ioDoom3 и OpenMoHAA . Движок и связанные с ним игры были включены в несколько Linux и BSD дистрибутивов . Движок cMod, созданный на основе более раннего порта Elite Force , использовался для упаковки бесплатного выпуска игры для Windows и Linux, посвященного 20-летнему юбилею . [26]
Исходный код движков Return to Castle Wolfenstein и Wolfenstein: Enemy Territory был выпущен под лицензией GNU GPL-3.0 или более поздней версии 12 августа 2010 года. [27] Разработчики ioquake3 объявили о старте других проектов движка. [28]
Проект ioquake3 использовался в научных исследованиях, таких как Центр компьютерных исследований в области музыки и акустики Стэнфордского университета (CCRMA), [29] [30] Нотр-Дам как основа исследований виртуальной реальности, [31] и Центр передовых интернет-архитектур Технологического университета Суинберна. [32] [33] Совместные усилия исследователей из Университета Карнеги-Меллон и Университета Торонто используют ioquake3 в качестве платформы для своих опубликованных исследований. [34] [35] Студенты использовали ioquake3 в качестве основы для сложных графических работ для своих дипломных работ, таких как работа Стефана Райтера. [36] [37] что было отмечено на проекте LLVM [38] благодаря синтезу движка ioquake3, техники рендеринга с трассировкой лучей и LLVM.
Другие производные движки включают XreaL, [39] [40] Кваак3 для Android [41] [42] [43] [44] [45] [46] и Quake-3-Android-Port-QIII4A. [47]
Игры
[ редактировать ]Собственная лицензия
[ редактировать ]Бесплатная лицензия
[ редактировать ]- OpenArena – отдельная игра с открытым исходным кодом, во многом основанная на стиле Quake III Arena Deathmatch в . Геймплей пытается имитировать Quake III Arena : чтобы выиграть игру, игрок забивает фраги, используя различное оружие. OpenArena также способна запускать некоторые моды на основе Quake III Arena, такие как старые версии Tremulous. [ нужна ссылка ] . OpenArena работает на ioquake3, а версия 0.8 была успешно портирована на Android. [48]
- Space Trader — игра в жанре экшн/стратегия от HermitWorks Entertainment .
- Smokin' Guns - игра от первого лица с открытым исходным кодом, которая должна была стать полуреалистичным симулятором атмосферы «Старого Запада». Первоначально это была модификация Quake III Arena , затем в 2009 году она была портирована на движок ioquake3. [49]
- Urban Terror — Quake III Arena мод полной конверсии , разработанный и выпущенный для работы с розничным программным обеспечением Quake III Arena , но он также совместим с альтернативами движка с открытым исходным кодом. Геймплей можно сравнить с Counter-Strike , где больше внимания уделяется движению и функциям паркура . Urban Terror работает на движке ioquake3.
- Tremulous — Tremulous — это асимметричный командный шутер от первого лица с открытым исходным кодом и элементами стратегии в реальном времени. Каждая команда может построить и защитить базу, состоящую из основных и вспомогательных построек, которые каким-то образом помогают игрокам. Победа команды обычно достигается путем уничтожения вражеских построек и оставшихся игроков. Tremulous начинался как Quake III Arena мод , но в версии 1.1 игра была перенесена на движок ioquake3. Он породил преемника под названием Unvanquiished , который работает на движке Daemon.
- World of Padman – Игра основана на комиксе Padman для журнала PlayStation Games. [ нужна ссылка ] , созданный профессиональным художником-мультипликатором Андреасом Энте (по-немецки «Утка») Эндресом. Он также работал дизайнером уровней в игре. Текущая версия работает на расширенной версии движка ioquake3.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ quake3-1.32b-source.zip
- ^ Дженнелл Жакейс , Брайан Хук. «Руководство по шейдерам Quake III Arena» . п. 5. Архивировано из оригинала 14 апреля 2006 года . Проверено 1 октября 2006 г.
- ^ Дженнелл Жакейс , Брайан Хук. «Руководство по шейдерам Quake III Arena» . п. 1. Архивировано из оригинала 4 сентября 2006 года . Проверено 1 октября 2006 г.
- ^ Эберли, Дэвид (2002). «Быстрый обратный квадратный корень» (PDF) . Геометрические инструменты. п. 2. Архивировано из оригинала (PDF) 24 февраля 2009 г.
- ^ Соммефельдт, Рысь (29 ноября 2006 г.). «Происхождение Fast InvSqrt() в Quake3» . За пределами 3D . Архивировано из оригинала 9 февраля 2009 года . Проверено 12 февраля 2009 г.
- ^ Тим Фергюсон (2001). «Формат видеофайлов .RoQ компании Id Software» . Архивировано из оригинала 1 сентября 2006 года . Проверено 1 октября 2006 г.
- ^ ioquake3 md4-readme.txt
- ^ гонго. «Спецификация файла md4 v4, автор gongo» . Архивировано из оригинала 15 июля 2011 года . Проверено 11 августа 2012 г.
- ^ «Звук в основной теме» . Проверено 16 января 2009 г.
- ^ «Книга Хука: сетевая модель Quake3» . Архивировано из оригинала 27 октября 2006 года . Проверено 1 октября 2006 г.
- ^ «Страница справки Ioquake3» . Архивировано из оригинала 11 января 2016 года . Проверено 17 февраля 2007 г.
- ^ «Полное руководство: настройка и настройка ioQuake3 в Linux» . Линукс сегодня . Архивировано из оригинала 9 марта 2012 года . Проверено 3 января 2010 г.
- ^ «Quake 3 портирован на iPod Touch с управлением наклоном – Betanews» . 14 апреля 2008 года . Проверено 4 января 2010 г.
- ^ Валич, Тео (3 апреля 2007 г.). «Две бесплатные игры на движке Quake 3» . Спрашивающий . Архивировано из оригинала 28 августа 2010 года . Проверено 12 января 2010 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «ioquake3 для OS X – Игры внутри Mac» . Архивировано из оригинала 24 сентября 2015 года . Проверено 3 января 2010 г.
- ^ «ioquake3 для Mac OS X доступен для скачивания – Macsimum News» . Архивировано из оригинала 12 сентября 2006 года . Проверено 3 января 2010 г.
- ^ «IOQuake3 OSX: Клон Quake III (бесплатно) – MaxiApple.com» . 10 мая 2009 года . Проверено 3 января 2010 г.
- ^ «IOQuake3 1.34 – Играйте в Quake 3 на Mac OS X – Maclivre.net» . Архивировано из оригинала 23 июля 2011 года . Проверено 4 января 2010 г.
- ^ «Тревожно о странице» . Архивировано из оригинала 10 декабря 2015 года . Проверено 4 ноября 2009 г.
- ^ «Quake, встречайте GPL; GPL, встречайте Quake — Linux Journal» . Архивировано из оригинала 1 октября 2020 года . Проверено 4 января 2010 г.
- ^ «Интервью с командой Smokin'Guns — JeuxLinux» . Архивировано из оригинала 19 марта 2021 года . Проверено 4 ноября 2009 г.
- ^ «Руководство по городскому террору» . Проверено 18 мая 2015 г.
- ^ «Две бесплатные игры на основе движка Quake 3. Подсказка – The Inquirer» . Архивировано из оригинала 28 августа 2010 года . Проверено 4 января 2010 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Взгляд на бесплатные игры на движке Quake3 – Slashdot» . Архивировано из оригинала 19 марта 2021 года . Проверено 3 января 2010 г.
- ^ «Сравнение бесплатных шутеров — linuX-gamers.net» . Проверено 4 января 2010 г. [ мертвая ссылка ]
- ^ Проктер, Леви (13 августа 2020 г.). «Star Trek: Voyager Elite Force Holomatch получает бесплатное переиздание к 20-летию» . мыПК . Проверено 25 марта 2023 г.
- ^ ftp://ftp.idsoftware.com/idstuff/source/ [ постоянная мертвая ссылка ]
- ^ Ларабель, Майкл (13 июня 2010 г.). «id Software с открытым исходным кодом ET, RTCW» . Фороникс . Архивировано из оригинала 16 августа 2010 года . Проверено 13 августа 2010 г.
- ^ «Исследовательская статья Q3osc» (PDF) . Архивировано (PDF) из оригинала 19 марта 2021 г. Проверено 9 января 2010 г.
- ^ «Q3osc вики» . Проверено 9 января 2010 г.
- ^ «Обзор технологий совместной виртуальной среды» (PDF) . Архивировано из оригинала (PDF) 10 октября 2015 года . Проверено 9 января 2010 г.
- ^ «Характеристики ввода и вывода L3DGEWorld 2.1» (PDF) . Архивировано (PDF) оригинала 5 октября 2011 г. Проверено 9 января 2010 г.
- ^ «L3DGEWorld 2.3» . Архивировано из оригинала 5 октября 2011 года . Проверено 9 января 2010 г.
- ^ «Ускорение графики, независимое от VMM» (PDF) . Архивировано из оригинала (PDF) 9 октября 2009 г. Проверено 9 января 2010 г.
- ^ Статья о VMM в ACM . 13 июня 2007 г. стр. 33–43. дои : 10.1145/1254810.1254816 . ISBN 978-1-59593-630-1 . S2CID 655357 . Проверено 9 января 2010 г.
- ^ «Трассировка лучей динамических сцен в реальном времени» . Проверено 22 апреля 2012 г.
- ^ «Генерация кода времени выполнения для материалов» . Проверено 22 апреля 2012 г.
- ^ «Пользователи LLVM, проекты с открытым исходным кодом» . Архивировано из оригинала 23 февраля 2021 года . Проверено 9 января 2010 г.
- ^ Ларабель, Майкл (9 апреля 2009 г.). «XreaL: самый продвинутый игровой движок с открытым исходным кодом?» . Фороникс . Проверено 21 июля 2024 г.
- ^ Ларабель, Майкл (1 декабря 2012 г.). «Состояние XReaL, игровых движков OpenWolf» . Фороникс . Проверено 21 июля 2024 г.
- ^ «Quake 3 в стиле Android» . ТехКранч . 25 февраля 2010 года . Проверено 21 июля 2024 г.
- ^ Ларабель, Майкл (23 февраля 2010 г.). «Quake 3 выходит на платформу Android от Google» . Фороникс . Проверено 21 июля 2024 г.
- ^ Спенсер, Спаннер (26 февраля 2010 г.). «Quake 3 портирован на Android» . Карманный геймер . Проверено 21 июля 2024 г.
- ^ Савов Влад (25 февраля 2010 г.). «Quake 3, портированная на Android, демонстрирует графическое мастерство Droid (видео)» . Engadget . Проверено 21 июля 2024 г.
- ^ Перес, Энтони (24 февраля 2010 г.). «Quake 3 успешно портирован на устройства Android 2.0» . Фанадроид . Проверено 21 июля 2024 г.
- ^ Кеннемер, Квентин (10 мая 2010 г.). «Quake 3 наконец-то перенесен на Nexus One» . Фанадроид . Проверено 21 июля 2024 г.
- ^ Рахман, Мишааль (16 мая 2017 г.). «Как играть в Return to Castle Wolfenstein, Doom 3 и Quake 3 (с Ареной) на устройстве Android» . Разработчики XDA . Проверено 21 июля 2024 г.
- ^ «OpenArena — приложения для Android в Google Play» . Гугл Плей . Архивировано из оригинала 25 сентября 2015 года . Проверено 22 января 2018 г.
- ^ Бугар, Гийом (псевдоним Текила) (22 января 2009 г.). «Бэкпорт Smokin'Guns ioquake3» . Компания Smokin’Guns Productions . Проверено 26 января 2010 г.
Внешние ссылки
[ редактировать ]- «Официальная страница лицензирования id Tech 3» . Архивировано из оригинала 8 ноября 2009 года . Проверено 6 июля 2012 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - Оригинальный репозиторий исходного кода Quake III (id Tech 3) на idsoftware.com. [ постоянная мертвая ссылка ]
- Текущий репозиторий исходного кода Quake III от id (id Tech 3) на github.com
- Страница проекта ioquake3 , продолжение сообщества