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 to allow 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 might need to build a game. Most game engine suites provide facilities that ease development, such as graphics, sound, physics and AI functions. These types of game engines are sometimes called “middleware” because, as with the business enterprise sense of the term, they offer a flexible and reusable software platform which provides all the core functionality needed, right out of the box, to build up a game application while reducing costs, complexities, and time-to-market — all critical factors in the highly competitive video clip game industry. Gamebryo, JMonkey Engine and RenderWare 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 gaming systems 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 get replaced or extended with more specialized (and often more expensive) game middleware components such as Havok for physics, Miles Sound Program for sound, or Bink for video. Some game engines such as RenderWare are even designed as a series of freely related game middleware components that can be selectively combined to produce a custom motor, as an alternative to the greater common method of extending or modifying a flexible integrated solution. However extensibility is achieved, it remains a high priority for game motors due to the broad variety of uses for which they are applied. Inspite of the specificity of the name, game engines are often used for other varieties of interactive apps with real-time graphical needs such as marketing demonstrations, architectural visualizations, training simulations, and modeling environments.

         Several game engines only provide real-time 3D rendering functions as an alternative to the broad variety of efficiency needed by games. These types of engines rely when the game developer to put into action the rest of this functionality or assemble it from other game middleware components. These types of engines are generally known to as a “graphics engine” ,“rendering motor” or “3D engine” as an alternative to the more covering term “game engine. ” This terminology is inconsistently used as many complete-featured 3D game engines are referred to simply as “3D engines. ” The few examples of visuals engines are: Crystal Room, Genesis3D, Irrlicht, OGRE, RealmForge, Truevision3D, and Vision Motor. Modern game or visuals 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 taken for more efficient object rendering of vast virtual realms.

         As technology ages, the components of the engine may become outdated or inadequate for the requirements of the given project. Since the complexity of programming an fully new engine may cause unwanted delays (or necessitate that the task be completely restarted), a development team may elect to update their existing engine with newer features or components