Thursday 13 March 2014

Understanding the purpose of game engines


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.