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
(section)
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!
==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>
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)