Quake III engine
From Wikipedia, the free encyclopedia
The Quake III engine (1999) was developed by id Software and is used in many games. The first game that used the engine was Quake III Arena, released in 1999. In its heyday, it competed with the Unreal engine, although both engines were widely licensed.
The Quake III engine is a substantial improvement from the Quake and Quake II engines. Although the Quake III engine was derived from the Quake II engine, a large portion of code is new or re-written. It was succeeded by the Doom 3 engine, which was derived from the Quake III engine, but has none of the original code.
At QuakeCon 2005, John Carmack announced that the Quake III source code would be released under the GPL, and it was released on August 19, 2005. The code can be downloaded from id's ftp site.
Contents |
[edit] Engine features
The Quake III engine loads 3D models in the MD3 format. The format used vertex movements (sometimes called per-vertex animation) as opposed to skeletal animation in order to store animation. The animation features in the MD3 format are superior to those in Quake II's MD2 format because an animator is able to have numbers of key frames per second be lower and higher than 10 key frames per second. This allows for more complex animations that are less "shaky" than the models found in Quake II.
Another important feature about the MD3 format is that models are broken up into three different parts which are anchored to each other. Typically, this is used to separate the head, torso and legs so that each part can move independently for sake of procedural animation. Each part of the model has its own set of textures.
The character models are lit and shaded using gouraud shading while the levels (stored in the BSP format) are lit either with lightmaps or gouraud shading depending on the user's preference. The engine is able to take colored lights from the lightgrid and apply them to the models, resulting in a lighting quality that was, for its time, very advanced.
The engine is capable of three different kinds of shadows. One just places a circle with faded edges at the characters' feet, while the other two modes project an accurate polygonal shadow across the floor. The difference between the latter two modes is one's reliance on opaque, solid black shadows while the other mode attempts (with mixed success) to project depth-pass stencil shadow volume shadows in a medium-transparent black.
Other features included a high-level shader language and a method for rendering fog.
In the GPLed version of the source code, most of the code dealing with the MD4 skeletal animation files was missing. It is presumed that id simply never finished the format, although almost all licensees derived their own skeletal animation systems from what was present. Ritual Entertainment did this for use in the game, Heavy Metal: F.A.K.K.², the SDK to which formed the basis of MD4 support completed by someone who used the pseudonym Gongo. (More information about the file format can be found at his site)
[edit] Uses of the engine
[edit] Projects initialized since source code was made GPL
- Evolution Q3 and Fortress Evolution - Combines ioquake3 features with the graphical niceness of XreaL into one package.
- ioquake3 - A project to remove bugs, clean up source code and to add more advanced graphical and audio features via SDL and OpenAL, and to act as a clean base package to build other projects on.
- Justin Thyme's CleanQ3 - A project to provide a clean, bug-free code base for other programmers to build off of.
- Gongo's MD4 Integration - A project to better support the MD4 file format within the Quake III engine.
- Quake 3 Arena CE - A port of Quake III Arena to the Pocket PC.
- Quake III - Cell Shading (sic) - An engine modification adding cel-shading capabilities.
- Quake 3 SDL Port - A port of Quake III to the SDL graphics and platform library for better portability.
- Tremulous - An open-source sci-fi computer game built upon the ioquake3 source code.
- Trepidation - An open source first person shooter based on the ioquake3 engine.
- XreaL - Adding many advanced graphical features.
Related:
- OpenArena - A related project to create free content under the GPL that can be used by anyone to play Quake III with the GPLed source code.
[edit] Proprietary game uses
[edit] Games using the Quake III Arena engine
- Quake III Arena (1999) — id Software
- Star Trek: Voyager Elite Force (2000) — Raven Software
- American McGee's Alice (2000) — Rogue Entertainment
- Heavy Metal: F.A.K.K.² (2000) — Ritual Entertainment
- James Bond 007: Agent Under Fire (2001) — EA Los Angeles (this was to be a PS2 and Windows version of the PlayStation and N64 game The World is Not Enough that was ultimately cancelled; it is based on the modified FAKK2 code base)
- Medal of Honor: Allied Assault (2002) — 2015, Inc. (based on the modified FAKK2 code base)
- Medal of Honor: Allied Assault - Spearhead (2003) — EA Los Angeles
- Medal of Honor: Allied Assault - Breakthrough (2003) — TKO Software
- Quake III: Team Arena (2000) — id Software
- Return to Castle Wolfenstein (2001) — Gray Matter Interactive
- Wolfenstein: Enemy Territory (2003) — Splash Damage
- Soldier of Fortune II: Double Helix (2002) — Raven Software
- Star Wars Jedi Knight II: Jedi Outcast (2002) — Raven Software
- Star Wars Jedi Knight: Jedi Academy (2003) — Raven Software
- Star Trek: Elite Force II (2003) — Ritual Entertainment
- Call of Duty (2003) — Infinity Ward
- Call of Duty: United Offensive (2004) — Gray Matter Interactive
- Call of Duty 2 (2005) — Infinity Ward
Games with the Q3 engine are usually recognized by a console appearing before the game runs.