Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Game engine
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Framework for video game development}} {{multiple issues|1= {{update|date=February 2018}} {{original research|date=August 2017}} {{More citations needed|date=November 2019}} }} {{Video game industry}} A '''game engine''' is a [[software framework]] primarily designed for the development of [[video game]]s which generally includes relevant [[library (computing)|libraries]] and support programs such as a level editor.<ref>{{cite book|url=https://books.google.com/books?id=bZZyDQAAQBAJ&pg=PA146 |title=Technologies and Innovation: Second International Conference, CITI 2016, Guayaquil, Ecuador, November 23-25, 2016, Proceedings |isbn=9783319480244 |access-date=2021-07-22 |last1=Valencia-Garcia |first1=Rafael |display-authors=et al. |year=2016|publisher=Springer }}</ref> The "engine" terminology is akin to the term "[[software engine]]" used more widely in the [[software industry]]. ''Game engine'' can also refer to the development software supporting this framework, typically a suite of tools and features for developing games.<ref>{{cite web |url=https://unity.com/how-to/beginner/game-development-terms |title=Common game development terms and definitions | Game design vocabulary | Unity |publisher=Unity |access-date=2021-07-14 |archive-url=https://web.archive.org/web/20170806002513/https://cdn2.unrealengine.com/Resources/files/Build_1.x_Not_1.0_JamesTan-1535398852.pdf |archive-date=2017-08-06 |url-status=live}}</ref><ref>{{cite web |url=https://cdn2.unrealengine.com/Resources/files/Build_1.x_Not_1.0_JamesTan-1535398852.pdf |title=Introduction - Unreal Engine (Canterbury Software Summit 2013 slides) |last=Tan |first=James |website= Unreal Engine |access-date=2021-07-14}}</ref> [[Video game developer|Developers]] can use game engines to construct games for [[video game console]]s and other types of [[computer]]s. The core functionality typically provided by a game engine may include a [[rendering (computer graphics)|rendering]] engine ("renderer") for [[2D computer graphics|2D]] or [[3D computer graphics|3D]] [[computer graphics|graphics]], a [[physics engine]] or [[collision detection]] (and collision response), [[sound]], [[scripting language|scripting]], [[computer animation|animation]], [[game AI|artificial intelligence]], [[computer networking|networking]], streaming, [[memory management]], [[thread (computing)|threading]], [[internationalization and localization|localization]] support, [[scene graph]], and video support for [[cinematic cutscene|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<ref> {{cite web |url= http://www.gamecareerguide.com/features/529/what_is_a_game_.php |title= What is a Game Engine? |publisher= GameCareerGuide.com |access-date= 2013-11-24}} </ref> or to aid in [[porting]] games to multiple platforms. ==Purpose== [[File:UI of Godot Game Engine.jpg|thumb|300px|Creating a [[platform game]] in [[Godot (game engine)|Godot]] ]] In many cases, game engines provide a suite of visual [[game development tool|development tools]] in addition to reusable software components. These tools are generally provided in an [[integrated development environment]] to enable simplified, [[rapid application development|rapid development]] of games in a [[data-driven design|data-driven]] manner. Game-engine developers often attempt to preempt implementer needs by developing [[robustness (computer science)|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]] (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 (feature)|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.<ref>{{cite web|url= http://www.gamedaily.com/articles/features/my-turn-the-real-cost-of-middleware/71334/?biz=1|title= My Turn: The Real Cost of Middleware|last= O'Neill|first= John|date= January 15, 2008|publisher= Gamedaily.com|url-status= dead|archive-url= https://web.archive.org/web/20090830205358/http://www.gamedaily.com/articles/features/my-turn-the-real-cost-of-middleware/71334/?biz=1|archive-date= August 30, 2009|access-date= 2013-11-24}}</ref> Like other types of middleware, game engines usually provide [[computing platform|platform]] [[abstraction (computer science)|abstraction]], allowing the same game to run on various platforms (including [[video game console|game consoles]] and personal computers) with few, if any, changes made to the game [[source code]]. Often, programmers design game engines with a [[component-based software engineering|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]] 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 computer graphics|real-time graphical]] requirements—such as [[product demonstration|marketing demos]], [[architectural visualization]]s, [[training simulation]]s, and [[conceptual model|model]]ing environments.<ref>{{usurped|1=[https://web.archive.org/web/20131017044354/http://adlcommunity.net/file.php/36/GrooveFiles/Games%20Madison/report%20Middleware.pdf Report on Use of Middleware in Games]}}</ref> Some game engines only provide [[real-time computer graphics|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 Engine|Irrlicht]], [[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.{{Citation needed|date=March 2023}} Most game engines or graphics engines use a [[Graphics API]], which eases communication with the [[GPU]]. But older games did not have hardware acceleration or GPUs and had to build their own software renderer. As technology ages, the components of an engine may become outdated or insufficient for the requirements of a given [[project]]. 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. Game engines are not limited to use in the video game field, and have found uses in other scientific fields. Part of this is due to game engines being optimized for consumer-grade computing equipment rather than high-performance computing, allowing researchers to develop programs for their use on lower cost machines. Game engines also simplify many of the computing operations needed for scientific software, including graphics, networking, and interactivity, reducing the need to develop these features themselves.<ref>{{cite journal | title = Game Engines in Scientific Research | doi = 10.1145/502269.502288 | date = January 2002 | journal = [[Communications of the ACM]] | volume = 45 | issue = 1 | first1 = Michael | last1 = Lewis | first2 = Jeffrey | last2 = Jacobson | url = https://cacm.acm.org/research/introduction-64/ | url-access = subscription }}</ref> ==History== [[File:Quake - family tree 2 Simplified.svg|thumb|300px|Some game engines experience an evolution over time and develop a family tree, like for instance [[id software|id's]] [[Quake engine]] which resulted in the [[id Tech]] family.]] Before game engines, games were typically written as singular entities: a game for the [[Atari 2600]], 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 (operating system)|kernel]] 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 game|arcade]] [[arcade system board|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 video game console|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]] ''[[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.<ref>{{cite book |last1=Williams |first1=Andrew |title=History of Digital Games: Developments in Art, Design and Interaction |date=16 March 2017 |publisher=[[CRC Press]] |isbn=978-1-317-50381-1 |pages=152–4}}</ref> 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 system]]s produced in the 1980s for [[independent video game development]]. These include ''[[Pinball Construction Set]]'' (1983), [[ASCII (company)|ASCII]]'s ''War Game Construction Kit'' (1983),<ref>{{cite web|title=War Game Construction Kit|url=http://retropc.net/fm-7/museum/softhouse/ascii/000701300.html|work=[[:ja:Oh!FM|Oh!FM]]|access-date=3 September 2012|archive-url=https://web.archive.org/web/20130728111753/http://retropc.net/fm-7/museum/softhouse/ascii/000701300.html|archive-date=28 July 2013}} [https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=http%3A%2F%2Fretropc.net%2Ffm-7%2Fmuseum%2Fsofthouse%2Fascii%2F000701300.html Alt URL]</ref> ''[[Thunder Force (series)|Thunder Force Construction]]'' (1984),<ref>{{cite web|title=Thunder Force Construction|url=http://retropc.net/fm-7/museum/softhouse/tecnosoft/330602301.html|work=[[:jp:Oh!FM|Oh!FM]]|access-date=1 September 2012|archive-url=https://web.archive.org/web/20130728113345/http://retropc.net/fm-7/museum/softhouse/tecnosoft/330602301.html|archive-date=28 July 2013}} [https://translate.google.com/translate?sl=ja&tl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fretropc.net%2Ffm-7%2Fmuseum%2Fsofthouse%2Ftecnosoft%2F330602301.html Alt URL]</ref> ''[[Adventure Construction Set]]'' (1984), [[Garry Kitchen's GameMaker]] (1985), ''[[Wargame Construction Set]]'' (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 is still available.<ref name="produsase japan">{{cite journal | last= Fiadotau | first = Mikhail | title = Dezaemon, RPG Maker, NScripter: Exploring and classifying game 'produsage' in 1990s Japan | journal = Journal of Gaming & Virtual Worlds | volume = 11 | issue = 3 | pages=215–230 | date = 2019 | doi = 10.1386/jgvw.11.3.215_1 | s2cid = 213694676}}</ref> The term "game engine" arose in the mid-1990s, especially in connection with 3D games such as [[first-person shooter]]s with a [[first-person shooter engine]]. Epic games, founded by developer Tim Sweeney, debuted Unreal Engine in the year 1998.<ref>{{Cite web|last=Weinberger|first=Matt|title=The CEO behind 'Fortnite' says it's 'evolving beyond being a game' and explains the company's ambitious vision|url=https://www.businessinsider.com/epic-games-ceo-tim-sweeney-fortnite-unreal-engine-2019-3|access-date=2022-02-17|website=Business Insider|language=en-US}}</ref> Such was the popularity of [[Id Software]]'s ''[[Doom (1993 video game)|Doom]]'' and ''[[Quake (series)|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 [[level (computer and video games)|level]]s—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.<ref name="produsase japan" /> Later games, such as [[id Software]]'s ''[[Quake III Arena]]'' and [[Epic Games]]'s 1998 ''[[Unreal (1998 video game)|Unreal]]'' were designed with this approach in mind, with the engine and content developed separately. The practice of licensing such technology has proved to be a useful auxiliary revenue stream for some game developers, as one license for a high-end commercial game engine can range from $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. While there was a strong rivalry between Epic and id around the year 2000, since then Epic's Unreal Engine has been far more popular than [[id Tech 4]] and its successor [[id Tech 5]].<ref>{{cite web|last=Bramwell |first=Tom |url=http://www.eurogamer.net/articles/id-tech-5-interview |title=id Tech 5 Interview • Page 1 • Interviews • |publisher=Eurogamer.net |date=2007-08-09 |access-date=2013-11-24}}</ref><!--Actually John Carmack of id just wasn't at all interested in licensing the engine and then spend time giving support to the licensees, because he wanted to write the next engine. --> 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.<ref>{{cite web |url=http://web.cs.wpi.edu/~id111x/c05/slides/intro.ppt |title=Game Development Team Composition Study - Changes over time. |access-date=2011-01-17}}</ref> First-person shooter games remain the predominant users of third-party game engines, but they are now also being used in other [[video game genres|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 (game)|Burnout]]'' franchises. [[Thread (computer science)|Threading]] is taking on more importance due to modern multi-core systems (e.g. [[Cell (microprocessor)|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]] (AGI) and SCI systems, LucasArts' [[SCUMM]] system and [[Incentive Software]]'s [[Freescape engine]] (in 1986<ref>{{cite web|url=https://www.uvlist.net/groups/info/freescapeengine |title=Freescape Engine|publisher=Universal Videogame List |access-date=2020-05-16}}</ref>). 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 game]]s: visualization, training, medical, and [[military simulation]] applications, with the [[CryEngine]] being one example.<ref>{{cite web |url=http://www.gazette.net/stories/083107/businew11739_32356.shtml |title=Video Games Starting to Get Serious |publisher=Gazette.net |date=2007-08-31 |access-date=2011-01-17 |archive-url=https://web.archive.org/web/20081203174009/http://www.gazette.net/stories/083107/businew11739_32356.shtml |archive-date=2008-12-03 |url-status=dead}}</ref> To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including [[mobile phone]]s (e.g. [[Android (operating system)|Android]] phones, [[iPhone]]) and [[web browser]]s (e.g. [[WebGL]], [[Adobe Shockwave|Shockwave]], [[Adobe Flash|Flash]], [[Trinigy]]'s WebVision, [[Silverlight]], [[Unity Web Player]], [[O3D]] and pure [[DHTML]]).<ref>{{cite web |url=http://www.m-trends.org/2008/01/mobile-and-wireless-trends-for-2008.html |title=Gaming: Mobile and Wireless Trends for 2008 |publisher=M-trends.org |access-date=2011-01-17 |url-status=dead |archive-url=https://web.archive.org/web/20110108073502/http://www.m-trends.org/2008/01/mobile-and-wireless-trends-for-2008.html |archive-date=2011-01-08}}</ref> Additionally, more game engines are being built upon [[high-level programming language|higher level languages]] such as [[Java (programming language)|Java]] and [[C Sharp (programming language)|C#]]/[[.NET Framework|.NET]] (e.g. [[Torque Game Engine|TorqueX]], and [[Visual3D.NET]]), Python ([[Panda3D]]), or [[Lua (programming language)|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.<ref>{{cite book|url=https://books.google.com/books?id=-vifhqAi0SEC&q=gpu-limited+games&pg=PA338 |title=3D Game Engine Programming (book) |isbn=9781592003518 |access-date=2011-01-17|last1=Zerbst |first1=Stefan |last2=Düvel |first2=Oliver |year=2004|publisher=Premier Press }}</ref> These recent trends are being propelled by companies such as [[Microsoft]] to support [[independent game development|indie]] game development. Microsoft developed [[Microsoft XNA|XNA]] as the SDK of choice for all video games released on Xbox and related products. This includes the Xbox Live Indie Games<ref>{{cite web|url=http://www.xboxlivecommunitygames.org/ |title=xboxlivecommunitygames.org |publisher=xboxlivecommunitygames.org |access-date=2013-11-24}}</ref> channel designed specifically for smaller developers who do not 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 code|managed]] frameworks.<ref name=":0">{{cite web | title = Microsoft to Enable User-Created XBox 360 Games | url=http://www.gamasutra.com/php-bin/news_index.php?story=10458 | archive-url=https://archive.today/20130102181027/http://www.gamasutra.com/php-bin/news_index.php?story=10458 | url-status=dead | archive-date=January 2, 2013 | access-date=2017-05-05}}</ref> ==Game engines as an industry== Producers of game engines decide how they allow users to utilize their products. Just as [[video game industry|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.<ref>{{Cite web |date=2017-03-11 |title=The 10 Best Video Game Engines {{!}} 2018 Edition |url=https://www.gamedesigning.org/career/video-game-engines/ |access-date=2019-05-15 |website=The Ultimate Resource for Video Game Design |language=en-US}}</ref> [[Unity (game engine)|Unity]] and the [[Unreal Engine]] are currently the two most popular choices for game developers.<ref>{{Cite web |date=2018-09-20 |title=The Two Engines Driving the $120B Gaming Industry Forward |url=https://www.cbinsights.com/research/game-engines-growth-expert-intelligence/ |access-date=2019-05-15 |website=CB Insights Research |language=en-US}}</ref> 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<ref>{{cite web |url=https://www.gamedeveloper.com/programming/the-engine-survey-technology-results |title=Gamasutra Engine and Middleware Technology Survey |publisher=Gamasutra.com |date=2009-05-08 |access-date=2011-01-17}}</ref> that provide subsystems of functionality include [[RAD Game Tools]]' Bink, Firelight [[FMOD]], [[Havok (software)|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 [[Adobe Flash|Flash]] UI and high-quality video playback, and an [[Input Method Editor]] (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 (computer graphics)|level of detail]] meshes, and '[[Umbra (3D technology company)|Umbra]]' adds [[occlusion culling]] optimisations to 3D graphics. Some middleware contains full [[source code]], others just provide an [[application programming interface|API]] reference for a compiled binary [[library (computer science)|library]]. Some middleware programs can be licensed either way, usually for a higher fee for full source code. ==See also== * [[3D computer graphics]] * [[Authoring system]] * [[Game physics]] * [[List of first-person shooter engines]] * [[List of game engines]] * [[List of game middleware]] * [[Virtual studio]] ==References== {{Reflist|2}} == External links == * {{Commons category inline|Game engines}} {{Video game engines}} {{Authority control}} [[Category:Video game development]] [[Category:Video game engines]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category inline
(
edit
)
Template:Multiple issues
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Usurped
(
edit
)
Template:Video game engines
(
edit
)
Template:Video game industry
(
edit
)