Game engine
Encyclopedia
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game console
Video game console
A video game console is an interactive entertainment computer or customized computer system that produces a video display signal which can be used with a display device to display a video game...

s and personal computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

s. The core functionality typically provided by a game engine includes a rendering engine
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

 (“renderer”) for 2D
2D computer graphics
2D computer graphics is the computer-based generation of digital images—mostly from two-dimensional models and by techniques specific to them...

 or 3D
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

 graphics
Computer graphics
Computer graphics are graphics created using computers and, more generally, the representation and manipulation of image data by a computer with help from specialized software and hardware....

, a physics engine
Physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics , soft body dynamics, and fluid dynamics, of use in the domains of computer graphics, video games and film. Their main uses are in video games , in which case the...

 or collision detection
Collision detection
Collision detection typically refers to the computational problem of detecting the intersection of two or more objects. While the topic is most often associated with its use in video games and other physical simulations, it also has applications in robotics...

 (and collision response), sound
Sound
Sound is a mechanical wave that is an oscillation of pressure transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a level sufficiently strong to be heard, or the sensation stimulated in organs of hearing by such vibrations.-Propagation of...

, scripting
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

, animation
Computer animation
Computer animation is the process used for generating animated images by using computer graphics. The more general term computer generated imagery encompasses both static scenes and dynamic images, while computer animation only refers to moving images....

, artificial intelligence, networking, streaming, memory management, threading, localization
Internationalization and localization
In computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market...

 support, and a scene graph
Scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....

. The process of game development
Game development
Game development is the software development process by which a video game is developed. Development is undertaken by a game developer, which may range from a single person to a large business. Mainstream games are normally funded by a publisher and take several years to develop. Indie games can...

 is often economized, in large part, by reusing/adapting the same game engine to create different games.

Purpose

Game engines provide a suite of visual development tools
Game development tool
A game development tool is a specialized software application that assists or facilitates the making of a computer or video game. Some tasks handled by tools include the conversion of assets into formats required by the game, level editing and script compilation.Almost all game development tools...

 in addition to reusable software components. These tools are generally provided in an integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 to enable simplified, rapid development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 of games in a data-driven
Data-driven design
In computer programming, data-driven programming is a programming paradigm in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken. Adapting abstract data type design methods to object-oriented programming...

 manner. Game engine developers attempt to "pre-invent the wheel" by developing robust
Robustness (computer science)
In computer science, robustness is the ability of a computer system to cope with errors during execution or the ability of an algorithm to continue to operate despite abnormalities in input, calculations, etc. Formal techniques, such as fuzz testing, are essential to showing robustness since this...

 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 game engines are sometimes called "middleware
Middleware
Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...

" 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
Gamebryo
Gamebryo is a game engine, originally from Numerical Design Limited , and the successor to NDL's NetImmerse engine.Since the creation of Gamebryo, NDL merged into Emergent Game Technologies...

 and RenderWare
RenderWare
RenderWare is a computer and video game middleware from British games developer Criterion Software.-Overview:RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers...

 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
Platform (computing)
A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...

 including game consoles
Video game console
A video game console is an interactive entertainment computer or customized computer system that produces a video display signal which can be used with a display device to display a video game...

 and personal computers with few, if any, changes made to the game source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

. 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
Havok (software)
Havok Physics is a physics engine developed by Irish company Havok. It is designed primarily for video games, and allows for real-time collision and dynamics of rigid bodies in three dimensions. It provides multiple types of dynamic constraints between rigid bodies , and has a highly optimized...

 for physics, Miles Sound System
Miles Sound System
Miles Sound System , formerly known as Audio Interface Library , is a sound software system primarily for video games and used mostly as an alternative for low-end audio chipsets. It uses little CPU time while providing adequate audio output. It was originally a middleware driver library for...

 for sound, or Bink
Bink video
Bink is a proprietary video file format developed by RAD Game Tools and used primarily in computer games. It has been used in many games for Windows, Mac OS, Xbox 360, Xbox, GameCube, Wii, PlayStation 3, PlayStation 2, Nintendo DS, and Sony PSP...

 for Video. Some game engines such as RenderWare
RenderWare
RenderWare is a computer and video game middleware from British games developer Criterion Software.-Overview:RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers...

 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
Extensibility
In software engineering, extensibility is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension...

 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 needs 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 needed by games. These engines rely upon the game developer
Video game developer
A video game developer is a software developer that creates video games. A developer may specialize in a certain video game console, such as Nintendo's Wii, Microsoft's Xbox 360, Sony's PlayStation 3, or may develop for a variety of systems, including personal computers.Most developers also...

 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: Crystal Space
Crystal Space
Crystal Space is a framework for developing 3D applications written in C++ by Jorrit Tyberghein and others. The first public release was on August 26, 1997. It is typically used as a game engine but the framework is more general and can be used for any kind of 3D visualization. It is very...

, Genesis3D
Genesis3D
Genesis3D was a project by Eclipse Entertainment to create a real-time 3D engine for Microsoft Windows. It was released as source code in 1998. The first released version supported hardware acceleration and a software renderer...

, Irrlicht
Irrlicht Engine
Irrlicht is an open source 3D engine written in C++. It is cross-platform, officially running on Windows, Mac OS X, Linux and Windows CE and due to its open nature ports to other systems are available, including Xbox, PlayStation Portable, SymbianOS and iPhone.Irrlicht is known for its small size...

, JMonkey Engine
JMonkey Engine
jMonkeyEngine is a game engine made especially for modern 3D development, as it uses shader technology extensively. jMonkeyEngine is written purely in Java and uses LWJGL as its default renderer. OpenGL 2 through OpenGL 4 is fully supported....

, OGRE
OGRE
OGRE is a scene-oriented, flexible 3D rendering engine written in C++ designed to make it easier and intuitive for developers to produce applications utilizing hardware-accelerated 3D graphics...

, RealmForge
RealmForge
RealmForge is a free and open-source game engine for the Microsoft .NET Framework, predecessor to Visual3D Game Engine, the cross-platform game engine and visual development toolset for .NET 2.0 and Microsoft XNA.-Overview:...

, Truevision3D
Truevision3d
Truevision3D is a 3D commercial 3D engine first created by Sylvain Dupont in 1999.The Truevision3D engine is written in Visual Basic 6 and C++ and layered on top of the Microsoft DirectX API, currently supporting DirectX version 8. The engine is accessible from a number of programming languages...

, and Vision Engine. Modern game or graphics engines generally provide a scene graph
Scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....

, 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 application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 (API) such as Direct3D
Direct3D
Direct3D is part of Microsoft's DirectX application programming interface . Direct3D is available for Microsoft Windows operating systems , and for other platforms through the open source software Wine. It is the base for the graphics API on the Xbox and Xbox 360 console systems...

 or OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 which provides a software abstraction of the graphics processing unit
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...

 (GPU) or video card. Low-level libraries such as DirectX
DirectX
Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...

, Simple DirectMedia Layer
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

 (SDL), and OpenAL
OpenAL
OpenAL is a cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL.- History :...

 are also commonly used in games as they provide hardware-independent access to other computer hardware
Computer hardware
Personal computer hardware are component devices which are typically installed into or peripheral to a computer case to create a personal computer upon which system software is installed including a firmware interface such as a BIOS and an operating system which supports application software that...

 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 needs such as shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

 support.

With the advent of hardware accelerated physics processing, various physics API such as PAL and the physics extensions of COLLADA
COLLADA
COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3D applications. COLLADA is managed by the nonprofit technology consortium, the Khronos Group....

 (an interchange format for 3D assets) became available to provide a software abstraction of the physics processing unit
Physics processing unit
A physics processing unit is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games. Examples of calculations involving a PPU might include rigid body dynamics, soft body dynamics, collision detection, fluid dynamics, hair and...

 of different middleware providers and console platforms.

History

Before game engines, games were typically written as singular entities: a game for the Atari 2600
Atari 2600
The Atari 2600 is a video game console released in October 1977 by Atari, Inc. It is credited with popularizing the use of microprocessor-based hardware and cartridges containing game code, instead of having non-microprocessor dedicated hardware with all games built in...

, for example, had to be designed from the bottom 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 needs. Even on more accommodating platforms, very little could be reused between games. The rapid advance of arcade hardware—which was the leading edge of the market at the time—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
Argonaut Games
Argonaut Games plc was a British video game developer. Founded as Argonaut Software by teenager Jez San in 1982 the company name is a play on his name and the movie title Jason and the Argonauts. It had its head offices in Edgware, London....

, Renderware from Criterion Software Limited and RenderMorphics' Reality Lab
Reality Lab
Reality Lab was a 3D computer graphics API created by RenderMorphics to provide a standardized interface for writing games. It was one of the main contenders in the realtime 3D middleware marketplace at the time, alongside Criterion Software's RenderWare and Argonaut Software's BRender.Reality Lab...

. Reality Lab was the fastest of the three and was the first to be acquired 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
Electronic Arts
Electronic Arts, Inc. is a major American developer, marketer, publisher and distributor of video games. Founded and incorporated on May 28, 1982 by Trip Hawkins, the company was a pioneer of the early home computer games industry and was notable for promoting the designers and programmers...

) 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 shooter
First-person shooter
First-person shooter is a video game genre that centers the gameplay on gun and projectile weapon-based combat through first-person perspective; i.e., the player experiences the action through the eyes of a protagonist. Generally speaking, the first-person shooter shares common traits with other...

s (FPS). (See also: first-person shooter engine
First-person shooter engine
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...

.) Such was the popularity of Id Software
Id Software
Id Software is an American video game development company with its headquarters in Richardson, Texas. The company was founded in 1991 by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack...

's Doom and Quake
Quake (series)
The Quake series is a line of first-person shooter video games produced by id Software.-Overview:The Quake series is somewhat unusual in that its focus changes frequently; the story of Quake II has nothing to do with Quake, and Quake III Arena has little to do with either of its predecessors...

games that, rather than work from scratch, other developers
Video game developer
A video game developer is a software developer that creates video games. A developer may specialize in a certain video game console, such as Nintendo's Wii, Microsoft's Xbox 360, Sony's PlayStation 3, or may develop for a variety of systems, including personal computers.Most developers also...

 licensed the core portions of the software and designed their own graphics, characters, weapons and level
Level (computer and video games)
A level, map, area, or world in a video game is the total space available to the player during the course of completing a discrete objective...

s—the "game content" or "game assets." Separation of game-specific rules and data from basic concepts like collision detection
Collision detection
Collision detection typically refers to the computational problem of detecting the intersection of two or more objects. While the topic is most often associated with its use in video games and other physical simulations, it also has applications in robotics...

 and game entity meant that teams could grow and specialize.

Later games, such as Quake III Arena
Quake III Arena
Quake III Arena , is a multiplayer first-person shooter video game released on December 2, 1999. The game was developed by id Software and featured music composed by Sonic Mayhem and Front Line Assembly...

and Epic Games
Epic Games
Epic Games, Inc., also known as Epic and formerly Epic MegaGames, is an American video game development company based in Cary, North Carolina. Its most recent success has been the Gears of War series of games, although it is also known for its Unreal Engine technology. It is the parent company of...

's 1998 Unreal
Unreal
Unreal is a first-person shooter video game developed by Epic MegaGames and Digital Extremes and published by GT Interactive in May 1998...

were designed with this approach in mind, with the engine and content developed separately. The practice of licensing such technology
Technology
Technology is the making, usage, and knowledge of tools, machines, techniques, crafts, systems or methods of organization in order to solve a problem or perform a specific function. It can also refer to the collection of such tools, machinery, and procedures. The word technology comes ;...

 has proved to be a useful auxiliary revenue stream for some game developers, as a one 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
Unreal Engine
The Unreal Engine is a game engine developed by Epic Games, first illustrated in the 1998 first-person shooter game Unreal. Although primarily developed for first-person shooters, it has been successfully used in a variety of other genres, including stealth, MMORPGs and RPGs...

. 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, often 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
Level design
Level design, environment design or game mapping is a discipline of game development involving creation of video game levels—locales, stages, or missions. This is commonly done using level editor, a game development software designed for building levels; however some games feature built-in...

. 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
The Elder Scrolls III: Morrowind
The Elder Scrolls III: Morrowind, often simply referred to as Morrowind, is a single-player computer role-playing game developed by Bethesda Game Studios, and published by Bethesda Softworks and Ubisoft. It is the third installment in The Elder Scrolls series of games, following The Elder Scrolls...

and the MMORPG
MMORPG
Massively multiplayer online role-playing game is a genre of role-playing video games in which a very large number of players interact with one another within a virtual game world....

 Dark Age of Camelot
Dark Age of Camelot
Dark Age of Camelot is a 3D medieval fantasy MMORPG, released on October 10 2001 in North America and in Europe shortly after through it's partner GOA. It is still running today recently celebrating its 10th anniversary....

are based on the Gamebryo
Gamebryo
Gamebryo is a game engine, originally from Numerical Design Limited , and the successor to NDL's NetImmerse engine.Since the creation of Gamebryo, NDL merged into Emergent Game Technologies...

 engine, and the MMORPG Lineage II
Lineage II
Lineage II is a massive multiplayer online role-playing game for Microsoft Windows. It is a prequel to Lineage, and is set 150 years before the earlier game. It has become very popular since its October 1, 2003 launch in South Korea, reporting 1,000,918 unique users during the month of March 2007...

is based on the Unreal Engine. Game engines are used for games originally developed for home consoles as well; for example, the RenderWare
RenderWare
RenderWare is a computer and video game middleware from British games developer Criterion Software.-Overview:RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers...

 engine is used in the Grand Theft Auto
Grand Theft Auto (series)
Grand Theft Auto is a multi-award-winning British video game series created in the United Kingdom by Dave Jones, then later by brothers Dan Houser and Sam Houser, and game designer Zachary Clarke. It is primarily developed by Edinburgh based Rockstar North and published by Rockstar Games...

and Burnout franchises.

Threading is taking on more importance due to modern multi-core systems (e.g. Cell
Cell (microprocessor)
Cell is a microprocessor architecture jointly developed by Sony, Sony Computer Entertainment, Toshiba, and IBM, an alliance known as "STI". The architectural design and first implementation were carried out at the STI Design Center in Austin, Texas over a four-year period beginning March 2001 on a...

) 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 subsystems were moved, partly because rendering and related tasks need updating at only 30–60 Hz. For example, on PlayStation 3, physics ran in Need For Speed
Need for Speed
Need for Speed is a series of racing video games published by Electronic Arts and developed by several studios including Canadian-based company EA Black Box and British-based Criterion Games...

at 100 Hz versus Forza Motorsport 2
Forza Motorsport 2
Forza Motorsport 2 is a racing video game developed by Turn 10 Studios for the Xbox 360 console. It is the second title in the Forza Motorsport series, and is the sequel to the original Forza Motorsport and is followed by Forza Motorsport 3 .The box art features a tuned Nissan 350Z...

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 Adventure Game Interpreter
Adventure Game Interpreter
The Adventure Game Interpreter is a game engine which Sierra On-Line used through most of the 1980s to create and run animated, color adventure games...

 (AGI) and SCI
Sierra's Creative Interpreter
Sierra's Creative Interpreter is the scripting language created by Jeff Stephenson of Sierra On-Line for its adventure games after the older AGI, and the runtime environment for such adventure games....

 systems, LucasArts' SCUMM
SCUMM
Script Creation Utility for Maniac Mansion is a scripting language developed at LucasArts to ease development of the graphical adventure game Maniac Mansion....

 system and Incentive Software
Incentive Software
Incentive Software Ltd. was a British video game developer and publisher founded by Ian Andrew in 1983. Programmers included Sean Ellis, Stephen Northcott and Ian's brother Chris Andrew. Later games were based around the company's Freescape rendering engine...

'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. They are now being used for serious game
Serious game
A serious game is a game designed for a primary purpose other than pure entertainment. The "serious" adjective is generally prepended to refer to products used by industries like defense, education, scientific exploration, health care, emergency management, city planning, engineering, religion,...

s: visualization, training, medical, and military simulation
Military simulation
Military simulations, also known informally as war games, are simulations in which theories of warfare can be tested and refined without the need for actual hostilities. Many professional contemporary analysts object to the term wargames as this is generally taken to be referring to the civilian...

 applications. To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...

s (e.g. Android phones, iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...

) and web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s (e.g. WebGL
WebGL
WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser...

, Shockwave, Flash
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...

, Trinigy
Trinigy
Trinigy is an independent company focusing on the development of advanced 3D graphics technology with its headquarters based in Southern Germany, with offices in Austin, TX and Seoul, South Korea....

's WebVision, Silverlight, Unity Web Player, O3D
O3D
O3D is an open source JavaScript API created by Google for creating interactive 3D graphics applications that run in a web browser window or in a XUL desktop application...

 and pure dhtml).

Additionally, more game engines are being built upon higher level languages
High-level programming language
A high-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or be from the specification of the program, making the process of...

 such as Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and C#/.NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 (e.g. TorqueX
Torque Game Engine
The Torque Game Engine, or TGE, is a 3D computer game engine originally developed by Dynamix for the 2001 FPS Tribes 2. The Torque engine and its many derivative products are available for license from GarageGames, a company formed by many members of the Tribes 2 team at Dynamix...

, and Visual3D.NET) or Python (Panda3D
Panda3D
Panda3D is a game engine which includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games.Panda3D is open source and, as of May 28, 2008, free software under the revised BSD license. Releases prior to May 28, 2008 are not considered Free Software...

). 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
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 to support Indie game development. Microsoft developed XNA
Microsoft XNA
Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management. XNA attempts to free game developers from writing "repetitive boilerplate code" and to bring different aspects of game production into a single system...

 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
Managed code
Managed code is a term coined by Microsoft to identify computer program code that requires and will only execute under the "management" of a Common Language Runtime virtual machine ....

 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
SpeedTree
SpeedTree is a group of vegetation programming and modeling software products developed and sold by Interactive Data Visualization, Inc. that generates virtual foliage for animations and in real time for video games and simulations...

was used to render the realistic trees and vegetation in the role-playing game The Elder Scrolls IV: Oblivion
The Elder Scrolls IV: Oblivion
The Elder Scrolls IV: Oblivion is a single-player action role-playing video game developed by Bethesda Game Studios and published by Bethesda Softworks and the Take-Two Interactive subsidiary 2K Games...

and Fork Particle
Fork Particle
Fork Particle is a computer graphics visual effects modeling and software development kit developed and sold by Fork Particle, Inc. Fork Particle uses its real time Particle Systems technology to simulate visual effects or particle effects such as CGI explosions, fire, rain, smoke, dust, etc...

was used to simulate and render real time Particle Systems
Particle Systems
Particle Systems Ltd. was a computer game developer based in Sheffield, England. The company was founded by Glyn Williams and Michael Powell. Games developed by Particle Systems include Independence War and its sequel Independence War 2: Edge of Chaos...

 visual effects or particle effects in Sid Meier's Civilization V.

The four most widely used middleware packages that provide subsystems of functionality include RAD Game Tools
RAD Game Tools
RAD Game Tools is privately held company owned by Jeff Roberts and Mitch Soule based in Kirkland, Washington that develops video and computer game software technologies which are licensed primarily by video game companies. RAD Game Tools is somewhat unusual among middleware companies as they...

' Bink, Firelight FMOD
FMOD
FMOD is a proprietary audio library made by Firelight Technologies that plays music files of diverse formats on many different operating system platforms, used in games and software applications to provide audio functionality....

, Havok
Havok (software)
Havok Physics is a physics engine developed by Irish company Havok. It is designed primarily for video games, and allows for real-time collision and dynamics of rigid bodies in three dimensions. It provides multiple types of dynamic constraints between rigid bodies , and has a highly optimized...

, and Scaleform
Scaleform
Scaleform Corporation is a developer providing middleware for use in the video game industry. Their most recent software, Scaleform GFx, is a vector graphics rendering engine used to display Adobe Flash-based user interfaces, HUDs, and animated textures for games for Microsoft Windows, Mac OS X,...

 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
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...

 UI, along with a high quality video playback solution, and an Input Method Editor
Input method editor
An input method is an operating system component or program that allows any data, such as keyboard strokes or mouse movements, to be received as input. In this way users can enter characters and symbols not found on their input devices...

 (IME) add-on for in-game Asian chat support.

Some middleware contains full source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

, others just provide an API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 reference for a compiled binary library
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

. Some middleware programs can be licensed either way, usually for a higher fee for full source code.

Massively multiplayer online games

Middleware for massively multiplayer online game
Massively multiplayer online game
A massively multiplayer online game is a multiplayer video game which is capable of supporting hundreds or thousands of players simultaneously. By necessity, they are played on the Internet, and usually feature at least one persistent world. They are, however, not necessarily games played on...

s (MMOs, MMOGs) 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:
  • Icarus Studio's xScape Platform
  • Bigworld Technology
    Bigworld Technology
    BigWorld Technology is a middleware platform for the development of Massively Multiplayer Online Role-Playing Games and virtual worlds...

     (client / MMO specific server)
  • Exit Games
    Exit Games
    Exit Games is a German venture capital financed company, founded in 2003, with offices in Hamburg and Portland offering a multiplayer engine for multiplayer games and massively multiplayer online games on various technological platforms, including mobile, PC and consoles.-Technology:Exit Games...

     Neutron
  • HeroEngine
    HeroEngine
    HeroEngine is a 3D game engine and server technology platform originally developed by Simutronics Corporation specifically for building MMO-style games...

  • Monumental Games
    Monumental games
    Monumental Games is an independent UK video game developer. It was founded by industry veterans Rik Alexander and Rocco Loscalzo in 2005...

  • Multiverse Network
    Multiverse Network
    The Multiverse Network, Inc. is an American startup company creating a network and platform for Massively Multiplayer Online Games and 3D virtual worlds...

  • Q
    Q (game engine)
    Q is a 3D engine / tech development platform / interoperability standard developed by the London based developer Qube Software.- Overview :Qube has made considerable claims for Q. Its lead designers, Servan Keondjian and Doug Rabson have pointed to Q’s architecture as being its key innovation.Q is...

     (client-only, but with server solution as 'Messiah')
  • RedDwarf Server
    RedDwarf Server
    RedDwarf Server is an open source middleware solution for developing the server-side of massively multiplayer online games. It is the official community fork of Project Darkstar, an open-source project supported and managed by Sun Microsystems. Upon Oracle's acquisition of Sun, support for Project...

     (open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

    )
  • Vision Engine

First-person shooter engines

A well-known subset of game engines are 3D first-person shooter
First-person shooter
First-person shooter is a video game genre that centers the gameplay on gun and projectile weapon-based combat through first-person perspective; i.e., the player experiences the action through the eyes of a protagonist. Generally speaking, the first-person shooter shares common traits with other...

 (FPS) game engines. Groundbreaking development in terms of visual quality is done in FPS games on the human scale. While flight
Flight simulator
A flight simulator is a device that artificially re-creates aircraft flight and various aspects of the flight environment. This includes the equations that govern how aircraft fly, how they react to applications of their controls and other aircraft systems, and how they react to the external...

 and driving simulators
Racing game
A racing video game is a genre of video games, either in the first-person or third-person perspective, in which the player partakes in a racing competition with any type of land, air, or sea vehicles. They may be based on anything from real-world racing leagues to entirely fantastical settings...

 and real-time strategy
Real-time strategy
Real-time strategy is a sub-genre of strategy video game which does not progress incrementally in turns. Brett Sperry is credited with coining the term to market Dune II....

 (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
Jurassic Park: Trespasser
Jurassic Park: Trespasser is a video game released in 1998 for Microsoft Windows after much hype and anticipation. The player assumes the role of Anne, the sole survivor of a plane crash on InGen's "Site B" one year after the events of The Lost World: Jurassic Park...

(1998) introduced physics to the FPS games, but it did not become common until around 2002. Red Faction
Red Faction
Red Faction is a first-person shooter video game developed by Volition, Inc. and published by THQ. It was released for the PlayStation 2, Microsoft Windows and Mac in 2001. A version for the Nokia N-Gage was developed by Monkeystone Games. The game was also re-developed as a top-down shooter for...

(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
Battlezone II: Combat Commander
Battlezone II: Combat Commander, often abbreviated to BZII or BZ2, is a 1999 computer game released by Pandemic Studios as a sequel to Activision's 1998 Battlezone. Like Activision's Battlezone, Battlezone II is a hybrid tank shooter, first-person shooter and real-time strategy game...

(1999) added vehicle based combat to the usual FPS mix, which did not hit the mainstream until later. Tribes 2
Tribes 2
-Legacy:On November 20, 2002, Sierra released an update for Tribes 2. This update contained two new game types, new maps and updates to address several issues. Sierra, which is now part of Vivendi SU, licensed the franchise to Irrational Games for a third installment; Tribes: Vengeance was...

, Battlefield 1942
Battlefield 1942
Battlefield 1942 is a 3D World War II first-person shooter computer game developed by Swedish company Digital Illusions CE and published by Electronic Arts for Microsoft Windows and Apple Macintosh . The game can be played in singleplayer mode against the computer game AI or in multiplayer mode...

, Halo: Combat Evolved
Halo: Combat Evolved
Halo: Combat Evolved, frequently referred to as Halo: CE, or Halo 1, is a first-person shooter video game developed by Bungie and published by Microsoft Game Studios. The first game of the Halo franchise, it was released on November 15, 2001 as a launch title for the Xbox gaming system, and is...

and Unreal Tournament 2004
Unreal Tournament 2004
Unreal Tournament 2004, also known as UT2K4 and UT2004, is a futuristic first-person shooter computer game developed by Epic Games and Digital Extremes...

fully realized the potential for vehicular-combat and first person shooter integration.

Visual novel engines

Due to the less graphic-intensive nature of visual novel
Visual novel
A is an interactive fiction game featuring mostly static graphics, usually with anime-style art, or occasionally live-action stills or video footage...

 games, visual novel engines tend to be very simple compared to FPS game engines. Visual novel game engines include:
  • Visual Novelty
  • KiriKiri
    KiriKiri
    is a scripting engine by Japanese developer "W.Dee". It is almost exclusively used with the KAG framework to produce visual novels. Usually, the package of the two components is regarded as the whole engine, and referenced with major version numbers. Thus, the current version is called...

  • NScripter
    NScripter
    NScripter is a software engine that is used for the creation of visual novels, written by Naoki Takahashi. Due to its simplicity and its liberal license , it quickly became popular in Japan, and was used for a number of high-profile commercial and dōjin titles, such as HaniHani and...

  • Ren'Py
    Ren'Py
    The Ren'Py Visual Novel Engine is a free software engine which facilitates the creation of visual novels, a form of computer-mediated storytelling...

  • Digital Novel Markup Language
    Digital Novel Markup Language
    Digital Novel Markup Language is one of the first scripting language game engine for creating visual novels, an interactive fiction game. It was developed using C++ by a Japanese programmer only known by his or her Internet name, Karin. The programming structure is similar to HTML which it made it...


External links

  • GameMiddleware.org, a reference website concerning game middleware and game engines available for commercial use
  • DevMaster.net 3D Engines Database, most popular list of registered game engines (per Google
    Google
    Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

    search for "game engine")
  • Terrain in Games, an extensive overview of terrain rendering in 1997-2000 game engines
  • The mathematics behind a 3D Engine, a simple explanation about how to show 3D data-points into 2D computer screen.
  • Visualnovelty.com, Visual Novelty's game engine homepage.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK