Part of a series on |
Video game graphics |
---|
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.
The development of the FPS graphic engines is characterized by a steady increase in technologies, with some breakthroughs. Attempts at defining distinct generations lead to arbitrary choices of what constitutes a highly modified version of an 'old engine' and what is a new engine.
The classification is complicated as game engines blend old and new technologies. Features considered advanced in a new game one year, become the expected standard the next year. Games with a combination of both older and newer features are the norm. For example, Jurassic Park: Trespasser (1998) introduced physics to the FPS genre, which did not become common until around 2002. Red Faction (2001) featured a destructible environment, something still not common in engines years later.
Game rendering for this early generation of FPS were already from the first-person perspective and with the need to shoot things, however they were mostly made up using vector graphics.
There are two possible claimants for the first FPS, Maze War and Spasim . [1] Maze War was developed in 1973 and involved a single player making his way through a maze of corridors rendered using a fixed perspective. Multiplayer capabilities, where players attempted to shoot each other, were added later and were networked in 1974. Spasim was originally developed in 1974 and involved players moving through a wire-frame 3D universe. Spasim could be played by up to 32 players on the PLATO network. [2]
Developed in-house by Incentive Software, the Freescape engine is considered to be one of the first proprietary 3D engines to be used for computer games, although the engine was not used commercially outside of Incentive's own titles. The first game to use this engine was the puzzle game Driller in 1987. [3]
Games of this generation often had "3D" in their names but were not capable of full 3D rendering. Instead, they used ray casting 2.5D techniques to create a seemingly 3D environment from a 2D map, and flat sprites to draw enemies instead of 3D models. These games also began to use textures for environmental geometry instead of simple wire-frame models or solid colors.
Hovertank 3D , from id Software, was the first to use this technique in 1990, but was still not using textures, a capability which was added shortly after on Catacomb 3D (1991), then with the Wolfenstein 3D engine which was later used for several other games. Catacomb 3D was also the first game to show the player character's hand on-screen, furthering the implication of the player into the character's role. [1]
Wolfenstein 3D engine was still very primitive. It did not apply textures to the floor and ceiling, and the ray casting restricted walls to a fixed height, and levels were all on the same plane.
Even though it was still not using true 3D, id Tech 1, first used in Doom (1993) and again from id Software, removed these limitations. It also first introduced the concept of binary space partitioning (BSP). Another breakthrough was the introduction of multiplayer abilities in the engine. [1] However, because it was still using 2.5D, it was impossible to look up and down properly in Doom, and all Doom levels were actually two-dimensional. [1] [4] Due to the lack of a z-axis, the engine did not allow for room-over-room support.
Doom's success spawned several games using the same engine or similar techniques, giving rise to the term Doom clones. The Build engine, used in Duke Nukem 3D (1996), later removed some of the limitations of id Tech 1, such as the Build engine being able to have support for room-over-room by stacking sectors on top of sectors, but the techniques used remained the same.
In the mid-1990s, game engines recreated true 3D worlds with arbitrary level geometry. Instead of sprites the engines used simply textured (single-pass texturing, no lighting details) polygonal objects.
FromSoftware released King's Field , a full polygon free roaming first-person real-time action title for the Sony PlayStation in December 1994. Sega's 32X release Metal Head was a first-person shooter mecha simulation game that used fully texture-mapped, 3D polygonal graphics. [5] A year prior, Exact released the Sharp X68000 computer game Geograph Seal, a fully 3D polygonal first-person shooter that employed platform game mechanics and had most of the action take place in free-roaming outdoor environments rather than the corridor labyrinths of Wolfenstein 3D. The following year, Exact released its successor for the PlayStation console, Jumping Flash! , which used the same game engine but adapted it to place more emphasis on the platforming rather than the shooting. The Jumping Flash! series continued to use the same engine. [6] [7]
Dark Forces , released in 1995 by LucasArts, has been regarded as one of the first "true 3-D" first-person shooter games. Its engine, the Jedi Engine, was one of the first engines to support an environment in three dimensions: areas can exist next to each other in all three planes, including on top of each other (such as stories in a building). Though most of the objects in Dark Forces are sprites, the game does include support for textured 3D-rendered objects. Another game regarded as one of the first true 3D first-person shooter is Parallax Software's 1994 shooter Descent .[ citation needed ]
The Quake engine ( Quake , 1996) used fewer animated sprites and used true 3D geometry and lighting, using elaborate techniques such as z-buffering to speed up the rendering. Levels in Quake and some subsequent engines are made with geometry objects called brushes, which allow for map construction in three dimensions, rather than 2D maps projected in 3D, as Doom had done. Quake was also the first true-3D game to use a special map design system to preprocess and pre-render the 3D environment: the 3D environment in which the game took place (referred for the first time as a Map) was simplified during the creation of the map to reduce the processing required when playing the game.
Static lightmaps and 3D light sources were also "baked" at render time and added to the BSP files storing the levels. These features allowing for more realistic lighting than had previously been possible.
The first Graphics processing units [8] appeared in the late 1990s, but many games still supported software rendering at that time. id Tech 2 ( Quake II , 1997) was one of the first games to take advantage of hardware accelerated graphics [9] (id Software later reworked Quake to add OpenGL support to the game).
GoldSrc, the engine derived from the Quake engine by Valve for Half-Life (1998), added Direct3D support, and a skeletal framework to better render the NPCs, [10] [11] and also greatly improved the NPCs artificial intelligence (AI) compared to the Quake engine. [10]
This period saw the introduction of the first video cards with Transform, clipping, and lighting (T&L). The first card with this innovative technology was the GeForce 256. This card was superior to what 3dfx had to offer at the time, namely Voodoo3, which only fell short because the lack of T&L. Companies such as Matrox with their G400, and S3 with their Savage4 were forced to withdraw from the 3D gaming market during this time period. One year later, ATI released their Radeon 7200, a true competing graphics card line.
While all games of this period supported 16-bit color, many were adopting 32-bit color (really 24-bit color with an 8-bit alpha channel) as well. Soon, many benchmark sites began touting 32-bit as a standard. The Unreal Engine, used in a large number of FPS games since its release, was an important milestone at the time. [12] It used the Glide API, specifically developed for 3dfx GPUs, [11] instead of OpenGL. Probably the biggest reason for its popularity was that the engine architecture and the inclusion of a scripting language made it easy to mod it. [13] [14] One other improvement of Unreal compared to the previous generation of engines was its networking technology, which greatly improved the scalability of the engine on multiplayer. [15]
id Tech 3, first used for Quake III Arena , improved from its predecessor by allowing to store much more complex and smoother animations. It also had improved lighting and shadowing and introduced shaders and curved surfaces. [16]
New graphics hardware provided new capabilities, allowing new engines to add various new effects, such as particle effects or fog, as well as increase texture and polygon detail. Many games featured large outdoor environments, vehicles, and rag-doll physics.
Average Video Hardware requirements: a GPU with hardware T&L such as the DirectX 7.0 GeForce 2 or Radeon 7200 was typically required. The next-generation GeForce 3 or Radeon 8500 were recommended due to their more efficient architecture, though their DirectX 8.0 vertex and pixel shaders were of little use. A handful of games still supported DirectX 6.0 chipsets such as RIVA TNT2 and Rage 128, and software rendering (with an integrated Intel GMA), though this was apparent that even a powerful CPU could not compensate for the lack of hardware T&L.
Games engines originally developed for the PC platform, like the Unreal Engine 2, started to be adapted for sixth generation consoles like PlayStation 2 or GameCube, those now having the computer power to handle graphic-intensive video games.
The new generation of graphics chips allowed pixel shader-based textures, bump mapping, and lighting and shadowing technologies to become common. Shader technologies included HLSL (for DirectX), GLSL (for OpenGL), or Cg.
This resulted in the obsolescence of DirectX 7.0 graphics chips such as the widespread GeForce 2 and Radeon 7200, as well as DirectX 6.0 chipsets such as RIVA TNT2 and Rage 128, and integrated on-board graphics accelerators. Until this generation of games, a powerful CPU was able to somewhat compensate for an older video card. Average Video Hardware requirements: minimum was a GeForce 3 or Radeon 8500, strongly recommended was the GeForce FX, Radeon 9700 (or other cards with Pixel shader 2.x support). The Radeon 9700 demonstrated that anti-aliasing (AA) and/or anisotropic filtering (AF) could be fully usable options, even in the newest and most demanding titles at the time, and resulted in the widespread acceptance of AA and AF as standard features. AA and AF had been supported by many earlier graphics chips prior to this but carried a heavy performance hit and so most gamers opted not to enable these features.
With these new technologies game engines featured seamlessly integrated indoor/outdoor environments, used shaders for more realistic animations (characters, water, weather effects, etc.), and generally increased realism. The fact that the GPU performed some of the tasks that were already done by the CPU, and more generally the increasing processing power available, allowed to add realistic physics effects to the games, for example with the inclusion of the Havok physics engine in most video games. [17] Physics had been already added in a video game in 1998 with Jurassic Park: Trespasser , but limited hardware capabilities at the time, and the absence of a middleware like Havok to handle physics had made it a technical and commercial failure. [18]
id Tech 4, first used for Doom 3 (2004), used an entirely dynamic per-pixel lighting, whereas previously, 3D engines had relied primarily on pre-calculated per-vertex lighting or lightmaps and Gouraud shading. The Shadow volume approach used in Doom 3 permitted more realistic lighting and shadows, [19] but this came at a price as it could not render soft shadows, and the engine was primarily good indoors. This was later rectified to work with vast outdoor spaces, with the introduction of MegaTexture technology in the id Tech 4 engine.
The same year, Valve released Half-Life 2 , powered by their new Source engine. This new engine was notable in that, among other things, it had very realistic facial animations for NPCs, including what was described as an impressive lip-syncing technology. [20]
Further improvements in GPUs like Shader Model 3 and Shader Model 4, made possible by new graphic chipsets as GeForce 7 or Radeon X1xxx series, allowed for improvements in graphic effects.
Developers of this era of 3D engines often tout their increasingly photorealistic quality. Around the same time, esports were beginning to gain attention. These engines include realistic shader-based materials with predefined physics, environments with procedural and vertex shader-based objects (vegetation, debris, human-made objects such as books or tools), procedural animation, cinematographic effects (depth of field, motion blur, etc.), high-dynamic-range rendering, and unified lighting models with soft shadowing and volumetric lighting.
However, most of engines capable of these effects are evolutions of engines from the previous generation, such as Unreal Engine 3, the Dunia Engine and CryEngine 2, id Tech 5 (which was used with Rage and makes use of the new Virtual Texturing technology [21] ).
The first games using Unreal Engine 3 were released in November 2006, and the first game to use CryEngine 2 ( Crysis ) was released in 2007.
Further improvements in GPUs like Shader Model 5, made possible by new graphic chipsets as GeForce 400 series or Radeon HD 5000 series and later, allowed for improvements in graphic effects. such as Dynamic Displacement Mapping and Tessellation.
As of 2010, two upcoming evolutions of major existing engines had been released: Unreal Engine 3 in DirectX 11 which powered Samaritan Demo [22] (which is used with Batman: Arkham City , Batman: Arkham Knight and more DX11 based UE3 games) and CryEngine 3, which powers Crysis 2 and 3 .
Few companies had discussed future plans for their engines; id Tech 6, the eventual successor to id Tech 5, was an exception. Preliminary information about this engine which was still in early phases of development tended to show that id Software was looking toward a direction where ray tracing and classic raster graphics would be mixed. [23] However, according to John Carmack, the hardware capable of id Tech 6 did not yet exist. [24] The first title using the engine, Doom , was released in mid 2016.
In September 2015, Valve released Source 2 in an update to Dota 2 . [25]
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.
OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.
The GeForce 256 is the original release in Nvidia's "GeForce" product line. Announced on August 31, 1999 and released on October 11, 1999, the GeForce 256 improves on its predecessor by increasing the number of fixed pixel pipelines, offloading host geometry calculations to a hardware transform and lighting (T&L) engine, and adding hardware motion compensation for MPEG-2 video. It offered a notable leap in 3D PC gaming performance and was the first fully Direct3D 7-compliant 3D accelerator.
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term "software engine" used more widely in the software industry.
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.
LithTech is a game engine developed by Monolith Productions and comparable with the Quake and Unreal engines. Monolith and a number of other video game developers have used LithTech as the basis for their first-person shooter games.
The R200 is the second generation of GPUs used in Radeon graphics cards and developed by ATI Technologies. This GPU features 3D acceleration based upon Microsoft Direct3D 8.1 and OpenGL 1.3, a major improvement in features and performance compared to the preceding Radeon R100 design. The GPU also includes 2D GUI acceleration, video acceleration, and multiple display outputs. "R200" refers to the development codename of the initially released GPU of the generation. It is the basis for a variety of other succeeding products.
id Tech 3, popularly known as the Quake III Arena engine, is a game engine developed by id Software for its Quake III Arena. It has been adopted by numerous games. It competed with the Unreal Engine; both engines were widely licensed.
The Quake II engine is a game engine developed by id Software for use in their 1997 first-person shooter Quake II. It is the successor to the Quake engine. Since its release, the Quake II engine has been licensed for use in several other games.
High-dynamic-range rendering, also known as high-dynamic-range lighting, is the rendering of computer graphics scenes by using lighting calculations done in high dynamic range (HDR). This allows preservation of details that may be lost due to limiting contrast ratios. Video games and computer-generated movies and special effects benefit from this as it creates more realistic scenes than with more simplistic lighting models.
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.
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.
In computer graphics, per-pixel lighting refers to any technique for lighting an image or scene that calculates illumination for each pixel on a rendered image. This is in contrast to other popular methods of lighting such as vertex lighting, which calculates illumination at each vertex of a 3D model and then interpolates the resulting values over the model's faces to calculate the final per-pixel color values.
The Radeon R100 is the first generation of Radeon graphics chips from ATI Technologies. The line features 3D acceleration based upon Direct3D 7.0 and OpenGL 1.3, and all but the entry-level versions offloading host geometry calculations to a hardware transform and lighting (T&L) engine, a major improvement in features and performance compared to the preceding Rage design. The processors also include 2D GUI acceleration, video acceleration, and multiple display outputs. "R100" refers to the development codename of the initially released GPU of the generation. It is the basis for a variety of other succeeding products.
Transform, clipping, and lighting is a term used in computer graphics.
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 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.
A first-person shooter (FPS) is a video game centered on gun fighting and other weapon-based combat seen from a first-person perspective, with the player experiencing the action directly through the eyes of the main character. This genre shares multiple common traits with other shooter games, and in turn falls under the action games category. Since the genre's inception, advanced 3D and pseudo-3D graphics have proven fundamental to allow a reasonable level of immersion in the game world, and this type of game helped pushing technology progressively further, challenging hardware developers worldwide to introduce numerous innovations in the field of graphics processing units. Multiplayer gaming has been an integral part of the experience, and became even more prominent with the diffusion of internet connectivity in recent years.
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.
Probably the biggest draw to Unreal was the ability to mod it. Tim Sweeney (Founder of Epic) wrote a simple scripting engine into the game called UnrealScript.
The main advantage of the new system of lighting (besides the mentioned direct control of an artist over its masterpiece) is the capacity to render shadows in real time for every frame (...) Secondly, it's very hard to render muzzy, "soft" shadows prevailing in reality using shadow volumes. (...) Thirdly, summing up the two previous paragraphs we draw a conclusion that shadow volumes do not fit well for rendering shadows at vast open spaces.
But yet the incredibly lifelike detail and unparalleled attention to detail in the facial and body animation bring the characters to life like no game has ever even come close to doing. Six years ago there were a handful of facial models, bags of imagination and some great voice work; now we've got a huge cast list who all have plenty to say (with impressively accurate dynamic lip synching) and do so with such an impressive array of visible emotions that infuse the game with a head-turning credibility that will change the way people view games forever.
What John does see ray tracing useful for is a very specific data model he has created called "sparse voxel octrees" that allow him to store immense amounts of data in a fashion that is easily accessed using ray tracing methods(...) This new data model and algorithm being worked on for id Tech 6 would allow, according to John, nearly infinite amounts of geometric detail in the world without the problems seen with tessellation engines or trying to store gigabytes of data locally.
I still think there's one more generation to be had where we virtualize geometry with id Tech 6 and do some things that are truly revolutionary. (...) I know we can deliver a next-gen kick, if we can virtualize the geometry like we virtualized the textures; we can do things that no one's ever seen in games before.