In many cases, game engines provide a suite of visual development tools in addition to reusable software components.
Most game-engine suites provide facilities that ease development, such as graphics, sound, physics and artificial intelligence (AI) functions.
However achieved, extensibility remains a high priority for game engines due to the wide variety of uses for which they are applied.
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.
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.
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.
Separation of game-specific rules and data from basic concepts like collision detection and game entity meant that teams could grow and specialize.
[12] 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.
[15] To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including mobile phones (e.g. Android phones, iPhone) and web browsers (e.g. WebGL, Shockwave, Flash, Trinigy's WebVision, Silverlight, Unity Web Player, O3D and pure DHTML).
[16] Additionally, more game engines are being built upon higher level languages such as Java and C#/.NET (e.g. TorqueX, and Visual3D.NET), 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.
Microsoft developed XNA as the SDK of choice for all video games released on Xbox and related products.
The four most widely used middleware packages[22] that provide subsystems of functionality include RAD Game Tools' Bink, Firelight FMOD, Havok, and Scaleform GFx.
Scaleform provides GFx for high performance Flash UI and high-quality video playback, and an Input Method Editor (IME) add-on for in-game Asian chat support.