All Topics  
Game engine

 
Game Engine

   Email Print
   Bookmark   Link






 

Game engine



 
 
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 desktop operating systems such as Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, and Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
. 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 3D model, by means of computer programs. The model is a description of three-dimensional objects in a strictly defined language or data structure....
 (“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 Cartesian coordinate system#Three-dimensional coordinate system 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 by computers and, more generally, the representation and manipulation of pictorial data by a computer....
, a physics engine
Physics engine

A physics engine is a computer program that simulates Newtonian physics models, using variables such as mass, velocity, friction and wind resistance....
 or collision detection
Collision detection

In physical simulations, video games and computational geometry, collision detection involves algorithms for checking for collision, i.e. intersection, of two given solids....
 (and collision response), sound
Sound

Sound is vibration transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a threshold of hearing to be heard, or the sensation stimulated in organs of hearing by such vibrations....
, scripting
Scripting language

A scripting language, script language or extension language, is a programming language that allows some control of a single or many Application software....
, animation
Computer animation

Computer animation is the art of creating moving images with the use of computers. It is a subfield of computer graphics and animation....
, artificial intelligence, networking
Computer networking

Computer networking is the engineering discipline concerned with communication between computer systems or Peripheral devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called Request for Commentss....
, streaming, memory management, threading, and a scene graph
Scene graph

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






Discussion
Ask a question about 'Game engine'
Start a new discussion about 'Game engine'
Answer questions from other users
Full Discussion Forum



Encyclopedia


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 desktop operating systems such as Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, and Mac OS X
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
. 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 3D model, by means of computer programs. The model is a description of three-dimensional objects in a strictly defined language or data structure....
 (“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 Cartesian coordinate system#Three-dimensional coordinate system 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 by computers and, more generally, the representation and manipulation of pictorial data by a computer....
, a physics engine
Physics engine

A physics engine is a computer program that simulates Newtonian physics models, using variables such as mass, velocity, friction and wind resistance....
 or collision detection
Collision detection

In physical simulations, video games and computational geometry, collision detection involves algorithms for checking for collision, i.e. intersection, of two given solids....
 (and collision response), sound
Sound

Sound is vibration transmitted through a solid, liquid, or gas, composed of frequencies within the range of hearing and of a threshold of hearing to be heard, or the sensation stimulated in organs of hearing by such vibrations....
, scripting
Scripting language

A scripting language, script language or extension language, is a programming language that allows some control of a single or many Application software....
, animation
Computer animation

Computer animation is the art of creating moving images with the use of computers. It is a subfield of computer graphics and animation....
, artificial intelligence, networking
Computer networking

Computer networking is the engineering discipline concerned with communication between computer systems or Peripheral devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called Request for Commentss....
, streaming, memory management, threading, and a scene graph
Scene graph

A scene graph is a general data structure commonly used by vector graphics applications and modern computer games. Examples of such programs include AutoCAD, Adobe Illustrator, Acrobat 3D, OpenSceneGraph and CorelDRAW....
. The process of game development
Game development

Game development is the process by which a game is produced. Today this term most commonly refers to the development of video games....
 is frequently economized by in large part reusing the same game engine to create different games.

Overview

Game engines provide a suite of visual development tools
Game development tool

A game development tool is a specialized software Application software that assists or facilitates the making of a Video game. Some tasks handled by tools include the conversion of assets into formats required by the game, level editor and Scripting language compiler....
 in addition to reusable software components. These tools are generally provided in an integrated development environment
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging 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, which involves iterative development and the construction of prototypes....
 of games in a data-driven
Data-driven design

In computer science, data-driven design is the result of adapting abstract data type design methods to object-oriented programming . This type of design is used in object-oriented programming to define classes during the conception of a piece of software....
 manner. These games engines are sometimes called "game middleware
Middleware

Middleware is computer software that connects software components or applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network....
" 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.

Like other middleware solutions, game engines usually provide platform abstraction, allowing the same game to be run on various platforms
Platform (computing)

In computing, a platform describes some sort of hardware architecture or software framework , that allows Computer software to run. Typical platforms include a computer's Computer architecture, operating system, programming languages and related runtime libraries or graphical user interface....
 including game consoles
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
 and personal computers with few, if any, changes made to the game source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
. Often, game middleware is 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) middleware components such as Havok
Havok (software)

Havok Physics is a physics engine developed by Irish company Havok . It is designed for computer game and video games by allowing interaction between objects or other characters in real-time and by giving objects physics-based qualities in three dimensions....
 for physics, FMOD
FMOD

FMOD is a commercial audio Library made by Firelight Technologies that plays music files of diverse Audio file format on many different Platform ....
 for sound, or Scaleform
Scaleform

OverviewScaleform Corporation is a developer providing Game engine#Middleware for use in the Computer and 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 the PC, Mac, Linux, as well as Xb...
 for UI. Some game engines such as RenderWare
RenderWare

RenderWare is computer game and video game Game engine#Middleware from Criterion Software....
 are even designed as a series of loosely connected 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 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
Video game developer

A video game developer is a Computer software Software developer that creates video games. A developer may specialize in a certain video game console, such as Sony's PlayStation 3, Microsoft's Xbox 360, Nintendo's Wii, or may develop for a variety of systems, including personal computers....
 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." However, 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
RealmForge

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

Truevision3D is a 3D commerce 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....
, OGRE
Ogre

An ogre is a large, cruel and hideous humanoid monster], featured in mythology, folklore and fiction. Ogres are often depicted in fairy tales and folklore as feeding on human beings, and have appeared in many classic works of literature....
, Crystal Space
Crystal Space

Crystal Space is a framework for developing 3D computer graphics software written in C++ by Jorrit Tyberghein and others. The first public release was on August 26, 1997....
, 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....
, Irrlicht
Irrlicht Engine

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

jMonkey Engine is a Java scenegraph Application programming interface. Its primary focus is high-performance 3D computer graphics gaming. jME itself is written entirely in Java and uses an abstraction layer for communicating Java Native Interface with the platform's hardware....
. Modern game or graphics engines generally provide a scene graph
Scene graph

A scene graph is a general data structure commonly used by vector graphics applications and modern computer games. Examples of such programs include AutoCAD, Adobe Illustrator, Acrobat 3D, OpenSceneGraph and CorelDRAW....
, 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
Direct3D

Direct3D is part of Microsoft's DirectX application programming interface. Direct3D is only available for Microsoft's various Microsoft Windows operating systems and 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 Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
 which provides a software abstraction of the GPU
Graphics processing unit

A graphics processing unit or GPU is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose Central processing unit for a range of com...
 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....
, SDL
Simple DirectMedia Layer

Simple DirectMedia Layer is a cross-platform, free and open source software multimedia Library written in C that presents a simple interface to various platforms' computer graphics, sound, and input devices, allowing a developer to write a Personal computer game or other multimedia application that can run on many operating systems includi...
, and OpenAL
OpenAL

OpenAL is a free software cross-platform audio Application programming interface. It is designed for efficient rendering of multichannel three dimensional positional audio....
 are also commonly used in games as they provide hardware-independent access to other computer hardware
Computer hardware

A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
 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
Shader

A shader in the field of computer graphics is a set of software instructions, which is used primarily to calculate Rendering effects on graphics hardware with a high degree of flexibility....
 support or, in the case of Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
, support for Direct3D 10
DirectX

Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms....
.

With the advent of hardware accelerated physics processing, various physics API such as COLLADA
COLLADA

COLLADA is a COLLAborative Design Activity for establishing an interchange file format for interactive 3-D computer graphics applications....
 and PAL 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....
 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
Atari 2600

The Atari 2600 is a video game console released in October 1977. It is credited with popularizing the use of microprocessor-based hardware and cartridge containing game code, instead of having non-microprocessor dedicated console hardware with all games built in....
, for example, had to be designed from the ground up to make the most 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 bleeding 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 term "game engine" arose in the mid-1990s, especially in connection with 3D games such as first-person shooter
First-person shooter

File:Freedoom aaa.pngFirst-person shooter is a Video game genres, featuring a First person , with which the player views the action as if through the eyes of the protagonist and in which the primary element is combat based around shooting....
s (FPS). (See also: first-person shooter engine
First-person shooter engine

A first-person shooter engine simulates a 3D graphics environment for use in a first-person shooter computer or 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 developer from Mesquite, Texas. The company was founded in 1991 by four members of the computer company Softdisk: game programmer John D....
's Doom and Quake
Quake

Quake is a first-person shooter computer game that was released by id Software on June 22, 1996. It was the first game in the popular Quake of computer and video games....
 games that, rather than work from scratch, other developers
Video game developer

A video game developer is a Computer software Software developer that creates video games. A developer may specialize in a certain video game console, such as Sony's PlayStation 3, Microsoft's Xbox 360, Nintendo's Wii, or may develop for a variety of systems, including personal computers....
 licensed the core portions of the software and designed their own graphics, characters, weapons and level
Level (computer and video games)

In video games, a level is a discrete subdivision of a video game's virtual world or set of challenges.Each level almost always has an associated objective, which may be as simple as walking from point A to point B, though the objective can be far more elaborate than that....
s—the "game content" or "game assets." Separation of game-specific rules and data from basic concepts like collision detection
Collision detection

In physical simulations, video games and computational geometry, collision detection involves algorithms for checking for collision, i.e. intersection, of two given solids....
 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 Game development by id Software and featured music composed by Sonic Mayhem and Front Line Assembly....
 and Epic Games
Epic Games

Epic Games, also known as Epic and formerly Epic MegaGames, is a 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....
's 1998 Unreal
Unreal

Unreal is a first-person shooter computer game developed by Epic Games and Digital Extremes and published by GT Interactive in May 1998. It was powered by an original gameplay and computer engine that Unreal Engine, one that had been in development for over three years in founder Tim Sweeney 's garage before the game was released....
 were designed with this approach in mind, with the engine and content developed separately. The practice of licensing such technology
Technology

Technology is a broad concept that deals with an animal species' usage and knowledge of tools and crafts, and how it affects an animal species' ability to control and adapt to its Natural environment....
 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 $3,750,000 (in the case of Warcraft III), and the number of licensees can reach several dozen companies (as for the Unreal Engine). At the very least, reusable engines make developing game sequels faster and easier, which is a valuable advantage in the competitive computer game industry.

Modern game engines are some of the most complex applications written, frequently featuring dozens of finely tuned systems interacting to ensure a finely controlled user experience. The continued refinement of game engines has created a strong separation between rendering, scripting, artwork, and level design
Level design

Level design or game mapping is the creation of level s—locales, stages, or missions—for a video game . This is commonly done using level design tools, special software usually developed just for the purpose of building levels, however some games feature built-in level editing tools....
. It is now common (as of 2003), 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
Computer role-playing game

A computer role-playing game is a broad video game genre originally developed for personal computers and other home computers. While technically not a separate genre, and sharing the same defining characteristics as console RPGs there are nonetheless general tendencies that make them distinct from RPGs on other platforms....
 Morrowind
The Elder Scrolls III: Morrowind

The Elder Scrolls III: Morrowind, commonly referred to simply as Morrowind, is a single player computer role-playing game developed by Bethesda Game Studios, and published by Bethesda Softworks and Ubisoft....
 and the MMORPG
MMORPG

A massively multiplayer online role-playing game is a genre of computer role-playing games in which a large number of player interact with one another in a virtual world....
 Dark Age of Camelot
Dark Age of Camelot

Dark Age of Camelot is a 3D computer graphics medieval fantasy MMORPG that revolves around war between three realms following King Arthur's rule....
 are based on the Gamebryo
Gamebryo

Gamebryo is a game engine, originally from Numerical Design Limited , and is the successor to NDL's NetImmerse engine.Since the creation of Gamebryo, NDL merged with Emergent Game Technologies....
 engine, and the MMORPG Lineage II
Lineage II

Lineage II: The Chaotic Throne is a fantasy massive multiplayer online role-playing game for the PC, and a prequel set 150 years before Lineage ....
 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 computer game and video game Game engine#Middleware from Criterion Software....
 engine is used in the Grand Theft Auto
Grand Theft Auto III

Grand Theft Auto III is a Nonlinear gameplay action-adventure game computer game and video game video game developer by DMA Design , and video game publisher by Rockstar Games....
 and Burnout franchises.

Threading is taking on more importance due to modern multi-core systems (e.g. Sony's 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
Need for Speed

Need For Speed is a series of racing game video games video game developer by Canadian based company EA Black Box and published by Electronic Arts....
 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
Adventure Game Interpreter

AGI was the development tool used by Sierra Entertainment to create their early adventure games.The first King's Quest game originally used a language named Game Assembly Language, or *.gal, by its designer, Arthur Abraham....
 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 Adventure Game Interpreter, and the runtime environment for such adventure games....
 systems, LucasArts' SCUMM
SCUMM

SCUMM is a scripting language developed at LucasArts to ease development of the graphical LucasArts adventure games Maniac Mansion.It is somewhere between a game engine and a programming language, allowing designers to create locations, items and dialogue sequences without writing code in the actual language the game source code wo...
 system and Incentive Software
Incentive Software

Incentive Software Ltd. was a United Kingdom video game developer and video game publisher founded by Ian Andrew in 1983. Programmers included Sean Ellis, Stephen Northcott and Ian's brother Chris Andrew....
's Freescape engine. However, 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 game
Serious game

A serious game is a term used to refer to a software or hardware application developed with video game technology and game design principles for a primary purpose other than pure entertainment....
s: visualization, training, medical, and military simulation
Military simulation

Military simulations, also known informally as military exercise, are simulations in which theories of warfare can be tested and refined without the need for actual hostilities....
 applications. To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including mobile phones (e.g. iPhone
IPhone

The iPhone is an internet-connected multimedia smartphone designed and marketed by Apple Inc. with a flush multi-touch screen and a minimal hardware interface....
) and web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
s (e.g. Shockwave, Flash
Adobe Flash

Adobe Flash is a multimedia Platform created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate...
, Silverlight).

Additionally, more game engines are being built upon higher level languages
High-level programming language

In computing, 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 more Porting across platforms....
 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 ....
 and C#/.NET
.net

.net is a generic top-level domain used on the Internet's Domain Name System. The .net gTLD is currently operated by VeriSign. Registrations are processed via accredited registrars and internationalized domain names are also accepted ....
 (e.g. TorqueX
Torque Game Engine

The Torque Game Engine, or TGE, is a modified version of a 3D computer graphics computer game game engine originally developed by Dynamix for the 2001 First-person shooter Tribes 2....
, Blade3D
Blade3D

Blade3D is an All-in-One Game Engine and game development tool written in C Sharp /.NET Framework for Microsoft XNA on the to run on Microsoft Windows and Xbox360....
, and Visual3D.NET). 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
High-level programming language

In computing, 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 more Porting across platforms....
 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 Apple Inc. and Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 to support Indie game development on more platforms, such as the iPhone
IPhone

The iPhone is an internet-connected multimedia smartphone designed and marketed by Apple Inc. with a flush multi-touch screen and a minimal hardware interface....
 and the Xbox360 using 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 ....
 or the .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
 and OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
/OpenAL
OpenAL

OpenAL is a free software cross-platform audio Application programming interface. It is designed for efficient rendering of multichannel three dimensional positional audio....
 and XNA
Microsoft XNA

Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates Video game game development and management....
 for graphics and audio rendering. It is becoming easier and cheaper than ever to develop games for platforms that support managed
Managed code

Managed code is Source code that executes under the management of a virtual machine, unlike unmanaged code, which is executed directly by the computer's Central processing unit....
 frameworks.

Middleware


Some companies now specialize in developing software suites known as "middleware." Middleware 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 middleware programs provide facilities that ease development, such as graphics, sound, physics and AI functions. Gamebryo
Gamebryo

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

RenderWare is computer game and video game Game engine#Middleware from Criterion Software....
 are such widely used middleware programs.

Some middleware only does one thing, but does it more convincingly or more efficiently than general purpose engines. For example, SpeedTree
SpeedTree

SpeedTree is a programming package produced by Interactive Data Visualization, Inc. that generates virtual foliage in real time for video games and simulations....
 was used to render the realistic trees and vegetation in the role-playing game
Computer role-playing game

A computer role-playing game is a broad video game genre originally developed for personal computers and other home computers. While technically not a separate genre, and sharing the same defining characteristics as console RPGs there are nonetheless general tendencies that make them distinct from RPGs on other platforms....
 The Elder Scrolls IV: Oblivion
The Elder Scrolls IV: Oblivion

The Elder Scrolls IV: Oblivion is a single-player Computer role-playing game video game developed by Bethesda Game Studios and published by Bethesda Softworks and the Take-Two Interactive subsidiary 2K Games....
.

Two widely-used packages that provide subsystems of functionality include Havok
Havok (software)

Havok Physics is a physics engine developed by Irish company Havok . It is designed for computer game and video games by allowing interaction between objects or other characters in real-time and by giving objects physics-based qualities in three dimensions....
 and several of RAD Game Tools
RAD Game Tools

RAD Game Tools is privately-held company based owned by Jeff Roberts and Mitch Soule in Kirkland, Washington that develops video game and computer game software technologies which are licensed primarily by video game developer....
' systems. Havok provides a robust physics simulation system and RAD Game Tools develops systems for video rendering, audio playback, and 3D rendering.

Some middleware contains full source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
, others just provide an API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 reference for a compiled binary library
Library (computer science)

In computer science, a library is a collection of subroutines or Class used to develop software. Libraries contain code and data that provide services to independent programs....
. 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
Massively multiplayer online game

A massively multiplayer online game is a video game which is capable of supporting hundreds or thousands of players simultaneously. By necessity, they are played on the Internet, and feature at least one persistent world....
 is far more complex than for single-player video games. However, the increasing popularity of MMOGs is spurring development of such middleware packages. Some prominent solutions, based upon sales, include:

  • Multiverse Network
    Multiverse Network

    The Multiverse Network, Inc. is an United States startup company creating a network and platform for MMOG and 3D virtual worlds. Multiverse's stated aim is to lower the barrier of entry for development teams by providing a low-cost software platform for online game and virtual world development....
  • Gamebryo
    Gamebryo

    Gamebryo is a game engine, originally from Numerical Design Limited , and is the successor to NDL's NetImmerse engine.Since the creation of Gamebryo, NDL merged with Emergent Game Technologies....
  • Bigworld Technology
    Bigworld Technology

    BigWorld Technology is a middleware platform for the development of Massively Multiplayer Online Role-Playing Games and virtual worlds. It was developed by the Australian game development and technology company, Micro Forte....
  • HeroEngine
    HeroEngine

    HeroEngine is a game engine and server technology platform developed by Simutronics specifically for building MMO-style games. Originally developed for the company's own game Hero's Journey , the engine won multiple awards at tradeshows, and has since been licensed by other companies such as BioWare and Stray Bullet Games ....
  • Monumental Games
    Monumental games

    Monumental Games is an independent United Kingdom video game developer and a provider of Massively Multiplayer Online Games technology through its Monumental Technology Suite ....
  • Exit Games Neutron
    Exit Games

    Exit Games is a German venture capital financed company, founded in 2003, with offices in Hamburg and Portland,_Oregon offering a multiplayer Game_engine for Multiplayer_games and MMOG on various technological platforms, including mobile, PC and consoles....
  • Project Darkstar
    Project Darkstar

    Project Darkstar is an Open Source MMOG Game engine#Middleware solution written in Java by the Project Darkstar team at Sun Microsystems. It is a research project headed by Sun Microsystems Distinguished Engineer Jim Waldo that was publicly released on August 30th, 2007, and "aims to help developers and operators avoid a range of serious, y...
     (Open Source)


FPS game engines

A well-known subset of game engines are 3D first-person shooter
First-person shooter

File:Freedoom aaa.pngFirst-person shooter is a Video game genres, featuring a First person , with which the player views the action as if through the eyes of the protagonist and in which the primary element is combat based around shooting....
 (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 system that tries to copy, or simulation, the experience of flight an aircraft. It is as realistic as possible. The different types of flight simulator range from video games up to full-size cockpit replicas mounted on hydraulic actuators, controlled by state of the art computer technology....
 and driving simulators
Racing game

A racing game is a genre of Video games. Racing games are either in the first or third person perspective. They may be based on anything from real-world racing leagues to entirely fantastical settings, and feature any type of land, air, or sea vehicles....
 and real-time strategy
Real-time strategy

Real-time strategy games are a genre of computer wargames which do not progress incrementally in turn-based game.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 at smaller, more human 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 computer game, which was 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 didn't become common until around 2002. Red Faction
Red Faction

Red Faction is a first-person shooter video game that was released in 2001 for the PlayStation 2, Microsoft Windows, and Macintosh by THQ and Volition, Inc.....
 (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 Video game released by Pandemic Studios as a sequel to Activision's 1998 Battlezone ....
 (1999) added vehicle based combat to the usual FPS mix, which did not hit the mainstream until later. Tribes 2
Tribes 2

Tribes 2 is a sci-fi first-person shooter computer game based in the fictional Earthsiege universe. As the name indicates it is the second game in the Tribes , following Starsiege: Tribes....
, Battlefield 1942
Battlefield 1942

Battlefield 1942 is a 3D computer graphics 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 ....
, Halo: Combat Evolved
Halo: Combat Evolved

Halo: Combat Evolved is a first-person shooter video game developed by Bungie Studios. The first game of the Halo series, it was released on November 15, 2001 as a launch title for the Xbox video game console, and is considered the platform's "killer application." With more than five million copies sold worldwide as of November 9,...
 and Unreal Tournament 2004
Unreal Tournament 2004

Unreal Tournament 2004, also known as UT2K4 and UT2004, is a futuristic first-person shooter Video game developed by Epic Games and Digital Extremes....
 fully realized the potential for vehicular-combat and first person shooter integration.

See also

  • List of game engines
    List of game engines

    Several tools called game engines are available for game designers to easily code a game quickly without building from the ground up....
  • Game programmer
    Game programmer

    A game programmer is a programmer who primarily develops video games or related software . Game programming has many specialized disciplines; practitioners of any may regard themselves as "game programmers"....
  • Level designer
    Level designer

    A level designer is a person who creates level s, challenges or missions for computer game and/or video games using a specific set of Computer programs....
  • Video game developer
    Video game developer

    A video game developer is a Computer software Software developer that creates video games. A developer may specialize in a certain video game console, such as Sony's PlayStation 3, Microsoft's Xbox 360, Nintendo's Wii, or may develop for a variety of systems, including personal computers....
  • Video game publisher
    Video game publisher

    A video game publisher is a company that Publishing video games that they have either developed internally or have had developed by a video game developer....
  • First person shooter engine


External links

  • , a reference website concerning game middleware and game engines available for commercial use
  • , most popular list of registered game engines (per Google
    Google

    Google Inc. is an United States public company, earning revenue from AdWords related to its Google search, Gmail, Google Maps, Google Apps, Orkut, and YouTube services as well as selling advertising-free versions of the Google Search Appliance....
     search for "game engine")
  • , an extensive overview of terrain rendering in 1997-2000 game engines