id Tech 4
|Id Tech 4|
|Microsoft Windows, macOS, GNU/Linux, Xbox 360 and PlayStation 3|
|Awards | Changelog | Compatibility | Covers |
Credits | DLC | Help | Patches | Ratings
Reviews | Screenshots | Videos
id Tech 4, popularly known as the DOOM 3 engine, is a computer game engine developed by id Software and first used in the PC game DOOM 3. The engine was designed by John Carmack, who also created previous engines such as those for DOOM and Quake, which are also widely recognized as marking significant advances in the field. This OpenGL rendered engine has been used in games like DOOM 3, Enemy Territory: Quake Wars, Wolfenstein and Brink, with the engine also having been used on Microsoft Windows, macOS, GNU/Linux, Xbox 360, and PlayStation 3 under a proprietary license, although the engine later became available under the GNU General Public License when Timothee 'TTimo' Besset uploaded the DOOM 3 source code onto GitHub on November 22, 2011.
- 1 History
- 2 Features
- 3 Games using or licensing id Tech 4
- 4 See also
- 5 References
- 6 External Links
History[edit | edit source]
id Tech 4 began as an enhancement to id Tech 3. During development, it was initially just a complete rewrite of the engine's renderer, while still retaining other subsystems, such as file access, and memory management. The decision to switch from C to the C++ programming language, necessitated a restructuring and rewrite of the rest of the engine; today, while id Tech 4 contains code from id Tech 3, much of it has been rewritten.
At the QuakeCon 2007, John Carmack, the lead graphics engine developer at id, said to LinuxGames: "I mean, I won't commit to a date, but the Doom 3 stuff will be open source". And like its predecessors, John Carmack has said that id Tech 4 will be released as open source.
Hardware[edit | edit source]
The original requirement of id Tech 4 was that it needed a high-end graphics processing unit (GPU) with fully programmable vertex and pixel shaders, such as the GeForce 3 or Radeon 8500, with at least 64 MiB of VRAM. By E3 2002, the recommended GPU was "100% DirectX 9.0b compatible", such as the Radeon 9700 with 128 MB of VRAM. While the Radeon 9700's DirectX 9.0 features are not necessary to render the game, its advanced architecture, 256-bit memory bus, and efficiency were needed to run DOOM 3 at high detail and playable speed.
id Tech 4 resulted in the obsolescence of DirectX 7.0 graphics chips such as the widespread GeForce 2 and Radeon 7200, as well as older chipsets such as RIVA TNT2 and Rage 128, and software rendering (with an integrated Intel GMA). Until the advent of id Tech 4, a powerful CPU was able to somewhat compensate for an older video card. While John Carmack initially warned gamers not to purchase the GeForce 4 MX (which casual consumers often confused with the DirectX 8.0-capable GeForce 4 Ti, though it was at best an improved GeForce 2), its somewhat widespread adoption compelled id Software to add it to the list of supported cards. There have been cases of enthusiasts forcing DOOM 3 to run on unsupported graphics chips, such as the long-obsolete Voodoo2, but these are unable to render the per-pixel lighting and bump mapping.
Features[edit | edit source]
Graphics[edit | edit source]
id Tech 4 added several new graphical features absent in its predecessor, id Tech 3. These included bump mapping, normal mapping, and specular highlighting. More features were added in the development of successive games, and in yet unreleased games using id Tech 4, new features have been added or are planned to be added soon.
The primary innovation of id Tech 4 was its use of entirely dynamic per-pixel lighting, whereas previously, 3D engines had relied primarily on pre-calculated per-vertex lighting or lightmaps and Gouraud shading. While dynamic effects had been available before (such as dynamic moving lights), this effect merely changed the brightness of the vertices of the polygon, with the pixel's colors simply being interpolated between the three vertex colors of its polygon.
This fully real-time approach used in Doom 3, combined with the use of shadow volumes permitted more realistic lighting and shadows than in the previous generation of id's engines. The method used to create the shadow volumes is the subject of a patent by Creative, which Creative granted id permission to use in the Doom 3 engine, in exchange for supporting Creative's EAX advanced sound technologies.
The models used in idTech 4 engine games are animated using skeletal animation. The engine can blend multiple animations together, to produce a skin that moves correctly for those animations. Because this is CPU intensive, id did some work optimizing this using the use of Intel's Streaming SIMD Extensions to gain the best possible performance.
MegaTexture rendering technology[edit | edit source]
The original version of the id Tech 4 engine was criticized for its perceived inability to handle large outdoor areas. The MegaTexture technology not only removed this issue by introducing a means to create expansive outdoor scenes but also made the new version as the best game engine to handle the outdoor areas, as well. By painting a single massive texture (32,768×32,768 pixels, though it has been extended to larger dimensions in recent versions of the MegaTexture technology) covering the entire polygon map and highly detailed terrain, the desired effects can be achieved. The MegaTexture can also store physical information about the terrain such as the amount of traction in certain areas or indicate what sound effect should be played when walking over specific parts of the map. i.e. walking on rock will sound different from walking on grass. It is expected that this will result in a considerably more detailed scene than the majority of existing technologies, using tiled textures, allow. Currently, the only game that utilizes MegaTexture based on the Tech 4 engine is Enemy Territory: Quake Wars.
Rendering Techniques used in id Tech 4[edit | edit source]
Scripting[edit | edit source]
id Tech 4 has a comprehensive scripting language which can be used when creating mods, and is used in Doom 3 to control monsters, weapons, and map events. This scripting language is similar to C++.
In addition to the main scripting language, idTech 4 also has another scripting language that is used for GUIs - both the menus and HUD, and also for GUIs embedded into the game world. These in-game GUIs are sufficiently powerful that you can, for example, run another game such as Doom 1 within the game-world.
Sound[edit | edit source]
As a result of the agreement with Creative regarding the patent on shadow volumes, the idTech 4 engine supports OpenAL, including the Creative Technology specific EAX extensions. The work to include OpenAL support was done by Creative Technology, not by id themselves.
Networking[edit | edit source]
Initially, the idTech 4 engine was planned to have a peer-to-peer networking model, however this was changed to a more traditional client–server model. This part of the engine works in a fundamentally similar way to the idTech 3 equivalent, however idTech 4 exposes a lot more of the network protocol to mod developers.
Games using or licensing id Tech 4[edit | edit source]
Unlike the preceding and widely-used id Tech 3 (also known as the Quake III Arena engine) and id Tech 2 (also known as the Quake II engine), id Tech 4 has had less success in licensing to third parties. This is especially apparent in comparison to its closest competitor, the Unreal 2 engine. The unexpected long development time going into id Tech 4 did not help, as between 2002–2004, id Software had no equivalent to the Unreal 2 engine. Many who licensed the Unreal 2 engine were thus able to make the switch to Unreal 3 more easily.
While id Tech 4 had taken a new direction with its dynamic per-pixel lighting, this unconventional feature had steeper hardware requirements and was initially only useful in "spooky games" (until the MegaTexture addition), whereas an increasing number of developers preferred conventional engines that could render large outdoor areas. Also notable was id Tech 4's relative lack of downward scalability compared to competing FPS engines which would have limited its potential audience; the rival Source engine (which was developed from the previous GoldSrc engine) could still run on the older widespread DirectX 7 GPUs, albeit without shaders being used.
Games using the proprietary license[edit | edit source]
- DOOM 3 (2004) – id Software
- DOOM 3: Resurrection of Evil (2005) – Nerve Software
- Quake 4 (2005) – Raven Software
- Prey (2006) – Human Head Studios
- Enemy Territory: Quake Wars (2007) – Splash Damage
- Wolfenstein (2009) – Raven Software
- Brink (2011) – Splash Damage
Games using the open-source license[edit | edit source]
- The Dark Mod (2013) began as effort to recreate Thief: The Dark Project within Doom 3. It became a standalone game once the Doom 3 source code was released.
- Quadrilateral Cowboy (2016) – Blendo Games
See also[edit | edit source]
References[edit | edit source]
- 3D Engine: id Tech 4. Retrieved on 2008-09-24
- Id Software: Technology Licensing. Retrieved on 2008-09-24
- Q&A with John Carmack, E3 2002
- LinuxGames - Embrace your inner penguin
- .plan File for John Carmack (February 11, 2002)
- Doom 3
- John Carmack: "This sucks."
- Optimizing the Rendering Pipeline of Animated Models Using the Intel Streaming SIMD Extensions
- GameSpy: Enemy Territory: Quake Wars Preview
- Making DOOM 3 Mods : Scripts
- Making DOOM 3 Mods : GUIs
- Fully Interactive Surfaces
- Making DOOM 3 Mods : The Code
- Doom 3 multiplayer networking info
- The Code - see Game Utility Files
- Outta Dunwall: Thief Remake The Dark Mod Updates.
- The Dark Mod.
- Campbell, Colin (February 4, 2013). What the Hell is Quadrilateral Cowboy?. IGN. Retrieved on February 7, 2013
- CNN - Life after "Doom"
- Gamespy article from which some information on MegaTexture was derived
- Article detailing some features of id Tech 4
External Links[edit | edit source]
- Official MOD support website for the id Tech 4
- Technical Help Forum & Custom Content Creation
- id Tech 4 reference material
- id Tech 4's ModDB page containing mod listing, tutorials, and more