![]() | |
![]() Quake III, the engine's parent game | |
Developer(s) | id Software |
---|---|
Stable release | 1.32b / August 19, 2005; 19 years ago (2005-08-19) |
Repository | github.com/id-Software/Quake-III-Arena |
Written in | C (rewritten 14% inC++) |
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![]() |
id Tech 3, popularly known as theQuake III Arena engine, is agame engine developed byid Software for its 1999 gameQuake III Arena. It has subsequently been used in numerous games. Commercially, id Tech 3 competed with early versions of theUnreal Engine; both were widely licensed. Originally proprietary, it is nowopen-source software.
id Tech 3 is based on the earlierid Tech 2, with a large amount of the code rewritten.id Tech 4 was derived from id Tech 3, as wasInfinity Ward'sIW engine, used inCall of Duty 2 onward.
AtQuakeCon 2005,John Carmack announced that the id Tech 3source code would be released under theGNU General Public License v2.0 or later, and it was released on August 19, 2005.[1] It was originally distributed viaFTP, and later moved toGitHub.
Unlike most other game engines released at the time—including its primary competitor, theUnreal Engine—id Tech 3 requires anOpenGL-compliantgraphics accelerator to run. The engine does not include asoftware renderer, unlike id Tech 2.
id Tech 3 introducedspline-based curved surfaces in addition to planar volumes.[2]
The graphical technology of the game is based tightly around ashader system, where the appearance of many surfaces can be defined in text files referred to as shaderscripts. 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 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.[3] In order to assist calculation of these shaders,id Tech 3 implements a specificfast inverse square root function, which attracted a significant amount of attention in the game development community for its clever use of integer operations.[4][5]
Like id's earlier titlesDoom andQuake,Quake III Arena features multiplayer support via features built into its engine. id Tech 3 uses a snapshot system torelay information about game frames to the client overUDP. 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 byHuffman coding with static pre-calculated frequency data to reduce bandwidth use even further.[6]
Quake III Arena has an integrated and relatively elaboratecheat-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. Thecgame.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 withPunkBuster support, though all the hooks to it are absent from the source code release because PunkBuster isclosed source software and including support for it in the source code release would have caused any redistributors/reusers of the code to violate theGPL.[7]
Ioquake3 is agame engine project which aims to build upon the id Tech 3source code release[8][9] in order to remove bugs, clean up source code and to add more advanced graphical and audio features viaSDL andOpenAL. ioquake3 is also intended to act as a clean base package, upon which other projects may be built. The game engine supportsOgg Vorbis format and video capture of demos in.avi format.[10]
The project was started shortly after the source code release with the goal of creating abug-free, enhancedopen sourceQuake 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 whichQuake III: Arena, theTeam Arena expansion pack and all the popularmods can be played.[11][12][13][14] The project added features including builtinVoIP 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 asOpenArena (mimickingQuake III Arena),Tremulous,[15][16]Smokin' Guns,[17]Urban Terror,[18][19]Turtle Arena andWorld of Padman[20][21] and game engine projects such as efport (aStar Trek: Voyager – Elite Force Holomatch clone), ioJedi Outcast, ioJedi Academy, ioDoom3, andOpenMoHAA. The engine and its associated games have been included in severalLinux andBSD distributions. The cMod engine derived from the earlierElite Force port was used to package the 20th anniversaryfreeware release of the game forWindows andLinux.[22]
The source code for theReturn to Castle Wolfenstein andWolfenstein: Enemy Territory engines was released underGNU GPL-3.0-or-later on August 12, 2010.[23] The ioquake3 developers announced the start of other engine projects.[24]
The ioquake3 project has been used academic research such as Stanford University's Center for Computer Research in Music and Acoustics (CCRMA),[25][26] Notre Dame as the foundation for VR research,[27] and Swinburne University of Technology's Centre for Advanced Internet Architectures.[28][29] Collaborative efforts from researchers at Carnegie Mellon University and the University of Toronto use ioquake3 as a platform for their published research.[30][31] Students have used ioquake3 as the basis for advanced graphics work for their theses, such as Stephan Reiter's work[32][33] which has been noted at the LLVM project[34] due to his synthesis of the ioquake3 engine, ray-tracing rendering technique, and LLVM.
The project has since received forks, such as Quake3e,[35] Spearmint,[36] and vkQuake3.[37][38]
Other derived engines include theDaemon engine used byUnvanquished,[39][40][41] as well as competing source ports like XreaL,[42][43] Kwaak3 forAndroid[44][45][46][47][48][49] and Quake-3-Android-Port-QIII4A.[50]
{{cite web}}
: CS1 maint: bot: original URL status unknown (link)