Id Tech 4

Last updated

id Tech 4
Developer(s) id Software
Repository github.com/id-Software/DOOM-3-BFG
Written in C++ [1]
Platform Microsoft Windows, OS X, Linux, PlayStation 3, PlayStation 4, Xbox, Xbox 360, Xbox One, Nintendo Switch, Nvidia Shield [2]
Predecessor id Tech 3
Successor id Tech 5
License GNU GPL-3.0-or-later
Website github.com/id-Software/DOOM-3-BFG   OOjs UI icon edit-ltr-progressive.svg

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 game engines, such as those for Doom and Quake , which are widely recognized as 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 . id Tech 4 is licensed under the terms of the GNU General Public License v3.0 or later.

Contents

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. [3]

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. [4]

At the QuakeCon 2009, Carmack said that he planned to petition ZeniMax Media to release the id Tech 4 source upon the release of Rage . [5] As part of his keynote for QuakeCon 2011, he confirmed that the source code to Doom 3 would be out by the end of the year, after the release of Rage. [6]

On November 16, 2011, Carmack announced on Twitter that he's writing new code for Doom 3's open source release, because "lawyers are still skittish about the patent issue around 'Carmack's reverse'". [7] This refers to an implementation of stencil buffered shadow volume algorithms.

On November 22, 2011, Carmack released the Doom 3 source code under GNU GPL-3.0-or-later on GitHub. [8] 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. [9]

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, such as the Nvidia GeForce 3 or ATI Radeon 8500, with at least 64 MB 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. [10] The "Ultra" graphics mode included in Doom 3 would not even run on high end graphics cards in 2004, as the engine required at least 512 MB of video memory to display properly and at playable speeds. [11]

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 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 [12] (which casual consumers often confused with the DirectX 8 capable GeForce 4 Ti, though it was at best an improved GeForce 2)[ citation needed ], 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 Voodoo 2, but these are unable to render the per-pixel lighting and bump mapping. [13]

Features

The shadowing effects of the unified lighting and shadowing engine are shown on the face and body of the zombies in this screenshot of Doom 3. Doom3shadows2.jpg
The shadowing effects of the unified lighting and shadowing engine are shown on the face and body of the zombies in this screenshot of Doom 3.

Graphics

Id Tech 4 added several new graphical features absent in its predecessor, id Tech 3. These included normal mapping and specular highlighting. More features were added in the development of successive games.

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 realtime approach used in Doom 3, combined with the use of shadow volumes permitted more realistic lighting and shadows [14] 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. [15]

The models used in id Tech 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 by using Intel's Streaming SIMD Extensions (SSE). [16]

MegaTexture rendering technology

The original version of the id Tech 4 engine was designed for somewhat dark environments and was criticized for its perceived inability to handle extremely large daytime outdoor areas. The MegaTexture technology tackled this issue by introducing a means to create expansive outdoor scenes. 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. [17] The first game utilizing MegaTexture is Enemy Territory: Quake Wars , based on the Tech 4 engine. All id Tech 5 and id Tech 6 games use MegaTexture, with the exception of The Evil Within which uses a new renderer. [18] [19] Brink , which uses a heavily modified version of id Tech 4 also uses virtual texturing. [20] [21] While the implementation is different from MegaTexture, it was inspired by it. [22] [23]

Rendering techniques used in id Tech 4

Scripting

id Tech 4 has a comprehensive scripting language that 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++. [25]

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. [26] These in-game GUIs are sufficiently powerful that you can, for example, run another game such as the original Doom within the game-world. [27]

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

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. [29]

Networking

The engine uses a traditional client–server model. Initially it was planned to have a peer-to-peer networking model. [30] 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. [28]

Although Doom 3 only supports 4 players (and 8 in the Resurrection of Evil expansion pack), the id Tech 4 engine can be used with more players than this, with Quake 4 and Enemy Territory: Quake Wars both supporting significantly more players.

Games using id Tech 4

Prey utilized a modified version of id Tech 4 that allowed for effects such as portals, variable gravity, and wall walking. Prey-Wall-Walking.png
Prey utilized a modified version of id Tech 4 that allowed for effects such as portals, variable gravity, and wall walking.

Compared to the preceding and widely used id Tech 3 ( Quake III Arena engine) and id Tech 2 ( Quake II engine), id Tech 4 has had less success in licensing to third parties. [31] This is especially apparent in comparison to its closest contemporaries, Unreal Engine 2 (2002) and Unreal Engine 3 (2006) from Epic Games. [32] id Software was unwilling to license their newest engine before its "parent game" Doom 3 was completed. However, the unexpectedly 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 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; id Tech 4 generally required a DirectX 8.0 compliant GPU such as a GeForce 3. The rival Source engine (developed from the previous GoldSrc engine, itself derived from id Tech 2) could still run on the older widespread DirectX 7 GPUs albeit without shaders being used.

Games using a proprietary license

YearTitleDeveloper
2004 Doom 3 id Software
2005 Doom 3: Resurrection of Evil Nerve Software
Quake 4 Raven Software
2006 Prey Human Head Studios
2007 Enemy Territory: Quake Wars Splash Damage
2009 Wolfenstein Raven Software
2011 Brink Splash Damage
2012 Doom 3: BFG Edition id Software
CancelledQuake 4: Awakening Ritual Entertainment
SiN 2 [33]
Prey 2 Human Head Studios

Games using an open source license

See also

Related Research Articles

id Software American video game developer

id Software LLC is an American video game developer based in Richardson, Texas. It was founded on February 1, 1991, by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack.

QuakeC is a compiled language developed in 1996 by John Carmack of id Software to program parts of the video game Quake. Using QuakeC, a programmer is able to customize Quake to great extents by adding weapons, changing game logic and physics, and programming complex scenarios. It can be used to control many aspects of the game itself, such as parts of the AI, triggers, or changes in the level. The Quake engine was the only game engine to use QuakeC. Following engines used DLL game modules for customization written in C, and C++ from id Tech 4 on.

<i>Quake III Arena</i> 1999 video game

Quake III Arena is a 1999 multiplayer-focused first-person shooter developed by id Software. The third installment of the Quake series, Arena differs from previous games by excluding a story-based single-player mode and focusing primarily on multiplayer gameplay. The single-player mode is played against computer-controlled bots. It features music composed by Sonic Mayhem and Front Line Assembly founder Bill Leeb.

<i>Quake</i> (video game) 1996 video game

Quake is a first-person shooter game developed by id Software and published by GT Interactive. The first game in the Quake series, it was originally released for MS-DOS, Microsoft Windows and Linux in 1996, followed by Mac OS and Sega Saturn in 1997 and Nintendo 64 in 1998. In the game, players must find their way through various maze-like, medieval environments while battling monsters using an array of weaponry. Quake takes inspiration from gothic fiction and the works of H. P. Lovecraft.

<i>Wolfenstein 3D</i> 1992 video game

Wolfenstein 3D is a first-person shooter video game developed by id Software and published by Apogee Software and FormGen. Originally released on May 5, 1992, for DOS, it was inspired by the 1981 Muse Software video game Castle Wolfenstein, and is the third installment in the Wolfenstein series. In Wolfenstein 3D, the player assumes the role of Allied spy William "B.J." Blazkowicz during World War II as he escapes from the Nazi German prison Castle Wolfenstein and carries out a series of crucial missions against the Nazis. The player traverses each of the game's levels to find an elevator to the next level or kill a final boss, fighting Nazi soldiers, dogs, and other enemies with a knife and a variety of guns.

<span class="mw-page-title-main">John Carmack</span> American computer programmer and video game developer

John D. Carmack II is an American computer programmer and video game developer. He co-founded the video game company id Software and was the lead programmer of its 1990s games Commander Keen, Wolfenstein 3D, Doom, Quake, and their sequels. Carmack made innovations in 3D computer graphics, such as his Carmack's Reverse algorithm for shadow volumes.

<i>Doom 3</i> 2004 video game

Doom 3 is a 2004 survival horror first-person shooter video game developed by id Software and published by Activision. Doom 3 was originally released for Microsoft Windows on August 3, 2004, adapted for Linux later that year, and ported by Aspyr Media for Mac OS X in 2005. Developer Vicarious Visions ported the game to the Xbox, releasing it worldwide on April 4, 2005.

id Tech 1, also known as the Doom engine, is the game engine used in the id Software video games Doom and Doom II: Hell on Earth. It is also used in Heretic, Hexen: Beyond Heretic, Strife: Quest for the Sigil, Hacx: Twitch 'n Kill, Freedoom, and other games produced by licensees. It was created by John Carmack, with auxiliary functions written by Mike Abrash, John Romero, Dave Taylor, and Paul Radek. Originally developed on NeXT computers, it was ported to MS-DOS and compatible operating systems for Doom's initial release and was later ported to several game consoles and operating systems.

<span class="mw-page-title-main">Unreal Engine</span> Video game engine developed by Epic Games

Unreal Engine (UE) is a series of 3D computer graphics game engines developed by Epic Games, first showcased in the 1998 first-person shooter video game Unreal. Initially developed for PC first-person shooters, it has since been used in a variety of genres of games and has been adopted by other industries, most notably the film and television industry. Unreal Engine is written in C++ and features a high degree of portability, supporting a wide range of desktop, mobile, console, and virtual reality platforms.

Doom WAD is the default format of package files for the video game Doom and its sequel Doom II: Hell on Earth, that contain sprites, levels, and game data. WAD stands for Where's All the Data? Immediately after its release in 1993, Doom attracted a sizeable following of players who created their own mods for WAD files—packages containing new levels or graphics—and played a vital part in spawning the mod-making culture which is now commonplace for first-person shooter games. Thousands of WADs have been created for Doom, ranging from single custom levels to full original games; most of these can be freely downloaded over the Internet. Several WADs have also been released commercially, and for some people the WAD-making hobby became a gateway to a professional career as a level designer.

A first-person shooter engine is a video game engine specialized for simulating 3D environments for use in a first-person shooter video game. First-person refers to the view where the players see the world from the eyes of their characters. Shooter refers to games which revolve primarily around wielding firearms and killing other entities in the game world, either non-player characters or other players.

<i>Quake</i> engine Video game engine developed by id Software

The Quake engine is the game engine developed by id Software to power their 1996 video game Quake. It featured true 3D real-time rendering. Since 2012, it has been licensed under the terms of GNU General Public License v2.0 or later.

id Tech 3 Video game engine

id Tech 3, popularly known as the Quake III Arena engine, is a game engine developed by id Software for their video game Quake III Arena. It has been adopted by numerous games. During its time, it competed with the Unreal Engine; both engines were widely licensed.

<i>Enemy Territory: Quake Wars</i> 2007 video game

Enemy Territory: Quake Wars is a first-person shooter video game developed by Splash Damage and published by Activision for Microsoft Windows, Linux, Mac OS X, PlayStation 3 and Xbox 360. The game was first released in the PAL region on September 28, 2007, and later in North America on October 2. It is a spinoff of the Quake series and the successor to 2003's Wolfenstein: Enemy Territory.

<i>Alien Arena</i> 2004 video game

Alien Arena is an open-source, stand-alone first-person shooter video game. Begun by COR Entertainment in 2004, the game combines a 1950s-era sci-fi atmosphere with gameplay similar to the Quake, Doom, and Unreal Tournament series. Alien Arena focuses mainly on online multiplayer action, although it does contain single-player matches against bots.

id Tech 5 Video game engine

id Tech 5 is a proprietary game engine developed by id Software. It followed its predecessors, id Tech 1, 2, 3 and 4, all of which had subsequently been published under the GNU General Public License. It was seen as a major advancement over id Tech 4. The engine was first demonstrated at the WWDC 2007 by John D. Carmack on an eight-core computer; however, the demo used only a single core with single-threaded OpenGL implementation running on a 512 MB 7000 class Quadro video card. id Tech 5 was first used in the video game Rage, followed by Wolfenstein: The New Order, The Evil Within and Wolfenstein: The Old Blood. It was followed up by id Tech 6.

id Tech Series of video game engines

id Tech is a series of separate game engines designed and developed by id Software. Prior to the presentation of the id Tech 5-based game Rage in 2011, the engines lacked official designation and as such were simply referred to as the Doom and Quake engines, from the name of the main game series the engines had been developed for. "id Tech" has been released as free software under the GNU General Public License. id Tech versions 0 to 3 were released under GPL-2.0-or-later. id Tech versions 3.5 to 4.5 were released under GPL-3.0-or-later. id Tech 5 to 7 are proprietary, with id Tech 7 currently being the latest utilized engine.

<i>Doom</i> (franchise) Video game franchise

Doom is an American media franchise created by John Carmack, John Romero, Adrian Carmack, Kevin Cloud, and Tom Hall. The series usually focuses on the exploits of an unnamed space marine operating under the auspices of the Union Aerospace Corporation (UAC), who fights hordes of demons and the undead to save Earth from an apocalyptic invasion.

id Tech 6 is a multiplatform game engine developed by id Software. It is the successor to id Tech 5 and was first used to create the 2016 video game Doom. Internally, the development team also used the codename id Tech 666 to refer to the engine. The PC version of the engine is based on Vulkan API and OpenGL API.

id Tech 7 is a multiplatform proprietary game engine developed by id Software. As part of the id Tech series of game engines, it is the successor to id Tech 6. The software was first demonstrated at QuakeCon 2018 as part of the id Software announcement of Doom Eternal.

References

  1. "id Tech 4 Source Code". GitHub . March 30, 2020. Archived from the original on April 18, 2019. Retrieved September 11, 2015.
  2. "3D Engine: id Tech 4". Archived from the original on January 28, 2012. Retrieved September 24, 2008.
  3. "Q&A with John Carmack, E3 2002". Archived from the original on September 29, 2009.
  4. Carmack, John (August 7, 2007). "I mean I won't commit to a date, but theDoom 3 stuff will be open source". LinuxGames.com. Archived from the original on October 3, 2008.
  5. "The John Carmack Keynote: Liveblogging QuakeCon". August 13, 2009. Archived from the original on August 14, 2009. Retrieved August 14, 2009.
  6. "Id Software will release the Doom 3 source code". The Inquirer. August 5, 2011. Archived from the original on August 7, 2011. Retrieved August 23, 2015.{{cite web}}: CS1 maint: unfit URL (link)
  7. "John Carmack's Twitter status update". November 16, 2011. Archived from the original on August 26, 2021. Retrieved November 18, 2011.
  8. "Doom 3 Source on GitHub". GitHub . November 22, 2011. Archived from the original on July 21, 2013. Retrieved November 22, 2011.
  9. "John Carmack tweets about code infringement work around". November 17, 2011. Archived from the original on May 16, 2017. Retrieved November 22, 2011.
  10. "ATI's Radeon 9700 Takes Performance Lead". Archived from the original on September 21, 2009. Retrieved September 25, 2012.
  11. Hargosh, Todd. "Doom is a boon". Game Industry News. Archived from the original on July 27, 2011. Retrieved June 11, 2011.
  12. ".plan File for John Carmack - Blue's News". bluesnews.com. Archived from the original on March 3, 2016. Retrieved May 25, 2016.
  13. "Doom3 + Voodoo2_Patch_v1_0". Archived from the original on December 5, 2008. Retrieved September 25, 2012.
  14. "Doom 3". Pricenfees. March 2, 2005. Archived from the original on August 13, 2018. Retrieved May 25, 2016.
  15. "John Carmack: "This sucks."". Ars Technica. July 28, 2004. Archived from the original on January 26, 2012. Retrieved May 25, 2016.
  16. "Optimizing the Rendering Pipeline of Animated Models Using the Intel Streaming SIMD Extensions". intel.com. Archived from the original on June 24, 2016. Retrieved May 25, 2016.
  17. "GameSpy: Enemy Territory: Quake Wars - Page 1". gamespy.com. Archived from the original on August 13, 2018. Retrieved May 25, 2016.
  18. "John Carmack on Twitter". Twitter. Archived from the original on November 14, 2019. Retrieved May 25, 2016.
  19. "John Carmack on Twitter". Twitter. Archived from the original on January 19, 2015. Retrieved May 25, 2016.
  20. "BRINK: Multi-core support and better scaling on the PC". July 29, 2009. Archived from the original on September 13, 2011. Retrieved May 25, 2016.
  21. "Archived copy" (PDF). Archived from the original (PDF) on August 9, 2014. Retrieved May 25, 2016.{{cite web}}: CS1 maint: archived copy as title (link)
  22. "Sparse Virtual Textures". silverspaceship.com. Archived from the original on March 23, 2012. Retrieved May 25, 2016.
  23. "Brink technical analysis". hollemeersch.net. Archived from the original on March 27, 2016. Retrieved May 25, 2016.
  24. "DOOM Eternal Benchmarked at 8K - Not Even The Devil Can Run This". Tweatwon. March 30, 2020. Retrieved November 6, 2023.
  25. "id.sdk [Scripts]". iddevnet.com. Archived from the original on December 10, 2015. Retrieved May 25, 2016.
  26. "id.sdk [GUIs]". iddevnet.com. Archived from the original on August 11, 2016. Retrieved May 25, 2016.
  27. "Fully Interactive Surfaces". battleteam.net. Archived from the original on April 9, 2016. Retrieved May 25, 2016.
  28. 1 2 "id.sdk [The Code]". iddevnet.com. Archived from the original on March 7, 2016. Retrieved May 25, 2016.
  29. "How the latest Sound Blaster X-Fi technology was utilized in QUAKE 4". Archived from the original on August 4, 2012. Retrieved September 25, 2012.
  30. "Doom 3 multiplayer networking info". Archived from the original on August 31, 2011.
  31. "id Tech 4 (Concept) - Giant Bomb". Archived from the original on December 1, 2013. Retrieved November 26, 2013.
  32. "id Tech 5". Eurogamer . August 9, 2007. Archived from the original on March 4, 2016. Retrieved September 25, 2012.
  33. "3D Realms releases video of their cancelled prototypes including SiN 2 and Bombshell FPS". Archived from the original on December 3, 2021. Retrieved April 8, 2020.
  34. "Outta Dunwall: Thief Remake The Dark Mod Updates". Rock Paper Shotgun. October 22, 2012. Archived from the original on September 24, 2015. Retrieved August 25, 2015.
  35. "The Dark Mod". October 13, 2011. Archived from the original on April 27, 2021. Retrieved September 11, 2015.
  36. Campbell, Colin (February 4, 2013). "What the Hell is Quadrilateral Cowboy?". IGN. Archived from the original on February 7, 2013. Retrieved February 7, 2013.