A game engine is a system designed for
the creation and development of video games.
The leading game engines provide a software framework that developers use to create
games for video game consoles and personal computers. The core functionality typically provided by a
game engine includes a rendering engine for 2D or 3D graphics,
a physics engine or collision detection, sound, scripting, animation, artificial intelligence, networking, streaming, memory management,
threading, localization support, and a scene graph.
The process of game development is often economized, in large
part, by reusing or adapting the same game engine to create different games, or
to make it easier to "port" games to multiple
platforms.
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 to enable
simplified, rapid development of games in a data-driven manner. Game
engine 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 game engine suites provide facilities that ease development, such
as graphics, sound, physics and 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. Gamebryo, JMonkey Engine and Render Ware are such
widely used middleware programs. Like other middleware solutions, game engines usually provide platform abstraction, allowing the same game to be run on various platforms including game consoles and personal computers with few, if any, changes made to the game source code. Often, game engines are designed with a component-based architecture that allows specific systems in the engine to be replaced or extended with more specialized game middleware components such as Havok for physics, Miles Sound System for sound, or Bink for Video. Some game engines such as Render Ware are even designed as a series of loosely connected game middleware components that can be selectively combined to create a custom engine, instead of the more common approach of extending or customizing a flexible integrated solution. However extensibility is achieved, it remains a high priority in games engines due to the wide variety of uses for which they are applied. Despite the specificity of the name, game engines are often used for other kinds of interactive applications with real-time graphical needs such as marketing demos, architectural visualizations, training simulations, and modelling 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 assemble it from other game middleware components. These types of engines are generally referred to as a graphics engine, rendering engine, or 3D engine instead of the more encompassing term game engine. This terminology is inconsistently used as many full-featured 3D game engines are referred to simply as 3D engines. A few examples of graphics engines are: Crystal Space, Genesis3D, Irrlicht, OGRE, Realm Forge, Truevision3D, and Vision Engine. Modern game or graphics engines generally provide a scene graph, 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.
No comments:
Post a Comment