Game engine
A game engine is the core software component of a video game. It typically handles graphical rendering and other necessary technology, but might also handle additional tasks such as game AI, collision detection between game objects among other things. The most common element that a game engine provides is graphics rendering facilities (2D or 3D). Another common attribute of game engines is platform abstraction, so the game can run in various platforms (game consoles, Microsoft Windows) with little, if any, changes in the game source code.
Engines that only provide real-time 3D rendering are sometimes called 3D engines. Such engines include Crystal Space, Genesis3D, Irrlicht, Ogre, and Antiryad Gx. Many 3D engines are designed for other purposes, often in addition to games. These are then coupled with physics engines.
Overview
The term "game engine" arose in the mid-1990s, especially in connection with 3D games such as first-person shooters (FPS). (There is a separate article about first person shooter graphics engines.) Such was the popularity of id Software's Doom and Quake games that rather than work from scratch, other developers licensed the core portions of the software and designed their own graphics, characters, weapons and levels—the "game content" or "game assets."
Later games, such as Quake 3 and Epic's 1998 Unreal were designed with this approach in mind, with the engine and content developed separately. The licensing of such technology has proved to be a useful auxiliary revenue stream for some game developers, as a single license for a high-end commercial game engine can range from US$10,000 to $750,000 and the number of licensees reaching several tens of companies (for the Unreal engine). At the very least, reusable engines make developing game sequels much easier and faster, a valuable advantage in the competitive computer game industry.
The continued refinement of game engines has allowed a strong separation between rendering, scripting, artwork, and level design. It is now common (as of 2003), for example, for a typical game development team to be composed of artists and programmers in an 4:1 ratio.
First-person shooter games remain the predominant users of third-party game engines, but they are now also being used in other genres. For example, the CRPG Morrowind and the MMORPG Dark Age of Camelot are based on the NetImmerse engine, the MMORPG Lineage II is based on the Unreal engine. On game consoles game engines are used as well, for example the RenderWare engine is used in Grand Theft Auto III and Burnout 2 & 3.
Modern game engines are some of the most complex applications written, frequently featuring dozens of finely tuned systems interacting to ensure a finely controlled user experience.
Although the term was first used in the 1990s, there are a few earlier systems in the 1980s that are also considered to be game-engines. For example Sierra's AGI and SCI systems, Lucas Arts' Scumm system and Incentive Software's Freescape engine. However these game engines were never used in any third-party products.
Middleware
Some companies now specialize in developing software suites known as "middleware." Middleware 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 middleware solutions provide facilities that ease development, such as graphics, sound, physics and AI functions. NDL's Gamebryo and RenderWare are two such widely used middleware solutions.
Some solutions only do one thing, such as render trees and plants, such as SpeedTree, but do it more convincingly than general purpose engines.
Some middleware contains full source code, others just provide an API reference for a compiled binary library. Some middleware solutions can be licensed either way, usually for a higher fee for full source code.
Hobbyists
Game engine development is a popular project amongst computer science students, hobbyists, and game developers alike. It can require strong interdisciplinary understanding of geometry, color theory, and computing. Being largely visual, however, these developers consider it fun and rewarding. Crystal Space, for example, is a popular open source multiplatform game engine.
A very popular and inexpensive game development environment was created beginning in 1999 by Mark Overmars. His Game Maker object oriented interpreter makes development of 2 dimensional games extremely easy. The system can support many game formats including role playing games (RPGs).
FPS game engines
Main article: First person shooter graphics engines
A well-known subset of game engines are 3D first-person shooter (FPS) game engines. Groundbreaking development in terms of visual quality is done on FPS games on the human scale. Along with increasing realism of flight and driving simulators and real-time strategy (RTS) on larger-scale games, first-person shooters are at the forefront of computer graphics at smaller, more human scales.
The development of the FPS graphic engines that appear in games can be characterized by a steady increase in technologies, with some breakthroughs. Attempts at defining distinct generations lead to arbitrary choices of what constitutes a highly modified version of an 'old engine' and what is a brand new engine.
The classification is complicated as game engines blend old and new technologies. Features considered advanced in a new game one year, become the expected standard the next year. Games with a mix of older generation and newer feature are the norm. For example Trespasser (1998) introduced physics to the FPS games, but it didn't become common until around 2002. Red Faction (2001) featured destructible walls and ground, something not common in engines even in 2004. Codename Eagle (2000) added vehicle based combat to the usual FPS mix, which did not hit the mainstream. Battlefield 1942 fully realized the potential for vehicular integration, followed closely by Halo: Combat Evolved and Unreal Tournament 2004.
See also
External links
- 3D Engines Database, a comprehensive database of today's graphics and game engines
- Terrain in Games, an extensive overview of terrain rendering in 1997-2000 game engines