Id Tech 4

id Tech 4, popularly known as the Doom 3 engine, is a game engine developed by id Software and first used in the video 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-based game engine has also been used in Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein and Brink.

History
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.

On November 22, 2011, Carmack released the Doom 3 source code on Github. The source does not include any of the 'Carmack's Reverse' code. According to Carmack, minor tweaks were made to the code to avoid any infringement.

Hardware
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. The "Ultra" graphics mode included in Doom 3 would not even run on the current popular graphics cards available in 2004, requiring at least 512 MB of video memory to display properly and at playable speeds, meaning that it was basically unusable at the time of release.

id Tech 4 resulted in the obsolescence of DirectX 7 graphics chips such as the widespread GeForce 2 and Radeon 7200, as well as older chipsets. Until the advent of id Tech 4, a powerful CPU was able to somewhat compensate for an older video card. There have been cases of enthusiasts forcing Doom 3 to run on unsupported graphics chips, such as the long obsolete Voodoo 2, but these are unable to render the per-pixel lighting and bump mapping.

Graphics
Id Tech 4 added several new graphical features absent in its predecessor, id Tech 3. These included, , and ing. 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, whereas previously, 3D engines had relied primarily on pre-calculated per-vertex lighting or s and. 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 realtime 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 id Tech 4 engine games are animated using. 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 optimising this by using Intel's Streaming SIMD Extensions (SSE).

MegaTexture rendering technology
The original version of the id Tech 4 engine was designed for somewhat dark environments so it was criticized for its perceived inability to handle extremely large day time 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. By painting a single massive texture (32 768×32 768 pixels or more) 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 .

Scripting
id Tech 4 has a comprehensive 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.

Despite this additional level of scripting, it is also possible to create mods using C++ to build native code.

Sound
As a result of the agreement with Creative regarding the patent on shadow volumes, the id Tech 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
The engine uses a traditional client–server model. Initially it was planned to have a peer-to-peer networking model. This part of the engine works in a fundamentally similar way to the id Tech 3 equivalent, however id Tech 4 exposes a lot more of the network protocol to mod developers.

Although Doom 3 only supports 4 players, the id Tech 4 engine can be used with more players than this, with ' and ' both supporting significantly more players.

iodoom3
iodoom3 is a game engine project which intends to take advantage of building on id Software's id tech 4 source code release. A followup to, the project was started shortly after the source code release with the goal of creating a bug-free, enhanced open source id tech 4 source code distribution upon which new games and projects can be based.

Games using the engine
Unlike the preceding and widely used id Tech 3 (' engine) and id Tech 2 (' engine), id Tech 4 has had less success in licensing to third parties. This is especially apparent in comparison to its closest contemporaries, Unreal Engine 2 (2002) and (2006) from. id Software was unwilling to license their newest engine before its "parent game" Doom 3 was completed. However the unexpected long development time going into Doom 3 from 2002-04 meant that they could not put up competition to Epic Games's Unreal Engine 2 during that period. Many who licensed Unreal Engine 2 were thus able to make the switch to Unreal Engine 3 more easily.

While id Tech 4 had taken a new direction with its dynamic, this unconventional feature had steeper hardware requirements and was initially only useful in "spooky games" (until the 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; id Tech 4 generally required a DirectX 8.0 compliant GPU such as a GeForce 3; the rival Source engine could still run on the older widespread DirectX 7 GPUs (albeit without shaders being used).

Games using a proprietary license

 * Doom 3 (2004) – id Software
 * Doom 3: Resurrection of Evil (2005) – Nerve Software
 *  (2005) – Raven Software
 * Prey (2006) –
 *  (2007) –
 * Wolfenstein (2009) – Raven Software
 * Brink (2011) –
 *  (2013) -
 *  (TBA) –