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 now called the kernel by developers of games for older systems. Other platforms had more leeway, but even when 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 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 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 allowed
Mario to smoothly accelerate from a walk to a run, rather than move at a constant speed like in earlier platformers. While third-party game engines were not common until the rise of
3D computer graphics in the 1990s, several 2D
game creation systems were produced in the 1980s for
independent video game development. These include
Pinball Construction Set (1983),
ASCII's
War Game Construction Kit (1983),
Thunder Force Construction (1984),
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. The term
game engine emerged in the mid-1990s, particularly with the rise of 3D games like
first-person shooters, which often featured a dedicated
first-person shooter engine. For instance, Epic Games, founded by
Tim Sweeney, debuted its Unreal Engine in 1998. Such was the popularity of
Id Software's
Doom and
Quake games: rather than building from scratch, its developers licensed the core portions of the software and designed their own graphics, characters, weapons, and
levels—they were 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. 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. As such, it is now common, for example, for a typical game development team to have several times as many artists as actual programmers. While third-party game engines are predominantly used in the development of first-person shooter games, they are also being used across other genres. For example,
Gamebryo is used in
The Elder Scrolls III: Morrowind and
Dark Age of Camelot, whereas
Unreal Engine 2 is used in
Lineage II. Game engines are also used for games originally developed for home consoles, with
RenderWare for the
Grand Theft Auto and
Burnout franchises as an example. Due to modern multi-core systems and growing demands in realism, exploiting
threads has become more important. Separate threads of execution within a game engine manage intensive operations, including rendering, asset streaming, audio playback, and physics simulation. 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, few earlier systems in 1980s are considered as game engines, such as Sierra's
Adventure Game Interpreter (AGI) and SCI systems, LucasArts'
SCUMM system and
Incentive Software's
Freescape engine (in 1986). 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 widened in scope. They are now used for
serious games: visualization, training, medical, and
military simulation applications, with the
CryEngine being one example. To improve accessibility, new hardware platforms are also now targeted by game engines, including
mobile phones (e.g.
Android,
iPhone) and
web browsers. (e.g.
WebGL,
Shockwave,
Flash,
Trinigy's WebVision,
Silverlight,
Unity Web Player,
O3D and pure
DHTML.) Additionally, more game engines are being built upon
higher-level languages, such as
Java,
C# and
.NET (e.g.,
TorqueX, and
Visual3D.NET),
Python (
Panda3D), or
Lua Script (Leadwerks). As most 3D-rich games are now mostly limited by the power of a graphics card, the potential slowdown due to translation overheads of higher-level languages becomes negligible, while productivity gains offered by these languages serve the game engine developers' benefit. These recent trends are being propelled by companies such as
Microsoft to support
indie game development. Microsoft developed
XNA as the primary
Software Development Kit (SDK) for all video games released on Xbox and their related products. This includes the
Xbox Live Indie Games 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 frameworks. ==Game engines as an industry==