Understanding the purpose of
game engines
Introduction
Computer games engines are systems
which enable developers to develop and create video games, many of the leading
game engines include software frameworks that enable developers to design video
games for the three main multimedia types of platform. These include video game
consoles such as; Xbox 360, PS3, Wii U, mobile devices such as; iPhones, iPads
and also for personal computers (PC). The main function of a game engine is to
provide the developer with tools required to go about the creation/development
of a video game. The core features that the game engine provides a developer
are; a rendering engine; this feature enables a developer to add textures and
light to the 2D or 3D graphics of an object to make it more realistic in
appearance so it’s more believable to the user, a physics engine; which enables
a developer to add a real-time effect to a video game, this can be for e.g. how
a building collapses when it’s shot at with a weapon or even how far a NPC
enemy falls when hit with a weapon, sound; allows a
developer to give a video game even more realism, e.g. if you were to shoot at
an enemy you’d hear the bullet being shoot and so would the other enemy units
within that area, meaning they would become aware of your location, scripting; enables
a developer to create programming language for the real-time environment within
a game that’s able to interpret all events present automatically, animation, gives
the developer the ability to add motion to objects within a game to give then
more realism e.g. how a character moves around an area or the mechanical
movements when a gun is fired and artificial intelligence (AI), which the
developer uses to give enemy units within a video game the ability to adapt and
react to a players actions e.g. if a player were to attack an enemy with a
sword the enemies AI could interact the users action by blocking the incoming
hit.
The purpose of computer game
engines is to provide developers to utilise a suite of visual development tools
in addition to reusable software components. These development tools are
delivered to the developer in the form of an integrated development environment
(IDE) which allow for simplified, rapid development of games. Game engine
developers such as Gamebryo, JMonkey Engine, and RenderWare all develop
powerful game engines software suites that incorporate many of the elements
that a developer requires to create a video game. The facilities that many game
engines supply can include; graphics, sound, physics and AI functions, to
enable ease of the development of a video game. Game engines are also known as
‘middleware’ this is due to enabling flexible and reusable software platform
which provide the core software elements straight from the box which means that
the cost is reduced to develop a video game application, it also decreases the
complexity and the time it takes for a game to be released on the market which
critical within the games industry.
Video games that were designed
before the development of game engines, were developed to make full use of the
display hardware available before the 1980’s, although due to memory
constraints it wasn’t possible to achieve three dimensional graphics because
the data-heavy capacity that were required weren’t available. After the golden
age of arcade video games, video game companies have tended to develop their
own in house game engines to fit the purpose of working with first-party
software. The mid-1990’s was the first time that the term “game engine” was
used in association with three dimensional (3D) video games, that includes
first person shooters (FPS) such as id Software’s Doom and Quake video games.
id Tech 1 in 1993 featured software for the Doom engine which wasn't actually a true 3D engine,
instead it was a well conceived two dimensional sector-based engine that had 2D sprites representing objects, characters,
and anything that wasn’t tied down to the map. Due to this 2D limitation, rooms
couldn’t be constructed on top of one another, even though this was a
limitation it did however allow for faster rendering on less powerful hardware. These are
some of the video games which use this game engine; Chex Quest 1+2, Doom, Doom II, HacX, Heretic,
HeXen, and Strife.
Build in late 1993 shares a similar trait with the Doom engine, in that both rendered
worlds on a 2D plane with sprites populating the map. This engine broke
environments into individual sectors arranged in a grid, and the ceiling and
floors in each sector could be constructed to different heights, this gave the
ability for the user to look up and down with the mouse and gave the illusion
of 3D. These are a few of the video games that use this game engine; Duke Nukem 3D and Extreme Paintbrawl,
XnGine in 1995 was one of first 3D game engines to be
developed by Bethseda. Although was quite buggy to begin with, this DOS based
engine initially had clipping issues which would cause players to get stuck on
three dimensional objects. Even though there were initial issues with this
engine, the XnGine engine would
make use of high-resolution graphics which would make it compatible with 3dfx
videocards and make it possible to create huge game worlds.
These are some of the video games which use this game engine;
Battlespire, Daggerfall, Redguard, NIRA:
Intense Import Drage Racing, Terminator: Future Shock and Terminator: SkyNET,
X-Car.
Jedi in 1995 was able to support a maximum of 32 angles for each object; this enabled
the player approach an object or enemy character and they would be rescaled as
they got closer or farther away. This process was advanced for a game engine at
this time, the Jedi engine also helped make popular the ability to jump and
crouch, and look up and down, feats made even more impressive considering this
was LucasArts first attempt at an FPS (Star Wars: Dark Forces).
The Quake engine in 1996 while in development was ensured that it ran smoothly without lots of processing power.
The one way this is achieved is by the creation of a new type of render map, which purged certain areas from processing period that the
player won’t be able to see. The most well-known video game to use this game
engine is Quake.
Renderware in 1996 was originally developed as a middleware
games engine for PC and PlayStation 2, then was redeveloped for other games
platforms. These include; the Wii, Xbox 360 and PlayStation 3, this ment that
Renderware was now considered a multiplatform game engine. This game engines
main feature allowed developers the option of changing art and game processes
in real time. These are some the video game which used this game engine; Airport
Tycoon, Burnout Paradise and Manhunt.
Id Tech 3/Quake 3 in 1999 was a refinement and advancement to the
prequel version of the well known game engine. The advancements included the
use of per-vertex animation
which enabled smoother animations instead of the previous skeletal animations.
Id Tech 3 also focused emphasis heavily on shadows,
introduced shaders, curved surfaces, 32-bit color, and advanced networking
capabilities for its time. All these advancements required a 3D videocard that
had full OpenGL support and at least 300MHz of computing power.
The
following are a selection of example video games which use this game engine; American
McGee's Alice, Call of Duty, Medal of Honour: Allied Assault, Quake III Arena,
Return to Castle Wolfenstein, Wolfenstein: Enemy Territory
Torque in 2001 featured an in-game
terrain engine capable of manipulating levels of details on the go, this ment
fewer polygons were required to be rendered and also this engine was known for
its drag-and-drop GUI creation and built-in world editor. These are a few of the video games that use
this game engine; Penny Arcade Adventures, Tribes 2.
Types of Game Engine
There are four main types of games
engine, each has their own differences and each is used for either a specific
media platform or the work on multiple platforms. These games engines consist
of; two dimensional engines (2D engines), three dimensional engines (3D
engines), mobile engines and game mods.
2D Engines allow developers to
develop and design video games for a multitude of media platforms, these can
include; mobile platforms such as iOS, Android, Windows Phone or Tizen, desktop
platforms such as Windows, Windows 8, Mac OSX or Ubuntu and web
based platforms such as HTML5, Firefox and Chrome. This type of game engine
incorporates all of the software tools needed to design and develop a 2D game.
This includes; a renderer; an editor; is designed to allow you to place the 2D
sprites that make up a 2D video game, animation; physics; audio; network; allows
you to communicate with other players and scripting; which is present in a
similar way in each of the different types of game engine. This is code that is
essential for each of the engines to run their respected video games. Customize
the engine to create gameplay mechanic for the different levels within a game
and to add mechanics to any character within the game. An example of a 2D game
engine is GameMaker which has all of the previously mentioned features.
3D Engines allow developers to
design high quality, realistic style video games for multiple games platforms. These
can include the following different games platforms; mobile; PSP, DSI series or
console platforms; PC, PS3/PS4, Xbox 360/Xbox One, Wii/Wii U. This type of
game engine incorporates all of the software tools needed to design and develop
a 3D game. This includes; a renderer; allows for the generation of an image from a
three dimensional model, an editor; allows for the placement of 3D objects
assets within three dimensional space, animation; allows for the 3D movement of
a character or object within 3D video game, physics; are the boundaries/gravity
put in place to govern how certain objects react within a 3D game environment,
audio; for a 3D video game has to accommodate for surround sound to give a more
realistic effect, network; for a 3D game allows for Internet and Lan multiplayer
gameplay and scripting as mentioned previously. The Unreal Development Kit
(UDK) is an example of a 3D engine which incorporates all the tools that a
developer may require to produce a triple A 3D video game.
Mobile Engines enable developers to create and design 2D
games that can be specifically made for mobile media devices. These can include
the following different media platforms; Windows; PC, Ultrabooks and Netbooks,
MacOS; Mac desktops and laptops, iOS; iPhone and iPad, Android; phones/devices
which run Android 2.3 and above and BlackBerry devices. This type of
game engine incorporates all of the software tools needed to design and develop
a Mobile video game. This includes; a renderer; an editor; which
is
designed to allow you to place the 2D sprites that make up a Mobile video game,
animation;
physics; audio; network; allows for broadcasting and messaging via an
internet/Wi-Fi connection and scripting; as mentioned above. The App Game Kit
(AGK) is an example of a Mobile Engine which incorporates all the tools that a
developer may require to produce a Mobile video game.
Game Mods enable developers to
create and design game mods for mainly 3D video games. They allow developers to
create/design; weapons, entities, game modes, and other modifications via Lua scripting language. The two
main platforms which game mods work on are PC and Mac. This type of
game engine also incorporates all of the software tools needed to design and
develop a video game from scratch. This includes; a renderer; an editor,
animation; physics, audio, network; and scripting; as mentioned above. Garry’s
Mod is an example of a game mod which allows for sandbox creation and design of
weapons, entities, game modes, and other modifications.
Game Engine components
A game engine component is an
integral part of a game engine which consist of five main components; the
graphics rendering, the collision detection, the Artificial Intelligence (A.I.
for short), the sound and the physics. All of these components which make up a
game engine allow gamers and programmers alike to use these tools to create and
develop new games with new models, scenery, and sounds, or put a different
twist on the existing game material. The following paragraph I’ll give more
details about each of main components that make up a game engine.
The purpose of the graphics
rendering component within a game engine is to taking the models and materials
and outputting a final image, or render, of the scene, including lighting,
reflections, and other details usually not shown in the viewport. Rendering
can take many hours in the case of highly detail images on a fairly slow
computer. Rendering is one of the reasons a computer graphics person buys a
high memory, higher speed, more expensive, computer - both for less wasted time
while creating images and for more realistic games. Collision detection within
a game engine determines how close a user is to a real physical objects within
a three dimensional environment and will stop their movement before colliding
with the object this means the user won’t get stuck within a wall/object. Artificial
Intelligence or A.I. as it’s known as is another main component within a game
engine which is used to give non playable characters (NPC’s) a simulated
human-like intelligence / behaviours. This means that the NPC’s
characters/enemies within a game environment will interact with a user’s
character in a realistic manner by either responding to the user’s character
with dialog or by shooting or attacking. The sound component within a games
engine gives the element of depth, realism and effects how the user will react
to the performance of the sounds within a video game. Without sound a video
game wouldn’t give the user a sense of believability. This means for instance that the user
wouldn’t be able to hear whether a shot had been fired at them or if they had
been spotted by an enemy unit/mob. The
final major component which has a role within the game engine is the Physics
engine. The physics engine is used within a game engine to simulate various
actions and reactions in a video game. For instance in first person shooter
games, this can lead to cases where a player is shot in the leg and dies,
instead of just being injured. A physics engine is designed to simulate the
perception of shooting and killing a target, not so much in where the target is
hit or if it was a mortal wound or just a flesh wound.
There you have it all the
information you could possibly want to know about the purposes of game engines
from some of the well-known game engines, the different types of game engines
to the main components which make up a game engine and enable gamers and
professional developers alike to develop and create video games with the use of
game engines.