id Tech 3, popularly known as the Quake III Arena engine, is a game engine developed by id Software for its Quake III Arena. It has been adopted by numerous games. It competed with the Unreal Engine; both engines were widely licensed.
![]() | |
![]() Quake III, the engine's parent game | |
Developer(s) | id Software |
---|---|
Stable release | 1.32b
/ August 19, 2005 |
Repository | github.com/id-Software/Quake-III-Arena |
Written in | 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 |
Predecessor | Quake II engine |
Successor | id Tech 4, IW engine |
License | GNU GPL-2.0-or-later |
Website | www![]() |
![](http://up.wiki.x.io/wikipedia/en/thumb/e/e5/EF2_Romulans.jpg/220px-EF2_Romulans.jpg)
id Tech 3 is based on id Tech 2, with a large amount of the code rewritten. Successor 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. It was originally distributed via FTP, and moved to GitHub.
Features
editGraphics
editUnlike most other game engines released at the time—including its primary competitor, the Unreal Engine—id Tech 3 requires an OpenGL-compliant graphics accelerator to run. The engine does not include a software renderer.
id Tech 3 introduced spline-based curved surfaces in addition to planar volumes, which are responsible for many of the game's surfaces.[1]
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" which 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 in each map and even on 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.[2] In order 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.[3][4]
Networking
editid 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 clients update the server with their actions and 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.[5]
Quake 3 has an integrated and relatively elaborate cheat-protection system called "pure server". Any client connecting to a pure server automatically has pure mode enabled, and 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] 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.[6]
ioquake3
editIoquake3 is a game engine project which aims to build upon the id Tech 3 source code release[7][8] 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.[9]
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.[10][11][12][13] 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,[14][15] Smokin' Guns,[16] Urban Terror,[17][18] Turtle Arena and World of Padman[19][20] 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.[21]
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.[22] The ioquake3 developers announced the start of other engine projects.[23]
The ioquake3 project has been used academic research such as Stanford University's Center for Computer Research in Music and Acoustics (CCRMA),[24][25] Notre Dame as the foundation for VR research,[26] and Swinburne University of Technology's Centre for Advanced Internet Architectures.[27][28] Collaborative efforts from researchers at Carnegie Mellon University and the University of Toronto use ioquake3 as a platform for their published research.[29][30] Students have used ioquake3 as the basis for advanced graphics work for their theses, such as Stephan Reiter's work[31][32] which has been noted at the LLVM project[33] due to his synthesis of the ioquake3 engine, ray-tracing rendering technique, and LLVM.
The project has since received forks, such as Quake3e,[34] Spearmint,[35] and vkQuake3.[36][37]
Other derived engines include the Daemon engine used by Unvanquished,[38][39][40] as well as competing source ports like XreaL,[41][42] Kwaak3 for Android[43][44][45][46][47][48] and Quake-3-Android-Port-QIII4A.[49]
Games
editSee also
editReferences
edit- ^ Jennell Jaquays, Brian Hook. "Quake III Arena Shader Manual". p. 5. Archived from the original on April 14, 2006. Retrieved October 1, 2006.
- ^ Jennell Jaquays, Brian Hook. "Quake III Arena Shader Manual". p. 1. Archived from the original on September 4, 2006. Retrieved October 1, 2006.
- ^ Eberly, David (2002). "Fast Inverse Square Root" (PDF). Geometric Tools. p. 2. Archived from the original (PDF) on February 24, 2009.
- ^ Sommefeldt, Rys (November 29, 2006). "Origin of Quake3's Fast InvSqrt()". Beyond3D. Archived from the original on February 9, 2009. Retrieved February 12, 2009.
- ^ "Book of Hook: The Quake3 Networking Model". Archived from the original on October 27, 2006. Retrieved October 1, 2006.
- ^ "Ioquake3 Help Page". Archived from the original on January 11, 2016. Retrieved February 17, 2007.
- ^ "Complete Guide: Configure and Customise ioQuake3 in Linux". Linux Today. Archived from the original on March 9, 2012. Retrieved January 3, 2010.
- ^ "Quake 3 ported to iPod Touch with tilt controls – Betanews". April 14, 2008. Retrieved January 4, 2010.
- ^ Valich, Theo (April 3, 2007). "Two free games based on the Quake 3 engine tip up". The Inquirer. Archived from the original on August 28, 2010. Retrieved January 12, 2010.
{{cite web}}
: CS1 maint: unfit URL (link) - ^ "ioquake3 for OS X – Inside Mac Games". Archived from the original on September 24, 2015. Retrieved January 3, 2010.
- ^ "ioquake3 for Mac OS X available for download – Macsimum News". Archived from the original on September 12, 2006. Retrieved January 3, 2010.
- ^ "IOQuake3 OSX : Clone de Quake III (gratuit) – MaxiApple.com". May 10, 2009. Retrieved January 3, 2010.
- ^ "IOQuake3 1.34 – Jogue Quake 3 no Mac OS X – Maclivre.net". Archived from the original on July 23, 2011. Retrieved January 4, 2010.
- ^ "Tremulous about page". Archived from the original on December 10, 2015. Retrieved November 4, 2009.
- ^ "Quake, Meet GPL; GPL, Meet Quake – Linux Journal". Archived from the original on October 1, 2020. Retrieved January 4, 2010.
- ^ "Entretien avec l'équipe de Smokin'Guns – JeuxLinux". Archived from the original on March 19, 2021. Retrieved November 4, 2009.
- ^ "Urban Terror manual". Retrieved May 18, 2015.
- ^ "Two free games based on the Quake 3 engine tip up – The Inquirer". Archived from the original on August 28, 2010. Retrieved January 4, 2010.
{{cite web}}
: CS1 maint: unfit URL (link) - ^ "A Look At Free Quake3 Engine Based Games – Slashdot". Archived from the original on March 19, 2021. Retrieved January 3, 2010.
- ^ "Comparison of free software shooters – linuX-gamers.net". Retrieved January 4, 2010.[dead link]
- ^ Procter, Lewie (August 13, 2020). "Star Trek: Voyager Elite Force Holomatch Gets Free 20th Anniversary Re-Release". wePC. Retrieved March 25, 2023.
- ^ ftp://ftp.idsoftware.com/idstuff/source/[permanent dead link]
- ^ Larabel, Michael (June 13, 2010). "id Software Open-Sources ET, RTCW". Phoronix. Archived from the original on August 16, 2010. Retrieved August 13, 2010.
- ^ "Q3osc research paper" (PDF). Archived (PDF) from the original on March 19, 2021. Retrieved January 9, 2010.
- ^ "Q3osc wiki". Retrieved January 9, 2010.
- ^ "A Survey of Collaborative Virtual Environment Technologies" (PDF). Archived from the original (PDF) on October 10, 2015. Retrieved January 9, 2010.
- ^ "L3DGEWorld 2.1 Input & Output Specifications" (PDF). Archived (PDF) from the original on October 5, 2011. Retrieved January 9, 2010.
- ^ "L3DGEWorld 2.3". Archived from the original on October 5, 2011. Retrieved January 9, 2010.
- ^ "VMM-Independent Graphics Acceleration" (PDF). Archived from the original (PDF) on October 9, 2009. Retrieved January 9, 2010.
- ^ VMM article in ACM. June 13, 2007. pp. 33–43. doi:10.1145/1254810.1254816. ISBN 978-1-59593-630-1. S2CID 655357. Retrieved January 9, 2010.
- ^ "Real-time Ray Tracing of Dynamic Scenes". Retrieved April 22, 2012.
- ^ "Run-Time Code Generation for Materials". Retrieved April 22, 2012.
- ^ "LLVM Users, Open Source Projects". Archived from the original on February 23, 2021. Retrieved January 9, 2010.
- ^ Larabel, Michael (March 16, 2021). "V3DV Vulkan Driver Enjoys More Optimizations To Help The Raspberry Pi 4". Phoronix. Retrieved August 9, 2024.
- ^ Larabel, Michael (September 19, 2018). "Ioquake3-Derived Spearmint 1.0 Engine Coming Next Month, But Ceasing Development". Phoronix. Retrieved August 9, 2024.
- ^ Liu, Zhiye (June 20, 2020). "Nvidia Engineer's Vulkan Driver For Raspberry Pi Runs Quake III Over 100 FPS at 720p". Tom's Hardware. Retrieved July 20, 2024.
- ^ Larabel, Michael (March 27, 2019). "The Rust Vulkan "Gfx-rs" Portability Layer Can Now Run vkQuake3". Phoronix. Retrieved July 21, 2024.
- ^ Michael Larrabel (July 1, 2012). "Unvanquished: A Very Promising Open-Source Game". Phoronix. Retrieved July 7, 2015.
- ^ Larabel, Michael (September 15, 2013). "Unvanquished Is Rewriting, Modernizing The Quake 3 Engine". Phoronix. Retrieved August 9, 2024.
- ^ Larabel, Michael (August 3, 2015). "Unvanquished Makes Its Open-Source Engine Easy For Other Games". Phoronix. Retrieved August 9, 2024.
- ^ Larabel, Michael (April 9, 2009). "XreaL: The Most Advanced Open-Source Game Engine?". Phoronix. Retrieved July 21, 2024.
- ^ Larabel, Michael (December 1, 2012). "The State Of XReaL, OpenWolf Game Engines". Phoronix. Retrieved July 21, 2024.
- ^ "Quake 3, Android style". TechCrunch. February 25, 2010. Retrieved July 21, 2024.
- ^ Larabel, Michael (February 23, 2010). "Quake 3 Comes To Google's Android Platform". Phoronix. Retrieved July 21, 2024.
- ^ Spencer, Spanner (February 26, 2010). "Quake 3 ported to Android". Pocket Gamer. Retrieved July 21, 2024.
- ^ Savov, Vlad (February 25, 2010). "Quake 3 ported to Android, shows off Droid's graphical prowess (video)". Engadget. Retrieved July 21, 2024.
- ^ Perez, Anthony (February 24, 2010). "Quake 3 Successfully Ported To Android 2.0 Devices". Phanadroid. Retrieved July 21, 2024.
- ^ Kennemer, Quentyn (May 10, 2010). "Quake 3 Finally Ported To The Nexus One". Phanadroid. Retrieved July 21, 2024.
- ^ Rahman, Mishaal (May 16, 2017). "How to play Return to Castle Wolfenstein, Doom 3, and Quake 3 (with Arena) on your Android device". XDA Developers. Retrieved July 21, 2024.
External links
edit- "Official id Tech 3 licensing page". Archived from the original on November 8, 2009. Retrieved July 6, 2012.
{{cite web}}
: CS1 maint: bot: original URL status unknown (link) - Original Quake III source code repository (id Tech 3) on idsoftware.com[permanent dead link]
- id's current Quake III source code repository (id Tech 3) on github.com
- ioquake3 project page, community continuation