HOME

TheInfoList



OR:

A game engine is a software framework primarily designed for the development of
video game Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
s and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term " software engine" used in the software industry. The game engine can also refer to the development software utilizing this framework, typically offering a suite of tools and features for developing games. Developers can use game engines to construct games for video game consoles and other types of computers. The core functionality typically provided by a game engine may include a rendering engine ("renderer") for 2D or 3D graphics, a physics engine or collision detection (and collision response),
sound In physics, sound is a vibration that propagates as an acoustic wave, through a transmission medium such as a gas, liquid or solid. In human physiology and psychology, sound is the ''reception'' of such waves and their ''perception'' by ...
,
scripting Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
, animation,
artificial intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machine A machine is a physical system using Power (physics), power to apply Force, forces and control Motion, moveme ...
,
networking Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
, streaming, memory management, threading, localization support, scene graph, and video support for cinematics. Game engine implementers often economize on the process of game development by reusing/adapting, in large part, the same game engine to produce different games or to aid in
porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally des ...
games to multiple platforms.


Purpose

In many cases, game engines provide a suite of visual development tools in addition to reusable software components. These tools are generally provided in an
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
to enable simplified, rapid development of games in a data-driven manner. Game-engine developers often attempt to preempt implementer needs by developing robust software suites which include many elements a game developer may need to build a game. Most game-engine suites provide facilities that ease development, such as graphics, sound, physics and
artificial-intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech ...
(AI) functions. These game engines are sometimes called " middleware" because, as with the business sense of the term, they provide a flexible and reusable software platform which provides all the core functionality needed, right out of the box, to develop a game application while reducing costs, complexities, and time-to-market — all critical factors in the highly competitive
video-game industry The video game industry encompasses the Video game development, development, marketing, and Video game monetization, monetization of video games. The industry (economics), industry encompasses dozens of job disciplines and thousands of jobs wor ...
. Like other types of middleware, game engines usually provide
platform Platform may refer to: Technology * Computing platform, a framework on which applications may be run * Platform game, a genre of video games * Car platform, a set of components shared by several vehicle models * Weapons platform, a system ...
abstraction Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or " concrete") signifiers, first principles, or other methods. "An a ...
, allowing the same game to run on various platforms (including game consoles and personal computers) with few, if any, changes made to the game
source-code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
. Often, programmers design game engines 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. Some game engines comprise 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 product. However achieved,
extensibility Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be th ...
remains a high priority for game engines due to the wide variety of uses for which they are applied. Despite the specificity of the name "game engine", end-users often re-purpose game engines 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 needed by games. These engines rely upon the game developer to implement the rest of this functionality or to 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". Examples of graphics engines include: Crystal Space, Genesis3D,
Irrlicht Irrlicht may refer to: * Irrlicht, the German name for will-o'-the-wisp, the ghostly light sometimes seen at night over bogs and swamps * "Irrlicht", the ninth song in the '' Winterreise'' cycle by Franz Schubert * ''Irrlicht'' (album), by Klau ...
, OGRE, RealmForge, Truevision3D, and Vision Engine. Modern game- or graphics-engines generally provide a scene graph - 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. As technology ages, the components of an engine may become outdated or insufficient for the requirements of a given
project A project is any undertaking, carried out individually or collaboratively and possibly involving research or design, that is carefully planned to achieve a particular goal. An alternative view sees a project managerially as a sequence of even ...
. Since the complexity of programming an entirely new engine may result in unwanted delays (or necessitate that a project restart from the beginning), an engine-development team may elect to update their existing engine with newer functionality or components.


History

Before game engines, games were typically written as singular entities: a game for the
Atari 2600 The Atari 2600, initially branded as the Atari Video Computer System (Atari VCS) from its release until November 1982, is a home video game console developed and produced by Atari, Inc. Released in September 1977, it popularized microprocess ...
, 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 Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine lea ...
by developers of games for older systems. 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 rule set with a small number of levels and graphics data. Since the golden age of arcade video games, it became common for video game companies to develop in-house game engines for use with first-party software. A notable example of an in-house game engine on home consoles in the mid-1980s was the smooth side-scrolling engine developed by Shigeru Miyamoto's team at Nintendo for the Nintendo Entertainment System (NES). The engine they had developed for the side-scrolling
racing game Racing games are a video game genre in which the player participates in a racing competition. They may be based on anything from real-world racing leagues to fantastical settings. They are distributed along a spectrum between more realistic ra ...
'' Excitebike'' (1984) was later employed for the scrolling platformer '' Super Mario Bros.'' (1985). This had the effect of allowing Mario to smoothly accelerate from a walk to a run, rather than move at a constant speed like in earlier platformers. While third-party game engines were not common up until the rise of 3D computer graphics in the 1990s, there were several 2D game creation systems produced in the 1980s for independent video game development. These include '' Pinball Construction Set'' (1983),
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
's ''War Game Construction Kit'' (1983), '' Thunder Force Construction'' (1984), '' Adventure Construction Set'' (1984), Garry Kitchen's GameMaker (1985), ''
Wargame Construction Set ''Wargame Construction Set'' is a video game game creation system published in 1986 by Strategic Simulations. Developed by Roger Damon, it allows the user to construct, edit and play customizable wargame scenarios. It was released for the Amiga, A ...
'' (1986), '' Shoot-'Em-Up Construction Kit'' (1987), '' Arcade Game Construction Kit'' (1988), and most popularly ASCII's '' RPG Maker'' engines from 1998 onward. Klik & Play (1994) is another legacy offering that's still available. The term "game engine" arose in the mid-1990s, especially in connection with 3D games such as first-person shooters with a first-person shooter engine. Epic games, founded by developer Tim Sweeney, debuted Unreal Engine in the year 1998. Such was the popularity of Id Software's '' Doom'' and '' Quake'' games that, rather than work from scratch, other developers licensed the core portions of the software and designed their own graphics, characters, weapons and levels—the "game content" or "game assets". Separation of game-specific rules and data from basic concepts like collision detection and game entity meant that teams could grow and specialize. Later games, such as id Software's '' Quake III Arena'' and
Epic Games Epic Games, Inc. is an American video game and software developer and publisher based in Cary, North Carolina. The company was founded by Tim Sweeney as Potomac Computer Systems in 1991, originally located in his parents' house in Potomac, ...
's 1998 '' Unreal'' were designed with this approach in mind, with the engine and content developed separately. The practice of licensing such
technology Technology is the application of knowledge to reach practical goals in a specifiable and reproducible way. The word ''technology'' may also mean the product of such an endeavor. The use of technology is widely prevalent in medicine, scie ...
has proved to be a useful auxiliary revenue stream for some game developers, as 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. At the very least, reusable engines make developing game sequels faster and easier, which is a valuable advantage in the competitive
video game industry The video game industry encompasses the Video game development, development, marketing, and Video game monetization, monetization of video games. The industry (economics), industry encompasses dozens of job disciplines and thousands of jobs wor ...
. While there was a strong rivalry between Epic and id around 2000, since then Epic's Unreal Engine has been far more popular than id Tech 4 and its successor
id Tech 5 id Tech 5 is a proprietary game engine developed by id Software. It followed its predecessors, id Tech 1, 2, 3 and 4, all of which had subsequently been published under the GNU General Public License. It was seen as a major advancement over i ...
. 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. 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 role-playing video game '' The Elder Scrolls III: Morrowind'' and the MMORPG '' Dark Age of Camelot'' are based on the Gamebryo engine, and the MMORPG '' Lineage II'' is based on the Unreal Engine. Game engines are used for games originally developed for home consoles as well; for example, the RenderWare engine is used in the '' Grand Theft Auto'' and ''
Burnout Burnout or burn-out may refer to: Entertainment * ''Burnout'' (film), a 2017 Moroccan film * ''Burn Out'' (film), a 2017 French film * Burnout (ride), a Funfields amusement ride in Australia * ''Burnout'' (series), a racing game series created by ...
'' franchises. Threading is taking on more importance due to modern multi-core systems (e.g. Cell) and increased demands in realism. Typical threads involve rendering, streaming, audio, and physics. Racing games have typically been at the forefront of threading with the physics engine running in a separate thread long before other core 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'' at 100 Hz versus '' Forza Motorsport 2'' 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 The Adventure Game Interpreter (AGI) is a game engine developed by Sierra On-Line. The company originally developed the engine for ''King's Quest'' (1984), an adventure game which Sierra and IBM wished to market in order to attract consumers ...
(AGI) and SCI systems, LucasArts' SCUMM system and Incentive Software's
Freescape engine Freescape is a video game engine, an early 3D game engine used in video games such as 1987's '' Driller''. Graphics were composed mostly of solid geometry rendered without shading. History Developed in-house by Incentive Software, Freescape is co ...
(in 1986). 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). 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 games: visualization, training, medical, and
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. Military simulations are seen as a useful way to develop tactical, strate ...
applications, with the CryEngine being one example. To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including
mobile phone A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive telephone call, calls over a radio freq ...
s (e.g.
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
phones, iPhone) and
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
s (e.g. WebGL, Shockwave, Flash, Trinigy's WebVision, Silverlight,
Unity Web Player Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at Apple Worldwide Developers Conference as a Mac OS X game engine. The engine has since been gradually extended to support a var ...
,
O3D O3D is an open-source (BSD license) JavaScript APIO3D Project Page
from Google Code
created by
DHTML). Additionally, more game engines are being built upon higher level languages such as
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and C#/ .NET (e.g. TorqueX, and
Visual3D.NET Visual3D Game Engine is a 3D game engine and game development tool written entirely in C# and built for the .NET Framework, with development of its 3D rendering engine first beginning in 2003. Visual3D was founded by '' PowerAccess for Microsof ...
), Python ( Panda3D), or Lua Script (Leadwerks). As most 3D rich games are now mostly GPU-limited (i.e. limited by the power of the graphics card), the potential slowdown due to translation overheads of higher level languages becomes negligible, while the productivity gains offered by these languages work to the game engine developers' benefit. These recent trends are being propelled by companies such as
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
to support indie game development. Microsoft developed XNA as the SDK of choice for all video games released on Xbox and related products. This includes the Xbox Live Indie Games channel designed specifically for smaller developers who don't have the extensive resources necessary to box games for sale on retail shelves. It is becoming easier and cheaper than ever to develop game engines for platforms that support managed frameworks.


Game engines as an industry

Producers of game engines decide how they allow users to utilize their products. Just as gaming is an industry, so are the engines they are built off. The major game engines come at varying prices, whether it be in the form of subscription fees or license payments. The Unity engine and the Unreal Engine are currently the two most popular choices for game developers. Although the differences among the different game engines blur as they build their own tools on top of them, different game developers may be too used to a system to change, or attracted by the huge benefits of such engines regardless of pay-walls.


Game middleware

In the broader sense of the term, game engines themselves can be described as middleware. In the context of video games, however, the term "middleware" 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. The four most widely used middleware packages that provide subsystems of functionality include RAD Game Tools' Bink, Firelight FMOD, Havok, and Scaleform GFx. RAD Game Tools develops Bink for basic video rendering, along with Miles audio, and Granny 3D rendering. Firelight FMOD is a low cost robust audio library and toolset. Havok provides a robust physics simulation system, along with a suite of animation and behavior applications. '' Scaleform'' provides GFx for high performance Flash UI and high-quality video playback, and an
Input Method Editor An input method (or input method editor, commonly abbreviated IME) is an operating system component or program that enables users to generate characters not natively available on their input devices by using sequences of characters (or mouse o ...
(IME) add-on for in-game Asian chat support. Other middleware is used for performance optimisation - for example ' Simplygon' helps to optimise and generate level of detail meshes, and '
Umbra The umbra, penumbra and antumbra are three distinct parts of a shadow, created by any light source after impinging on an opaque object. Assuming no diffraction, for a collimated beam (such as a point source) of light, only the umbra is cast. ...
' adds occlusion culling optimisations to 3d graphics. Some middleware contains full
source code In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
, others just provide an API reference for a compiled binary
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
. Some middleware programs can be licensed either way, usually for a higher fee for full source code.


See also

* List of game engines * List of first-person shooter engines *
List of game middleware Middleware for games is a piece of software that is integrated into a game engine to handle some specialized aspect of it, such as physics, graphics or networking. Notable * Autodesk Gameware - from Autodesk, includes Scaleform GFx, Kynapse, Bea ...
* Game physics * 3D computer graphics * Virtual studio * Authoring system


References

{{Authority control Video game development