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 года. Первоначально он распространялся по FTP , а затем был перемещен на GitHub .
В отличие от большинства других игровых движков, выпущенных в то время, включая своего основного конкурента Unreal Engine , для работы id Tech 3 требуется графический ускоритель , совместимый с OpenGL . Движок не включает в себя программный рендерер .
В id Tech 3 были представлены криволинейные поверхности на основе сплайнов в дополнение к плоским объемам, которые отвечают за многие поверхности в игре. [1]
Графическая технология игры основана на системе « шейдеров », где внешний вид многих поверхностей может быть определен в текстовых файлах, называемых «скриптами шейдеров». Шейдеры описываются и визуализируются как несколько слоев, каждый слой содержит текстуру, «режим смешивания», который определяет, как наложить его на предыдущий слой, и режимы ориентации текстуры, такие как отображение окружения, прокрутка и вращение. Эти особенности можно легко увидеть в игре с множеством ярких и активных поверхностей на каждой карте и даже на моделях персонажей. Система шейдеров выходит за рамки визуального вида, определяя содержимое объемов (например, объем воды определяется путем применения шейдера воды к его поверхностям), излучение света и какой звук воспроизводить, когда на объем наступают. [2] Для того чтобы помочь в расчете этих шейдеров, id Tech 3 реализует специальную быструю функцию обратного квадратного корня , которая привлекла значительное внимание в сообществе разработчиков игр своим умным использованием целочисленных операций. [3] [4]
id Tech 3 использует систему «моментальных снимков» для передачи клиенту информации об игровых «кадрах» по UDP . Сервер обновляет взаимодействие объектов с фиксированной скоростью, независимой от скорости, с которой клиенты обновляют сервер своими действиями, а затем пытается отправить состояние всех объектов в этот момент (текущий кадр сервера) каждому клиенту. Сервер пытается опустить как можно больше информации о каждом кадре, передавая только отличия от последнего кадра, который клиент подтвердил как полученный ( кодирование Delta ). Все пакеты данных сжимаются кодированием Хаффмана со статическими предварительно рассчитанными данными о частоте, чтобы еще больше сократить использование полосы пропускания. [5]
Quake 3 имеет интегрированную и относительно сложную систему защиты от читов, называемую «чистый сервер». У любого клиента, подключающегося к чистому серверу, автоматически включается чистый режим, и пока включен чистый режим, доступны только файлы в пакетах данных. Клиенты отключаются, если их пакеты данных не проходят одну из нескольких проверок целостности. Файл cgame.qvm
, с его высоким потенциалом для чит-модификации, подлежит дополнительным проверкам целостности. [ необходима цитата ] Разработчики должны вручную деактивировать чистый сервер, чтобы протестировать карты или моды, которые не находятся в пакетах данных, используя формат файла PK3. Более поздние версии дополнили чистый сервер поддержкой PunkBuster , хотя все хуки для него отсутствуют в исходном коде, поскольку PunkBuster — это программное обеспечение с закрытым исходным кодом , и включение его поддержки в исходный код привело бы к нарушению GPL любыми распространителями/повторными пользователями кода . [6]
Ioquake3 — это проект игрового движка , который нацелен на создание на основе исходного кода id Tech 3 [7] [8] для устранения ошибок, очистки исходного кода и добавления более продвинутых графических и аудиофункций через SDL и OpenAL . ioquake3 также предназначен для работы в качестве чистого базового пакета, на котором могут быть построены другие проекты. Игровой движок поддерживает формат Ogg Vorbis и видеозахват демонстраций в формате .avi . [9]
Проект был начат вскоре после выпуска исходного кода с целью создания безошибочного , улучшенного дистрибутива исходного кода движка Quake III с открытым исходным кодом , на котором могут быть основаны новые игры и проекты. Кроме того, проект направлен на предоставление улучшенной среды, в которой можно играть в Quake III: Arena , пакет расширения Team Arena и все популярные моды . [10] [11] [12] [13] Проект добавил функции, включая встроенную поддержку VoIP , анаглифный стереорендеринг (для просмотра с 3D-очками) и многочисленные исправления безопасности.
Ioquake3 является основой нескольких игровых проектов, основанных на движке id Tech 3, таких как OpenArena (имитация Quake III Arena ), Tremulous , [14] [15] Smokin' Guns , [16] Urban Terror , [17] [18] Turtle Arena и World of Padman [19] [20] и проектов игровых движков, таких как efport ( клон Star Trek: Voyager – Elite Force Holomatch ), ioJedi Outcast, ioJedi Academy, ioDoom3 и OpenMoHAA . Движок и связанные с ним игры были включены в несколько дистрибутивов Linux и BSD . Движок cMod, полученный из более раннего порта Elite Force, использовался для упаковки бесплатного релиза игры к 20-летию для Windows и Linux . [21]
Исходный код движков Return to Castle Wolfenstein и Wolfenstein: Enemy Territory был выпущен под лицензией GNU GPL-3.0 или более поздней 12 августа 2010 года. [22] Разработчики ioquake3 объявили о начале других проектов движков. [23]
Проект ioquake3 использовался в академических исследованиях, таких как Центр компьютерных исследований в области музыки и акустики (CCRMA) Стэнфордского университета [24] [25] , Нотр-Дам в качестве основы для исследований виртуальной реальности [26] и Центр передовых архитектур Интернета Технологического университета Суинберна. [27] [28] Совместные усилия исследователей из Университета Карнеги-Меллона и Университета Торонто используют ioquake3 в качестве платформы для своих опубликованных исследований. [29] [30] Студенты использовали ioquake3 в качестве основы для продвинутых графических работ для своих диссертаций, таких как работа Стефана Рейтера [31] [32] , которая была отмечена в проекте LLVM [33] благодаря его синтезу движка ioquake3, техники рендеринга с трассировкой лучей и LLVM.
С тех пор проект получил ответвления, такие как Quake3e, [34] Spearmint, [35] и vkQuake3. [36] [37]
Другие производные движки включают движок Daemon , используемый Unvanquished , [38] [39] [40], а также конкурирующие исходные порты, такие как XreaL, [41] [42] Kwaak3 для Android [43] [44] [45] [46] [47] [48] и Quake-3-Android-Port-QIII4A. [49]
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: неподходящий URL ( ссылка ){{cite web}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )