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 or collision detection (and collision response), 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. Gamebryo and RenderWare are such widely used middleware programs.

Like other middleware solutions, game engines usually provide platform abstraction, allowing the same game to be run on various platforms including game consoles and personal computers with few, if any, changes made to the game source code. Often, game engines are designed with a component-based architecture that allows specific systems in the engine to be replaced or extended with more specialized (and often more expensive) game middleware components such as Havok for physics, Miles Sound System for sound, or Bink for Video. Some game engines such as RenderWare are even designed as a series of loosely connected game middleware components that can be selectively combined to create a custom engine, instead of the more common approach of extending or customizing a flexible integrated solution. However extensibility is achieved, it remains a high priority in games engines due to the wide variety of uses for which they are applied. Despite the specificity of the name, game engines are often used for other kinds of interactive applications with real-time graphical requirements such as marketing demos, architectural visualizations, training simulations, and modeling environments.

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." This terminology is inconsistently used as many full-featured 3D game engines are referred to simply as "3D engines." A few examples of graphics engines are: RealmForge, Truevision3D, OGRE, Crystal Space, Genesis3D, Vision Engine, Irrlicht and JMonkey 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.

Hardware abstraction
Most often, 3D engines or the rendering systems in game engines are built upon a graphics API such as Direct3D or OpenGL which provides a software abstraction of the GPU or video card. Low-level libraries such as DirectX, SDL, and OpenAL are also commonly used in games as they provide hardware-independent access to other computer hardware such as input devices (mouse, keyboard, and joystick), network cards, and sound cards. Before hardware-accelerated 3D graphics, software renderers had been used. Software rendering is still used in some modeling tools or for still-rendered images when visual accuracy is valued over real-time performance (frames-per-second) or when the computer hardware does not meet requirements such as shader support.

With the advent of hardware accelerated physics processing, various physics API such as PAL and the physics extensions of COLLADA (an interchange format for 3D assets) became available to provide a software abstraction of the physics processing unit of different middleware providers and console platforms.

History
Prior to game engines, games were typically written as singular entities: a game for the Atari 2600, for example, had to be designed from the ground up to make optimal use of the display hardware—this core display routine is today called the kernel by retro developers. Other platforms had more leeway, but even when the display was not a concern, memory constraints usually sabotaged attempts to create the data-heavy design that an engine requires. Even on more accommodating platforms, very little could be reused between games. The rapid advance of arcade hardware—the leading edge of the market—meant that most of the code would have to be thrown out afterwards anyway, as later generations of games would use completely different game designs that took advantage of extra resources. Thus most game designs through the 1980s were designed through a hard-coded ruleset with a small amount of level and graphics data.

The first generation of third party graphics engines or renderers (and precursor to what we now know as engines) was dominated by three players; BRender from Argonaut Software, Renderware from Criterion Software Limited and RenderMorphics' Reality Lab . Reality Lab was the fastest of the three and was the first to be taken over in an aggressive move by Microsoft. The RenderMorphics team Servan Keondjian, Kate Seekings and Doug Rabson subsequently joined the Microsoft project which turned Reality Lab into Direct3D before Keondjian and Rabson left to start another middleware company Qube Software. Renderware was eventually bought by EA (Electronic Arts) but was sidelined by the games giant.

The term "game engine" arose in the mid-1990s, especially in connection with 3D games such as first-person shooters (FPS). (See also: first-person shooter engine.) Such was the popularity of id Software's Doom and Quake games that, rather than work from scratch, other developers licensed the core portions of the software and designed their own graphics, characters, weapons and levels—the "game content" or "game assets." Separation of game-specific rules and data from basic concepts like collision detection and game entity meant that teams could grow and specialize.

Later games, such as Quake III Arena and Epic Games's 1998 Unreal were designed with this approach in mind, with the engine and content developed separately. The practice of licensing such technology has proved to be a useful auxiliary revenue stream for some game developers, as a single license for a high-end commercial game engine can range from US$10,000 to millions of dollars, and the number of licensees can reach several dozen companies (as seen with the Unreal Engine). At the very least, reusable engines make developing game sequels faster and easier, which is a valuable advantage in the competitive video game industry.

Modern game engines are some of the most complex applications written, frequently featuring dozens of finely tuned systems interacting to ensure a precisely controlled user experience. The continued evolution of game engines has created a strong separation between rendering, scripting, artwork, and level design. It is now common, for example, for a typical game development team to have several times as many artists as actual programmers.

First-person shooter games remain the predominant users of third-party game engines, but they are now also being used in other genres. For example, the RPG The Elder Scrolls III: Morrowind and the MMORPG Dark Age of Camelot are based on the Gamebryo engine, and the MMORPG Lineage II is based on the Unreal Engine. Game engines are used for games originally developed for home consoles as well; for example, the RenderWare engine is used in the Grand Theft Auto and Burnout franchises.

Threading is taking on more importance due to modern multi-core systems (e.g. Cell) and increased demands in realism. Typical threads involve rendering, streaming, audio, and physics. Racing games have typically been at the forefront of threading with the physics engine running in a separate thread long before other core sub-systems were moved, partly because rendering and related tasks only require updating at 30–60 Hz. For example, Need For Speed on the PlayStation ran its physics at 100 Hz as compared to Forza Motorsport 2 running its physics at 360 Hz.

Although the term was first used in the 1990s, there are a few earlier systems in the 1980s that are also considered to be game engines, such as Sierra's AGI and SCI systems, LucasArts' SCUMM system and Incentive Software's Freescape engine. Unlike most modern game engines, these game engines were never used in any third-party products (except for the SCUMM system which was licensed to and used by Humongous Entertainment).

Recent trends
As game engine technology matures and becomes more user-friendly, the application of game engines has broadened in scope, and are now being used for serious games: visualization, training, medical, and military simulation applications. To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including mobile phones (e.g. iPhone, Android phones) and web browsers (e.g. Shockwave, Flash, Trinigy's WebVision, Silverlight, Unity Web Player, O3D and pure dhtml).

Additionally, more game engines are being built upon higher level languages such as Java and C#/.NET (e.g. TorqueX, and Visual3D.NET) or Python (Panda3D). As most 3D rich games are now mostly GPU-limited (i.e. limited by the power of the graphics card), the potential slowdowns of higher level languages become negligible, while the productivity gains offered by these languages works to the game engine developers' benefit. These recent trends are being propelled by companies such as Microsoft to support Indie game development. Microsoft developed XNA as the SDK of choice for all video games released on Xbox and related products. This includes the XBox Live Indie Games channel designed specifically for smaller developers who don't have the extensive resources necessary to box games for sale on retail shelves. It is becoming easier and cheaper than ever to develop game engines for platforms that support managed frameworks.

Game Middleware
In the broader sense of the term, game engines themselves can be described as middleware. In the context of video games, however, it is often used to refer to subsystems of functionality within a game engine. Some game middleware does only one thing but does it more convincingly or more efficiently than general purpose middleware. For example, SpeedTree was used to render the realistic trees and vegetation in the role-playing game The Elder Scrolls IV: Oblivion.

The four most widely-used middleware packages that provide subsystems of functionality include RAD Game Tools' Bink, Firelight FMOD, Havok, and Scaleform GFx. RAD Game Tools develops Bink for basic video rendering, along with Miles audio, and Granny 3D rendering. Firelight FMOD is a low cost robust audio library and toolset. Havok provides a robust physics simulation system, along with a suite of animation and behavior solutions. Scaleform provides GFx for high performance Flash UI, along with a high quality video playback solution, and an Input Method Editor (IME) add-on for in-game Asian chat support.

Some middleware contains full source code, others just provide an API reference for a compiled binary library. Some middleware programs can be licensed either way, usually for a higher fee for full source code.

MMOG Middleware
Middleware for massively-multiplayer online games is far more complex than for single-player video games. Technically every normal game engine can be used to implement an MMO game by combining it with MMO middleware. The increasing popularity of MMOGs is spurring development of MMO middleware packages. Some MMO middleware software packages already include a game engine, while others provide networking only and therefore must be combined with a game engine to create a MMO game. Some prominent MMO middleware solutions include:

    Bigworld Technology (client / MMO specific server)
    Exit Games Neutron
    HeroEngine
    Monumental Games
    Multiverse Network
    Q (game engine) (client-only, but with server solution as 'Messiah')
    RedDwarf Server (open source)
    Vision Engine

FPS game engines
A well-known subset of game engines are 3D first-person shooter (FPS) game engines. Groundbreaking development in terms of visual quality is done in FPS games on the human scale. While flight and driving simulators and real-time strategy (RTS) games increasingly provide realism on a large scale, first-person shooters are at the forefront of computer graphics on these smaller scales.

The development of the FPS graphic engines that appear in games can be 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 brand 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 mix of older generation and newer feature are the norm. For example Jurassic Park: Trespasser (1998) introduced physics to the FPS games, but it did not become common until around 2002. Red Faction (2001) featured destructible walls and ground, something still not common in engines years later (for example in Unreal Tournament 2004 there are still no destructible objects). Battlezone (1998) and Battlezone II: Combat Commander (1999) added vehicle based combat to the usual FPS mix, which did not hit the mainstream until later. Tribes 2, Battlefield 1942, Halo: Combat Evolved and Unreal Tournament 2004 fully realized the potential for vehicular-combat and first person shooter integration.
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. 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 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.

History
The Quake engine was created in 1996 for Quake. John Carmack did most of the programming of the engine, with help from Michael Abrash in algorithms and assembly optimization. It was later upgraded to id Tech 2 and id Tech 3.

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

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.

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.

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 (expected in 2011).

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.

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 (which casual consumers often confused with the DirectX 8 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 Voodoo 2, but these are unable to render the per-pixel lighting and bump mapping.

Features

Graphics
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 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 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 optimising this by using Intel's Streaming SIMD Extensions.

MegaTexture rendering technology
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
•	    Unified lighting and shadowing
•	    Shadow volume
•	    MegaTexture

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

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
Initially, the id Tech 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 id Tech 3 equivalent, however id Tech 4 exposes a lot more of the network protocol to mod developers.

Although Doom 3 only supported 4 players, 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.

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.

Marketing and licensing
The engine was first shown privately to an audience of potential licensees at E3 2007. The first public demonstration took place at QuakeCon in the same year during the annual keynote held by John Carmack. The game engine is being used in id's upcoming games, Doom 4 and Rage.

An interview with John Carmack, the lead graphics engine developer at id, indicated that like its predecessors, id Tech 5 will eventually be released as open source. The move to open source will likely come many years after id Tech 5's release as a proprietary engine. At QuakeCon 2007, Carmack told LinuxGames that he would integrate as little proprietary software as possible into id Tech 5, as "eventually id Tech 5 is going to be open source also. This is still the law of the land at id, that the policy is that we’re not going to integrate stuff that’s going to make it impossible for us to do an eventual open source release."

At QuakeCon 2010, id CEO Todd Hollenshead announced that while id Tech 5 will be licensed to third parties, games using the engine will be required to be published by id Software's sister company Bethesda Softworks.

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.

Versions
Unreal Engine 1.3
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 Development Kit (UDK)
While the Unreal Engine 3 has been quite open for modders to tinker around with, the ability to publish and sell games made using UE3 was restricted to licensees of the engine. However, on November 2009, Epic released a free version of their engine, called the Unreal Developer Kit (UDK), that is available to the general public. According to the current EULA, game makers can sell their games by paying Epic the cost of $99 USD at the outset, and 25% of all revenue above $50000 USD. In addition, in the December 2010 release of UDK, it now comes with support of creating iOS games.

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.

History
CryEngine2 was first licensed out to French company IMAGTP who specializes in architectural and urban-planning communication. The purpose of licensing the engine was to create a program to allow clients to see exactly what a building or other structure would look like before any actual building was undertaken.
As of March 7, Simpson Studios, a new development studio, has licensed CryEngine2 out to use on a Massively Multiplayer Virtual World (MMVW) that takes place on a terraformed Mars.
On May 11, 2007 Crytek announced that they would be using the engine to create a game based on their new “intellectual property”. It is also confirmed that it will not be a part of Crysis and in fact may not even be a first person shooter.
On September 17, 2007, Ringling College of Art & Design became the first higher education institution in the world to license CryEngine2 for educational purposes.

CryEngine 3
On March 11, 2009, Crytek announced that it would introduce CryEngine 3 at the 2009 Game Developers Conference, held from March 25 to March 27. The new engine is being developed for use on Microsoft Windows, PlayStation 3, and Xbox 360. As for the PC platform, the engine is said to support development in DirectX 9, 10, and 11.

As of June 1, 2009, it has been announced that Crysis 2 is being developed by Crytek on their brand new engine. A teaser has been released. Additionally, a website named mycryengine.com was launched as a front to this new technology.

On March 1, 2010, a new video of the engine was released for the i3D 2010 symposium, which demonstrates 'Cascaded Light Propagation Volumes for Real Time Indirect Illumination'.

Crytek also plans to release a free-to-use version of the CryEngine.

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.