id Tech 3#Features

{{Short description|Video game engine}}

{{lowercase title}}

{{Use mdy dates|date=August 2024}}

{{Infobox video game engine

| name = id Tech 3

| logo = Id Tech 3 logo.png

| logo size = 200px

| screenshot = Quake III Arena q3dm0.png

| caption = Quake III, the engine's parent game

| collapsible =

| developer = id Software

| replaces = Quake II engine

| replaced_by = id Tech 4, IW engine

| latest release version = 1.32b

| latest release date = {{Start date and age|2005|08|19}}

| repo = [https://github.com/id-Software/Quake-III-Arena github.com/id-Software/Quake-III-Arena]

| tools =

| programming language = C
(rewritten 14% in C++)

| platform = Windows, Mac OS, OS X, Linux, Dreamcast, GameCube, Nintendo Switch, PlayStation 2, PlayStation 3, PlayStation 4, Xbox, Xbox 360, iOS, Android

| discontinued =

| license = GNU GPL-2.0-or-later

}}

File:EF2 Romulans.jpg is one of the last games to utilize the id Tech 3 engine.]]

id Tech 3, popularly known as the Quake III Arena engine, is a game engine developed by id Software for its 1999 game Quake III Arena. It has subsequently been used in numerous games. Commercially, id Tech 3 competed with early versions of the Unreal Engine; both were widely licensed. Originally proprietary, it is now open-source software.

id Tech 3 is based on the earlier id Tech 2, with a large amount of the code rewritten. id Tech 4 was derived from id Tech 3, as was Infinity Ward's IW engine, used in Call of Duty 2 onward.

At QuakeCon 2005, John Carmack announced that the id Tech 3 source code would be released under the GNU General Public License v2.0 or later, and it was released on August 19, 2005.{{Cite web |date=2005-08-19 |title=Quake III: Arena Source Released! |url=http://www.planetquake3.net/article.php?sid=2108 |url-status=dead |archive-url=https://web.archive.org/web/20051017045356/http://www.planetquake3.net/article.php?sid=2108 |archive-date=2005-10-17 |access-date=2024-12-03 |website=PlanetQuake3}} It was originally distributed via FTP, and later moved to GitHub.

Features

=Graphics=

Unlike most other game engines released at the time{{mdash}}including its main competitor, the Unreal Engine{{mdash}}id Tech 3 requires an OpenGL-compliant graphics accelerator to run. The engine does not include a software renderer, unlike id Tech 2.

id Tech 3 introduced spline-based curved surfaces in addition to planar volumes.{{cite web | url = http://www.qeradiant.com/manual/Q3AShader_Manual/ch05/pg5_1.htm | title = Quake III Arena Shader Manual | access-date = October 1, 2006 | page = 5 | author = Jennell Jaquays, Brian Hook |archive-url = https://archive.today/20060414004110/http://www.qeradiant.com/manual/Q3AShader_Manual/ch05/pg5_1.htm |archive-date = April 14, 2006}}

The graphical technology of the game is based tightly around a shader system, where the appearance of many surfaces can be defined in text files referred to as shader scripts. Shaders are described and rendered as several layers. Each layer contains a texture, a "blend mode" that determines how to superimpose it over the previous layer, and texture orientation modes such as environment mapping, scrolling, and rotation. These features can readily be seen within the game, with many bright and active surfaces on each map and even character models. The shader system goes beyond visual appearance, defining the contents of volumes (e.g., a water volume is defined by applying a water shader to its surfaces), light emission, and which sound to play when a volume is trodden upon.{{cite web | url = http://www.qeradiant.com/manual/Q3AShader_Manual/ch01/pg1_1.htm | title = Quake III Arena Shader Manual | page = 1 | access-date = October 1, 2006 | author = Jennell Jaquays, Brian Hook |archive-url = https://archive.today/20060904124212/http://www.qeradiant.com/manual/Q3AShader_Manual/ch01/pg1_1.htm |archive-date = September 4, 2006}} To assist calculation of these shaders, id Tech 3 implements a specific fast inverse square root function, which attracted a significant amount of attention in the game development community for its clever use of integer operations.{{Cite web| last = Eberly| first = David| title = Fast Inverse Square Root| publisher = Geometric Tools| year = 2002| page = 2| url = http://www.geometrictools.com/Documentation/FastInverseSqrt.pdf| url-status = dead| archive-url = https://web.archive.org/web/20090224214314/http://www.geometrictools.com/Documentation/FastInverseSqrt.pdf| archive-date = February 24, 2009}}{{cite web|url=http://www.beyond3d.com/content/articles/8/|title=Origin of Quake3's Fast InvSqrt()|last=Sommefeldt|first=Rys|date=November 29, 2006|work=Beyond3D|access-date=February 12, 2009|archive-date=February 9, 2009|archive-url=https://web.archive.org/web/20090209045625/http://www.beyond3d.com/content/articles/8/|url-status=live}}

=Networking=

Like id's earlier titles Doom and Quake, Quake III Arena features multiplayer support via features built into its engine. id Tech 3 uses a snapshot system to relay information about game frames to the client over UDP. The server updates object interaction at a fixed rate independent of the rate that clients update the server with their actions, then attempts to send the state of all objects at that moment (the current server frame) to each client. The server attempts to omit as much information as possible about each frame, relaying only differences from the last frame the client confirmed as received (Delta encoding). All data packets are compressed by Huffman coding with static pre-calculated frequency data to reduce bandwidth use even further.{{cite web | url = http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Networking | title = Book of Hook: The Quake3 Networking Model | access-date = October 1, 2006 | archive-url = https://web.archive.org/web/20061027183301/http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Networking | archive-date = October 27, 2006 | url-status = dead }}

Quake III Arena has an integrated and relatively elaborate cheat-protection system called "pure server". Any client connecting to a pure server automatically has "pure mode" enabled; while pure mode is enabled, only files within data packs can be accessed. Clients are disconnected if their data packs fail one of several integrity checks. The cgame.qvm file, with its high potential for cheat-related modification, is subject to additional integrity checks.{{Citation needed|date=February 2007}} Developers must manually deactivate pure server to test maps or mods that are not in data packs using the PK3 file format. Later versions supplemented pure server with PunkBuster support, though all the hooks to it are absent from the source code release because PunkBuster is closed source software and including support for it in the source code release would have caused any redistributors/reusers of the code to violate the GPL.{{cite web|url=http://ioquake3.org/?page=help|title=Ioquake3 Help Page|access-date=February 17, 2007|archive-date=January 11, 2016|archive-url=https://web.archive.org/web/20160111063556/http://ioquake3.org/?page=help|url-status=dead}}

ioquake3

File:Tremulous demonstrating ioquake3's automatic texture mapping feature.jpg and normal mapping in ioQuake3, Tremulous 1.3 prerelease client]]

Ioquake3 is a game engine project which aims to build upon the id Tech 3 source code release{{cite web|url=http://www.linuxtoday.com/news_story.php3?ltsn=2009-08-08-007-35-OS-GM|title=Complete Guide: Configure and Customise ioQuake3 in Linux|publisher=Linux Today|access-date=January 3, 2010|archive-date=March 9, 2012|archive-url=https://web.archive.org/web/20120309114038/http://www.linuxtoday.com/news_story.php3?ltsn=2009-08-08-007-35-OS-GM|url-status=dead}}{{cite web |url=http://www.betanews.com/article/Quake-3-ported-to-iPod-Touch-with-tilt-controls/1208202321|title= Quake 3 ported to iPod Touch with tilt controls – Betanews|date= April 14, 2008|access-date=January 4, 2010}} in order to remove bugs, clean up source code and to add more advanced graphical and audio features via SDL and OpenAL. ioquake3 is also intended to act as a clean base package, upon which other projects may be built. The game engine supports Ogg Vorbis format and video capture of demos in .avi format.{{cite web|url=http://www.theinquirer.net/inquirer/news/1040566/two-free-games-quake-engine-tip|archive-url=https://web.archive.org/web/20100828115411/http://www.theinquirer.net/inquirer/news/1040566/two-free-games-quake-engine-tip|url-status=unfit|archive-date=August 28, 2010|title=Two free games based on the Quake 3 engine tip up |work=The Inquirer|date=April 3, 2007|author=Valich, Theo|access-date=January 12, 2010}}

The project was started shortly after the source code release with the goal of creating a bug-free, enhanced open source Quake III engine source code distribution upon which new games and projects can be based. In addition, the project aims to provide an improved environment in which Quake III: Arena, the Team Arena expansion pack and all the popular mods can be played.{{cite web|url=http://www.insidemacgames.com/news/story.php?ArticleID=14009|title=ioquake3 for OS X – Inside Mac Games|access-date=January 3, 2010|archive-date=September 24, 2015|archive-url=https://web.archive.org/web/20150924035459/http://www.insidemacgames.com/news/story.php?ArticleID=14009|url-status=dead}}{{cite web|url=http://www.macsimumnews.com/index.php/archive/ioquake3_for_mac_os_x_available_for_download|title=ioquake3 for Mac OS X available for download – Macsimum News|access-date=January 3, 2010|url-status=dead|archive-url=https://web.archive.org/web/20060912084206/http://www.macsimumnews.com/index.php/archive/ioquake3_for_mac_os_x_available_for_download/|archive-date=September 12, 2006}}{{cite web |url=http://www.maxiapple.com/2009/05/ioquake3-osx-clone-de-quake-iii-gratuit.html |title=IOQuake3 OSX : Clone de Quake III (gratuit) – MaxiApple.com|date=May 10, 2009|access-date=January 3, 2010}}{{cite web|url=http://www.maclivre.net/2009/03/18/ioquake3-134-jogue-quake-3-no-mac-os-x/|title=IOQuake3 1.34 – Jogue Quake 3 no Mac OS X – Maclivre.net|access-date=January 4, 2010|url-status=dead|archive-url=https://web.archive.org/web/20110723193634/http://www.maclivre.net/2009/03/18/ioquake3-134-jogue-quake-3-no-mac-os-x/|archive-date=July 23, 2011}} The project added features including builtin VoIP support, Anaglyph stereo rendering (for viewing with 3D glasses), and numerous security fixes.

Ioquake3 is the basis of several game projects based on the id Tech 3 engine, such as OpenArena (mimicking Quake III Arena), Tremulous,{{cite web|url=http://tremulous.net/about/|title=Tremulous about page|access-date=November 4, 2009|archive-date=December 10, 2015|archive-url=https://web.archive.org/web/20151210205105/http://tremulous.net/about/|url-status=live}}{{cite web|url=http://www.linuxjournal.com/article/9867|title=Quake, Meet GPL; GPL, Meet Quake – Linux Journal|access-date=January 4, 2010|archive-date=October 1, 2020|archive-url=https://web.archive.org/web/20201001060130/https://www.linuxjournal.com/article/9867|url-status=live}} Smokin' Guns,{{cite web|url=http://www.jeuxlinux.fr/a269-Entretien_avec_lequipe_de_SmokinGuns.html|title=Entretien avec l'équipe de Smokin'Guns – JeuxLinux|access-date=November 4, 2009|archive-date=March 19, 2021|archive-url=https://web.archive.org/web/20210319053021/https://www.jeuxlinux.fr/a269-Entretien_avec_lequipe_de_SmokinGuns.html|url-status=live}} Urban Terror,{{cite web |url=http://www.urbanterror.info/support/manual/game/ |title=Urban Terror manual|access-date=May 18, 2015}}{{cite web |url=http://www.theinquirer.net/inquirer/news/1040566/two-free-games-quake-engine-tip |archive-url=https://web.archive.org/web/20100828115411/http://www.theinquirer.net/inquirer/news/1040566/two-free-games-quake-engine-tip |url-status=unfit |archive-date=August 28, 2010 |title=Two free games based on the Quake 3 engine tip up – The Inquirer|access-date=January 4, 2010}} Turtle Arena and World of Padman{{cite web|url=http://games.slashdot.org/article.pl?sid=07/04/06/1638232|title=A Look At Free Quake3 Engine Based Games – Slashdot|date=April 6, 2007 |access-date=January 3, 2010|archive-date=March 19, 2021|archive-url=https://web.archive.org/web/20210319053020/https://games.slashdot.org/story/07/04/06/1638232/a-look-at-free-quake3-engine-based-games|url-status=live}}{{cite web|url=http://www.linux-gamers.net/modules/smartsection/item.php?itemid=81&keywords=ioquake3 |title=Comparison of free software shooters – linuX-gamers.net |access-date=January 4, 2010 }}{{dead link|date=June 2016|bot=medic}}{{cbignore|bot=medic}} and game engine projects such as efport (a Star Trek: Voyager – Elite Force Holomatch clone), ioJedi Outcast, ioJedi Academy, ioDoom3, and OpenMoHAA. The engine and its associated games have been included in several Linux and BSD distributions. The cMod engine derived from the earlier Elite Force port was used to package the 20th anniversary freeware release of the game for Windows and Linux.{{cite web|url=https://www.wepc.com/news/star-trek-voyager-elite-force-holomatch-gets-free-20th-anniversary-re-release/|title=Star Trek: Voyager Elite Force Holomatch Gets Free 20th Anniversary Re-Release|first=Lewie|last=Procter|website=wePC|date=August 13, 2020|access-date=March 25, 2023}}

The source code for the Return to Castle Wolfenstein and Wolfenstein: Enemy Territory engines was released under GNU GPL-3.0-or-later on August 12, 2010.ftp://ftp.idsoftware.com/idstuff/source/{{dead link|date=April 2017 |bot=InternetArchiveBot |fix-attempted=yes }} The ioquake3 developers announced the start of other engine projects.{{cite web | url = https://www.phoronix.com/scan.php?page=news_item&px=ODUwNA | title = id Software Open-Sources ET, RTCW | access-date = August 13, 2010 | last = Larabel | first = Michael | date = June 13, 2010 | publisher = Phoronix | author-link = Michael Larabel | archive-date = August 16, 2010 | archive-url = https://web.archive.org/web/20100816034701/http://www.phoronix.com/scan.php?page=news_item&px=ODUwNA | url-status = live }}

The ioquake3 project has been used academic research such as Stanford University's Center for Computer Research in Music and Acoustics (CCRMA),{{cite web |url=https://ccrma.stanford.edu/~rob/papers/hamilton-ICMC2008-q3osc.pdf |title=Q3osc research paper |access-date=January 9, 2010 |archive-date=March 19, 2021 |archive-url=https://web.archive.org/web/20210319053031/https://ccrma.stanford.edu/~rob/papers/hamilton-ICMC2008-q3osc.pdf |url-status=live }}{{cite web |url=https://ccrma.stanford.edu/wiki/Q3osc |title=Q3osc wiki |access-date=January 9, 2010}} Notre Dame as the foundation for VR research,{{cite web |url=http://www.cse.nd.edu/Reports/2008/TR-2008-11.pdf |title=A Survey of Collaborative Virtual Environment Technologies |access-date=January 9, 2010 |archive-date=October 10, 2015 |archive-url=https://web.archive.org/web/20151010134157/http://www.cse.nd.edu/Reports/2008/TR-2008-11.pdf |url-status=dead }} and Swinburne University of Technology's Centre for Advanced Internet Architectures.{{cite web |url=http://caia.swin.edu.au/reports/070808A/CAIA-TR-070808A.pdf |title=L3DGEWorld 2.1 Input & Output Specifications |access-date=January 9, 2010 |archive-date=October 5, 2011 |archive-url=https://web.archive.org/web/20111005205807/http://caia.swin.edu.au/reports/070808A/CAIA-TR-070808A.pdf |url-status=live }}{{cite web |url=http://caia.swin.edu.au/urp/l3dge/tools/l3dgeworld/index.html |title=L3DGEWorld 2.3 |access-date=January 9, 2010 |archive-date=October 5, 2011 |archive-url=https://web.archive.org/web/20111005205914/http://caia.swin.edu.au/urp/l3dge/tools/l3dgeworld/index.html |url-status=live }} Collaborative efforts from researchers at Carnegie Mellon University and the University of Toronto use ioquake3 as a platform for their published research.{{cite web |url=http://www.vmware.com/files/pdf/vee.pdf |title=VMM-Independent Graphics Acceleration |access-date=January 9, 2010 |url-status=dead |archive-url=https://web.archive.org/web/20091009154854/http://www.vmware.com/files/pdf/vee.pdf |archive-date=October 9, 2009 }}{{cite book |url=http://portal.acm.org/citation.cfm?id=1254816 |title=VMM article in ACM |date=June 13, 2007 | isbn = 978-1-59593-630-1|pages= 33–43 |doi=10.1145/1254810.1254816 |s2cid=655357 |access-date=January 9, 2010}} Students have used ioquake3 as the basis for advanced graphics work for their theses, such as Stephan Reiter's work{{cite web |url=http://llvm.org/pubs/2008-06-Reiter-Thesis.html |title=Real-time Ray Tracing of Dynamic Scenes |access-date=April 22, 2012}}{{cite web |url=http://llvm.org/pubs/2008-08-RTCodegen.html |title=Run-Time Code Generation for Materials |access-date=April 22, 2012}} which has been noted at the LLVM project{{cite web |url=http://llvm.org/Users.html |title=LLVM Users, Open Source Projects |access-date=January 9, 2010 |archive-date=February 23, 2021 |archive-url=https://web.archive.org/web/20210223230411/https://llvm.org/Users.html |url-status=live }} due to his synthesis of the ioquake3 engine, ray-tracing rendering technique, and LLVM.

The project has since received forks, such as Quake3e,{{cite web|url=https://www.phoronix.com/news/V3DV-More-Backend-Opts|title=V3DV Vulkan Driver Enjoys More Optimizations To Help The Raspberry Pi 4|first=Michael|last=Larabel|date=March 16, 2021|access-date=August 9, 2024|website=Phoronix}} Spearmint,{{cite web|url=https://www.phoronix.com/news/Spearmint-1.0-Next-Month|title=Ioquake3-Derived Spearmint 1.0 Engine Coming Next Month, But Ceasing Development|first=Michael|last=Larabel|date=September 19, 2018|access-date=August 9, 2024|website=Phoronix}} and vkQuake3.{{cite web|url=https://www.tomshardware.com/news/nvidia-engineer-vulkan-driver-raspberry-pi-quake-iii-100-fps|title=Nvidia Engineer's Vulkan Driver For Raspberry Pi Runs Quake III Over 100 FPS at 720p|first=Zhiye|last=Liu|date=June 20, 2020|access-date=July 20, 2024|website=Tom's Hardware}}{{cite web|url=https://www.phoronix.com/news/Gfx-rs-Portability-vkQuake|title=The Rust Vulkan "Gfx-rs" Portability Layer Can Now Run vkQuake3|first=Michael|last=Larabel|date=March 27, 2019|access-date=July 21, 2024|website=Phoronix}}

Other derived engines include the Daemon engine used by Unvanquished,{{cite web|url=http://www.phoronix.com/scan.php?page=news_item&px=MTEzMTM|title=Unvanquished: A Very Promising Open-Source Game|date=July 1, 2012|access-date=July 7, 2015|website=Phoronix|author=Michael Larrabel}}{{cite web|url=https://www.phoronix.com/news/MTQ2MjM|title=Unvanquished Is Rewriting, Modernizing The Quake 3 Engine|first=Michael|last=Larabel|date=September 15, 2013|access-date=August 9, 2024|website=Phoronix}}{{cite web|url=https://www.phoronix.com/news/Daemon-Easy-For-Others|title=Unvanquished Makes Its Open-Source Engine Easy For Other Games|first=Michael|last=Larabel|date=August 3, 2015|access-date=August 9, 2024|website=Phoronix}} as well as competing source ports like XreaL,{{cite web|url=https://www.phoronix.com/review/xreal_engine|title=XreaL: The Most Advanced Open-Source Game Engine?|first=Michael|last=Larabel|date=April 9, 2009|access-date=July 21, 2024|website=Phoronix}}{{cite web|url=https://www.phoronix.com/news/MTI0MDE|title=The State Of XReaL, OpenWolf Game Engines|first=Michael|last=Larabel|date=December 1, 2012|access-date=July 21, 2024|website=Phoronix}} Kwaak3 for Android{{cite web|url=https://techcrunch.com/2010/02/25/quake-3-android-style/|title=Quake 3, Android style|date=February 25, 2010|access-date=July 21, 2024|website=TechCrunch}}{{cite web|url=https://www.phoronix.com/news/ODAwOA|title=Quake 3 Comes To Google's Android Platform|first=Michael|last=Larabel|date=February 23, 2010|access-date=July 21, 2024|website=Phoronix}}{{cite web|url=https://www.pocketgamer.com/quake-iii/quake-3-ported-to-android/|title=Quake 3 ported to Android|first=Spanner|last=Spencer|date=February 26, 2010|access-date=July 21, 2024|website=Pocket Gamer}}{{cite web|url=https://www.engadget.com/2010-02-25-quake-3-ported-to-android-shows-off-droids-graphical-prowess.html|title=Quake 3 ported to Android, shows off Droid's graphical prowess (video)|first=Vlad|last=Savov|date=February 25, 2010|access-date=July 21, 2024|website=Engadget}}{{cite web|url=https://phandroid.com/2010/02/24/quake-3-successfully-ported-to-android-2-0-devices/|title=Quake 3 Successfully Ported To Android 2.0 Devices|first=Anthony|last=Perez|date=February 24, 2010|access-date=July 21, 2024|website=Phanadroid}}{{cite web|url=https://phandroid.com/2010/05/10/quake-3-finally-ported-to-the-nexus-one/|title=Quake 3 Finally Ported To The Nexus One|first=Quentyn|last=Kennemer|date=May 10, 2010|access-date=July 21, 2024|website=Phanadroid}} and Quake-3-Android-Port-QIII4A.{{cite web|url=https://www.xda-developers.com/how-to-play-return-to-castle-wolfenstein-doom-3-and-quake-3-with-arena-on-your-android-device/|title=How to play Return to Castle Wolfenstein, Doom 3, and Quake 3 (with Arena) on your Android device|first=Mishaal|last=Rahman|date=May 16, 2017|access-date=July 21, 2024|website=XDA Developers}}

Games

class="wikitable sortable"

!Year

!Title

!Developer

!Notes

1999

| Quake III Arena

| id Software

|

rowspan="4" | 2000

| Heavy Metal: F.A.K.K. 2

| Ritual Entertainment

| ÜberTools

Star Trek: Voyager – Elite Force

| Raven Software

|

American McGee's Alice

| Rogue Entertainment

| ÜberTools

Quake III: Team Arena

| id Software

|

rowspan="3" | 2001

|Quake III Revolution

| Bullfrog Productions

|

James Bond 007: Agent Under Fire

| EA Redwood Shores

| ÜberTools

Return to Castle Wolfenstein

| Gray Matter Studios {{Small|{{Abbr|(SP)|Single-player}}}}
Nerve Software {{Small|{{Abbr|(MP)|Multiplayer}}}}

|

rowspan="4" | 2002

| Medal of Honor: Allied Assault

| 2015, Inc.

| ÜberTools

Star Wars Jedi Knight II: Jedi Outcast

| Raven Software

|

Soldier of Fortune II: Double Helix

| Raven Software

|

Medal of Honor: Allied Assault - Spearhead

| EA Los Angeles

| ÜberTools

rowspan="5" | 2003

| Wolfenstein: Enemy Territory

| Splash Damage

|

Star Trek: Elite Force II

| Ritual Entertainment

| ÜberTools

Medal of Honor: Allied Assault - Breakthrough

| TKO Software

| ÜberTools

Star Wars Jedi Knight: Jedi Academy

| Raven Software

|

Call of Duty

| Infinity Ward

| ÜberTools

rowspan="3" |2004

| James Bond 007: Everything or Nothing

| EA Redwood Shores

| ÜberTools

Call of Duty: United Offensive

| Gray Matter Studios
Treyarch

| ÜberTools

Medal of Honor: Pacific Assault

| EA Los Angeles

| ÜberTools

2008

| Iron Grip: Warlord

| ISOTX

|

rowspan=2| 2009

|Dark Salvation

| Mangled Eye Studios

|

Call of Duty Classic

| Infinity Ward

| ÜberTools

2010

| Quake Live

| id Software

|

rowspan="2" |Cancelled

|Severity

| Escalation Studios

|

Trinity: The Shatter Effect

| Gray Matter Studios

|

See also

{{Portal|Free and open-source software|Video games}}

References

{{Reflist}}