Moscow State University

The Department of Computational Mathematics and Cybernetics

Game Engines

Timofeev Kirill
Group 205

Moscow 2011

Introduction

A game engine is a software system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine, sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is frequently economized by in large part reusing/adapting the same game engine to create different games.

Purpose
Game engines provide a suite of visual development tools in addition to reusable software components. These tools are generally provided in an integrated development environment to enable simplified, rapid development of games in a data-driven manner. Game engine developers attempt to "pre-invent the wheel" by developing robust software suites which include many elements a game developer may need to build a game. Most game engine suites provide facilities that ease development, such as graphics, sound, physics and AI functions. These games engines are sometimes called "middleware" because, as with the business sense of the term, they provide a flexible and reusable software platform which provides all the core functionality needed, right out of the box, to develop a game application while reducing costs, complexities, and time-to-market—all critical factors in the highly competitive video game industry. 

Some game engines only provide real-time 3D rendering capabilities instead of the wide range of functionality required by games. These engines rely upon the game developer to implement the rest of this functionality or assemble it from other game middleware components. These types of engines are generally referred to as a "graphics engine," "rendering engine," or "3D engine" instead of the more encompassing term "game engine." Modern game or graphics engines generally provide a scene graph, which is an object-oriented representation of the 3D game world which often simplifies game design and can be used for more efficient rendering of vast virtual worlds.

Popullar Game engines
Doom Engine(Id Tech 1)
The Doom engine is the game engine that powers the id Software games Doom and Doom II. It is also used by HeXen, Heretic, Strife and HacX, 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 in 1994. Originally developed on NeXT computers, it was ported to DOS for Doom's initial release and was later ported to several game consoles and operating systems.

The source code for the Linux version of Doom was released to the public in 1997 under a license that granted rights to non-commercial use, and was re-released under the GNU General Public License in 1999. The dozens of unofficial Doom source ports that have been created since then allow Doom to run on previously unsupported operating systems and sometimes radically expanding the engine's functionality with new features.

It is not a true "3D" engine, as it is not possible to look up and down properly, and two sectors cannot be placed above and under each other, but it is a fairly elegant system that allows pseudo-3D rendering. The Doom engine was later renamed to "id-tech 1" in order to categorize it in a list of id Software's long line of game engines.

Quake Engine
The Quake engine is the game engine that was written to power 1996's Quake, written by id Software. It first featured true 3D real-time rendering and is now licensed under the terms of the GNU General Public License (GPL).

After release it immediately forked, as did the level design. Much of the engine remained in Quake II and Quake III Arena. The Quake engine, like the Doom engine, used binary space partitioning (BSP). The Quake engine also used Gouraud shading for moving objects, and a static lightmap for nonmoving objects.

Quake II Engine(Id Tech 2)
The Quake II engine is a game engine developed by id Software for use in their games, most notably Quake II. Since its release, the Quake II engine has been licensed for use in several other games.

One of the engine's most notable features was out-of-the-box support for hardware-accelerated graphics, specifically OpenGL, along with the traditional software renderer. Another interesting feature was the subdivision of some of the components into dynamic-link libraries. This allowed both software and OpenGL renderers, which were switched between by loading and unloading separate libraries. Libraries were also used for the game logic, for two reasons:
•	Id could release the source code to allow modifications while keeping the remainder of the engine proprietary.
•	Since they were compiled for a native platform, instead of an interpreter, they could run faster than Quake's solution, which was to run the game logic (QuakeC) in a limited interpreter.

The level format, as with previous id Software engines, used BSP. The levels were lit through a lightmap method, in which light data for each surface is precalculated (this time, via a radiosity method) and stored as an image in the level file, which is then used to determine how much lighting intensity each model should receive, but not its direction.

John Carmack released the source code on 2001-12-22 under the terms of the GNU General Public License.

Id Tech 3
id Tech 3 is a game engine developed by id Software for Quake III Arena and has been used in many games under the Quake III Arena engine and Quake III: Team Arena engine branding. During its time, it competed with the Unreal engine; both engines were widely licensed.

id Tech 3 is a substantial improvement from the Quake engine and id Tech 2. Although id Tech 3 was derived from the id Tech 2, a large portion of code was new or re-written. It was succeeded by id Tech 4, which was derived from id Tech 3.

At QuakeCon 2005, John Carmack announced that the Quake III source code would be released under the GNU General Public License (version 2), and it was released on August 19, 2005. The code can be downloaded from id's ftp site.

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 in 2004. 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, Quake 4, Prey, Enemy Territory: Quake Wars, Wolfenstein and Brink.

id Tech 5
id Tech 5 is the latest proprietary game engine being developed by id Software, and follows its predecessors, id Tech 1, 2, 3 and 4. The engine was first demonstrated at the WWDC 2007 by John D. Carmack on an eight-core Apple Macintosh computer; however, the demo only used a single core with single-threaded OpenGL implementation running on a 512 MB 7000 class Quadro video card. The technology is still in the development stage. Two games utilizing the engine, Doom 4 and Rage, have been announced.

Features
The development of id Tech 5 has centered predominantly on making the engine easier to use for developers. While the rendering quality of the engine will likely be best in class, demonstrations of id Tech 5 have so far focused more on the advantages to developers rather than players, which is directly opposite to past releases of id Tech, which focused more on players than developers.

The initial demonstration of the engine featured 20 GB of texture data (using a more advanced MegaTexture approach called Virtual Texturing, which supports textures with resolutions up to 128 000 x 128 000 pixels), and a completely dynamic and changeable world. This technique allows the engine to automatically stream textures into memory as needed, meaning that the developer need not concern themselves with memory restraints or texture limits. This has the advantage of simplifying the creation of content, by eliminating the need to adapt content for different platforms. The engine automatically optimizes resources for cross-platform development, making it possible to render the same models on different platforms, while only creating them for one platform, further simplifying cross-platform development.

One of the visually evident features the renderer will include is a penumbra in the shadowing (soft edges), by using shadow maps. In contrast, id Tech 4, which featured a different shadowing technique, had very sharply defined shadows. The engine will likely feature numerous other advanced graphical effects such as various materials for lighting, high dynamic range rendering-centric effects, bloom, crepuscular rays (volumetric lighting), soft particles, pixel shader effects, alpha to coverage, post processing, dynamic water surfaces, procedural animation, cloth simulation, depth of field, and motion blur. The engine will also support multi-threaded processing on the CPU for many of its tasks, including rendering, game logic, AI, physics, and sound processing.

The engine comes with a new content-creation tools package called id Studio, which is supposed to be much more user-friendly and polished than in earlier versions. Previously, content creation required artists to run various command line tools beyond the level editor's own tools, while id Tech 5 allows for all work to be done 'in-engine'.

While id Software will be using the engine solely for creating shooter games, the engine also has the capability to operate outside of this genre. Steve Nix from id Software stated that "Not only do we think people can make games outside the action-shooter space with our technology, we encourage it. We'd actually like to see those games made."

Unreal Engine
The Unreal Engine is a game engine developed by Epic Games. First illustrated in the 1998 first-person shooter game Unreal, it has been the basis of many games since, including Unreal Tournament, Deus Ex, Turok, Tom Clancy's Rainbow Six 3: Raven Shield, Tom Clancy's Rainbow Six: Vegas, America's Army, Red Steel, Gears of War, BioShock, BioShock 2, Star Wars Republic Commando, Tactical Ops: Assault on Terror, Borderlands, Destroy All Humans! Path of the Furon, Batman: Arkham Asylum, Section 8, Stranded, and so forth. Although primarily developed for first-person shooters, it has been successfully used in a variety of genres, including stealth (Tom Clancy's Splinter Cell), MMORPG (Vanguard: Saga of Heroes) as well as RPG with Mass Effect, The Last Remnant, Killing Floor, and Harry Potter and the Philosopher's Stone.

With its core written in C++ the Unreal Engine features a high degree of portability and it is a tool used by many game developers today supporting a multitude of platforms including Microsoft Windows, Linux, iOS, Mac OS and Mac OS X on personal computers and many video game consoles including the Dreamcast, Xbox, Xbox 360, PlayStation 2, and PlayStation 3 though the latest version of the Unreal Engine, UE3, does not work on previous generation platforms. A great deal of the gameplay code can be written in UnrealScript, a proprietary scripting language, and as such, large parts of the gameplay can be modified without delving deep into the engine internals. Additionally, as with other middleware packages, the Unreal Engine also provides various tools to assist with content creation, both for designers and artists.

The latest release is the Unreal Engine 3, which is designed around Microsoft's DirectX 9 technology for 32/64-bit Windows XP/Windows Vista/Windows 7 and Xbox 360 platforms, DirectX 10 and DirectX 11 for 32/64-bit Windows Vista/Windows 7, and OpenGL for 32/64-bit Linux, Mac OS X, and PlayStation 3.

Unreal Engine 1 and 1.5
Making its debut in 1998, the first generation Unreal Engine integrated rendering, collision detection, AI, visibility, networking and file system management into one complete engine. Some trade-offs were necessary to maintain performance levels with the hardware that was available at the time. For example, Epic decided to use "cylindrical collision detection" over the "IK collision detection" system in an effort to maintain playable framerates on systems that were common at the time of its release. Internally, Epic used this engine for Unreal and Unreal Tournament.
Unreal Engine 1 used the Glide API, specifically developed for 3dfx GPUs, and was updated for OpenGL and Direct3D. Probably the biggest reason for its popularity was that the engine architecture and the inclusion of a scripting language made it easy to mod. 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. Unreal was also the first to use a real client–server model in the engine architecture.

Unreal Engine 2
The third version of the Unreal Engine made its debut with America's Army. This generation saw the core code and rendering engine completely re-written and the new UnrealEd 3 integrated. It also integrated the Karma physics SDK, which powered the ragdoll physics in Unreal Tournament 2003 and Unreal Championship. Many other engine elements were also updated, with improved assets and added support for the PlayStation 2, GameCube and the Xbox. Build UE2.5, an update, improved rendering performance and added vehicles physics, particle system editor for UnrealEd and 64-bit support in Unreal Tournament 2004. A specialized version of UE2.5 called UE2X, which was used for Unreal Championship 2, features optimizations specific to the first-generation Xbox. EAX 3.0 is also supported for sound.

Unreal Engine 3
The third generation Unreal Engine (UE3) was designed for DirectX 9/10/11 PCs, the Xbox 360, and the PlayStation 3. Its renderer supports many advanced techniques including HDRR, per-pixel lighting, and dynamic shadows, and builds upon the tools available in previous versions of the engine.

Epic has used this version of the engine for their in-house games Unreal Tournament 3, Gears of War, and an improved version for Gears of War 2. Due to aggressive licensing, this current iteration has garnered a great deal of support from several big licensees, including Atari, Activision, Capcom, Disney, Konami, Koei, 2K Games, Midway Games, THQ, Ubisoft, Sega, Sony, Electronic Arts, Square Enix, 3D Realms, and more.

Epic Games announced at GDC 2009 some improvements made to the Unreal Engine 3. These included:
•	    High-quality static lighting with next-generation effects, such as soft shadows with accurate penumbrae, diffuse, specular, inter-reflection, and color bleeding.
•	    The ability to add fracture effects to static meshes to simulate destructible environments.
•	    Soft-body physics.
•	    Simulation of large crowds.

In addition to the game industry, UE3 has also seen adoption by many non-gaming projects including construction simulation and design, driving simulation, virtual reality shopping malls and film storyboards.

In December 2009, Epic demoed UE3 running on Apple's 3rd generation iPod Touch. They said that this will also support iPhone 3GS, and also an unknown mobile platform which has been revealed to be the webOS at CES 2010. It has been revealed so far to be something on Nvidia's Tegra platform, and also Palm's webOS running PowerVR's SGX chip.

In June 2010 during the Electronic Entertainment Expo 2010, Mark Rein (vice president of Epic Games) was showcasing a tech demo of Gears of War 2 in stereoscopic 3D running on an Xbox 360 thanks to the TriOviz for Games Technology. "This technology’s great because it works on normal HD TVs, as well as the very high end 3DTVs,” Rein commented to Computer and Video Games. "We're not planning to re-release this in 3D - unless Microsoft want us to - but I'm sure its technology may be keen to put in the games developed by our partners."

In October 2010, TriOviz for Games Technology has been officially integrated in Unreal Engine 3, allowing to easily convert in stereoscopic 3D, numerous past and upcoming games developed on Xbox 360 and PS3 with this engine.

Unreal Engine 4
Mark Rein, the vice-president of Epic Games, revealed on August 18, 2005 that Unreal Engine 4 had been in development since 2003. The engine targets the next generation of PC hardware and consoles after the seventh generation. The only person to work on the Unreal Engine 4 core system design up to that point was Tim Sweeney, technical director and founder of Epic Games. However, at the 2006 Game Developers Conference, Tim Sweeney stated that development would not begin in earnest on the next version until some time in 2008.

Sweeney gave a speech at POPL06 (the Symposium on Principles of Programming Languages) that described aspects of how the Unreal Engine 3 worked at the time and "what we would like to write" in future. He predicted the next generation of games consoles would arrive in 2009, at which time game designers would work with CPUs that had 20 or more cores, 80 or more hardware threads, and more than a teraflop of computing power.

In March 2008, Sweeney predicted that the number of developers working on Unreal Engine 4 would be ramped up to three or four engineers by the end of that year, and appeared to suggest that it would be aimed predominantly at the next generation of consoles rather than PCs: "Unreal Engine 4 will exclusively target the next console generation, Microsoft's successor for the Xbox 360, Sony's successor for the Playstation 3 - and if Nintendo ships a machine with similar hardware specs, then that also." However, Rein later confirmed Unreal Engine 4 was coming to PC first.

Due to its focus on the next console generation, Michael Capps, President of Epic Games, indicated that Unreal Engine 4 should be ready around 2012.

CryEngine
CryEngine (usually styled as CryENGINE) is a game engine used for the first-person shooter computer game Far Cry. It was originally developed by Crytek as a technology demo for Nvidia and, when the company saw its potential, it was turned into a game.

When video cards with support for 3.0 pixel and vertex shaders were released, Crytek released version 1.2 of the engine which used some of the capabilities for better graphics.

Later the company developed CryEngine version 1.3, which added support for HDR lighting.

The engine has been licensed to NCsoft for their MMORPG, Aion: Tower of Eternity.

On March 30, 2006, Ubisoft acquired all intellectual property rights to the Far Cry franchise and a perpetual license to use the Far Cry edition of CryENGINE.

CryEngine 2
CryEngine 2 is a game engine developed by Crytek, and is the successor to CryEngine the game engine used in Far Cry. CryEngine 2 is used in Crytek's game Crysis, and an updated version in Crysis Warhead, a side story of Crysis. Also, the MMORPG Entropia Universe recently upgraded its graphics to the CryEngine 2. In March 2009 at the Game Developers Conference, CryEngine 2's successor, CryEngine 3, was shown on the Xbox 360 and PlayStation 3.

Source 
Source is a 3D game engine developed by Valve Corporation. It debuted in June 2004 with Counter-Strike: Source and shortly thereafter Half-Life 2. Other notable games using the engine include first-person shooters Left 4 Dead and Team Fortress 2, the physics sandbox Garry's Mod, first-person action RPG games Vampire: The Masquerade - Bloodlines and Dark Messiah of Might and Magic, the first-person puzzle game Portal, first-person beat-em-up Zeno Clash and the MMORPG Vindictus developed by Nexon.

Conclusion

Now There are many Game Engines and series of Game Enginesfor different operating systems, manufactured by different companies, which are used in possibly all types of computers. The development of these processors is continuing and now we are waiting for id Tech 6, Sourse 2, CryEngine 3 and Unreal Engine 5 in order to enjoy beautiful games on these Engines 

References

1.  http://ru.wikipedia.org/wiki/Game_Engine
2.  http://en.wikipedia.org/wiki/CryEngine
3.  http://en.wikipedia.org/wiki/CryEngine_2
4.  http://en.wikipedia.org/wiki/Source
5.  http://en.wikipedia.org/wiki/Unreal_Engine
6.  http://en.wikipedia.org/wiki/Id_Tech_1
7.  http://en.wikipedia.org/wiki/Quake_engine
8.  http://en.wikipedia.org/wiki/Quake_II_engine (Id Tech 2)
9.  http://en.wikipedia.org/wiki/Id_Tech_3
10. http://en.wikipedia.org/wiki/Id_Tech_4
11. http://en.wikipedia.org/wiki/Id_Tech_5
12. http://www.unrealtechnology.com/
13. http://source.valvesoftware.com/
14. http://www.crytek.com/
15. http://www.quakedev.com/
16. http://www.idsoftware.com/business/