What is a game engine? And the history of game engines
A game engine is a piece of middleware used in the game development, which is used to house assets used to create a game and then using all the assets by placing them in the correct configuration to create something within the engine. Game engines are generally made using C++, C and Java which are programming software in which the engines have to be programmed/coded in order to make them which is also connected to that before engines where available/existed every game was programmed using programming language which made the games limited and buggy until the release of game engines in which the first was engines were released for the Atari 2600 but those types of engines now called kennels had to be built from the ground up to make use of the hardware available in which due to the difficulty in making the games at the times all the levels were small and had small amounts of graphic data. In the days of the first game engines, engines were not shared between different companies and programmers as the code was difficult to adapt to various platforms that were in the market so codes were generally used to create the engines were thrown away s other companies couldn’t try to adapt it to their hardware.
Different types of engines
First person shooter engine
First person shooter engines are developed for mainly used for games of the FPS genre that have 3D visuals, in which the engines are made up of things which are old and new features in older games to the newest ones an example of this is the game: Red Faction (2001) which was the first to implement destructive building and objects which wasn’t used widely in future games but had some exceptions like Battlefield 4 (2013). An example of a game engine used to mainly house FPS games is the id engines 0 and 1 as there where used to create the game DOOM (1993) which then gave breath to a variety of doom ‘clones’ such as Wolfenstein (1992) which uses the id tech engine 0 which was an earlier version of the id tech engine 1 and was one of the games that helped fix a lot of problems before the release of there bigger games and Quake (1996) which was a clone of the doom engine with a few texture changes and games related changes but has the same interface and look to it.
3D engine
3D game engines are developed and used for games like work with a 3D environment instead of a 2D one, to which 3D engines have a lot of tools at there disposal such as the manipulation of 3D objects/assets like cubes and other shapes as well as other assets like vehicles, weapons and buildings to which can be altered in size and shape to the persons shape, but there are also a lot of other tools like lighting in which you can choose where the lighting is, where it goes, how bright or dim it as well as the colour among other advanced options.

An example of a 3D game engine is the Unreal Engine made by Epic (1998 -Present) that has gone through 3 iterations and the latest in due for arrival in 2014, the first engine labelled the Unreal Engine (1998) was one of the first engines to include a rendering, collision, AI, networking, scripting and a file system included within the engine which was a third part engine meaning other companies besides Epic could use the program as Epic only released to games for this made by the company an example of this being Unreal Tournament where as 30+ games where made by other companies also used this engine in which an example of this is Rune (2000) made by Human Head studios and in fairly recent years Duke Nukem Forever (2011) which was made by a few companies including Gear box software. The first unreal engine was released in 1998 in which the user could install A.I. into the game to script events and behaviour patterns, could render things within the engine and add collision detection to objects such as building or other structures as well as the option to place your own building and structures it also had an advanced software rasterizer among this were the various assets that were available to the controller such as colour, lighting and background. An example of a game made with Unreal Engine 1 that used the engine to its full potential is Unreal Tournament which upon release made both the network performance and Direct3D & OpenGL support become much well on the Unreal Engine to which it was mainly used for games on the PlayStation 1 and 2 as well the PC and in later years the Xbox 360 and PS3.
The next version of the unreal engine known as the Unreal Engine 2 (2002) had all the things that the original had but with a different layout and some added things such as ragdoll physics which became a common physic in future games as most present games have ragdoll physics an example being Halo Reach (2010), it also has improved the rendering improved by having the rendering engine as well as the core code completely rewritten as well as improving all the assets, elements and function that were in the previous incarnation. There were also some other things that improved this engine over the previous one of which being added support so it could be used for games on the GameCube and Xbox. In the future a more updated version of the engine was released known as the Unreal Engine 2.5 that improved
the performance, added vehicle physics, a particle system editor which was included within the Unreal Editor and 64-bit support which was done so it could be used in Unreal Tournament 2004 as well as also supporting games on the Nintendo 3DS. The engine was also a third part engine so other companies or individuals could use it, as Epic only released one game using the Unreal Engine 2 which was Unreal Tournament 2004 where as there were many games that used the engine which include at the time it was made America’s Army (2005) for the PC, as well as made by U.S Army and is also used in newer games for the seventh generation consoles like Bioshock 2 (2010) to which uses this engine to the best of its ability and is made by 2K Games.
The next version of Unreal engine and the one in current use is the Unreal Engine 3, had all its assets, graphics and elements improved from the last engine as well as being made for Windows 7 and the Xbox 360 by using Direct X which is a appliance programming interface made by Microsoft for handling tasks related to multi-media of which it is commonly used for video game programming. But it also operates on other systems like OpenGL that is another appliance programming interface similar to Direct X but allows system not affiliated with Microsoft to use UE3 of which the available platforms in can intergrade with are PlayStation 3, OS X, iOS, Android, PlayStation Vita and Wii U as well as also being able to intergrade with other programs to upgrade its performance which include
Adobe Flash Player 11 and Java Script. This engine has been used to create over 50 games of which only 4 are made by Epic, which is the Gears of War Franchise (2006-present) but has also been used by other companies to create well known and popular games which includes XCOM: Enemy Within (2013) which is made by 2K Games which regularly have used the engines to create there games over the years and another game is Fable: Anniversary (2014) which is made by Lionhead Studios which is a game not out yet and is using the engine to its full potential. But this engine is not always used in games industry as it has attracted the attention of other media an example of this is the popular kids TV show Lazy Town using the engine to create the visual sets which are interactive in real time with the actors and puppets, aside from another two example of other media that use UE3 are that the FBI use UE3 engine as a simulation for training and is used by the animation software called Muvizu Play.

Another 3D engine that is used to make 3D games in is the CryEngine made by CryTech which has 4 generations that has various features used to create games, in which the first engine made is the CryEngine 1 which was developed in 2004 for the game Far Cry which was also released at the same time although it was originally developed as a tech-demo until its true potential was seen making it into a game engine as well as being used to make Aion: The Tower of Eternity (2008) which unlike Far Cry was an MMORPG as well as being used for game consoles in the sixth generation which included the PS2, GameCube and Xbox as well still in use when the seventh generation was out in which it was used for games on the Xbox 360 and Wii and was also used for games on computers like Microsoft Window’s machines. The engine can support video cards with 3.0 pixel and vertex shaders when the 1.2 update of the engine which allowed it to use better graphic cards, as well as being able to handle HDR lighting by the time the 1.3 update came out for the engine as well as using a lot of the features that are used in the UDK engines such as object manipulation and rotation, lighting placement, pathnode usage as well as other features.
The next engine is the series was the CryEngine 2 which was developed around the same sort of time that Crysis began its development, this engine improved over the old one in all its features as well as being used with gaming computers in which there were no games developed on the engine for gaming consoles in which it was used to create games like Crysis (2007) and Blue Mars open beta (2009). But no stated additions were stated except from graphical and handling improvement.
The next engine that was developed was the CryEngine 3 (2009) as well as being in current usage for current games, in which it is used to develop games on the seventh and eighth generation of consoles which include the Xbox 360, PS3 and Wii U as well as gaming computers. Just like the previous one it improves upon all features that were in the previous engines which such as graphics and lighting effects as well as know being able to support DirectX 9, 10 and 11 to help improve and move in to current PC platforms but any other features that were added were not stated to the public. It was used to make game like State of Decay (2013) and MechWarrior Online (2013) as well as still being used to create future titles like Evolve.
2D Engine
2D game engines are developed for games that use a 2D environment, in which the engines allows developers to create games within the engines with control of the objects like blocks the player jumps across in which they alter there size and shape as well as similar to 3D engines the lighting, AI are customizable as well as having the availability of sprites which aren’t commonly found in 3D games.
An example of a 2D engine is Construct 2 (2012) made by Scirra Limited for non-programmers for drag in drop games which can be created by anyone if they know how to, but is also available to programming through JavaScript framework for use for programmers. But it should also be noted as the successor to Construct Classic (2007) that is a free open source game creator and editor like Construct 2 as well as using Direct X, which was written using C++ and was not made by Scirra Limited but instead a group of students. The features of both engines include: pixel shaders, motion blur, rotation and zooming, behavioral system, skeletal animation system, debugger and over 50 in built objects as well as being able to support 2D physics on Box2DLibary. Also Construct has the ability to program sprites that can be used as characters, NPCs and enemies depending on the way they are programmed or are categorized by the user in which enemies or player characters can be given animations on how they move, attack or interact with the player or to obstacles/events.
Another example of a 2D engine is Allegro (2013), made by Allegro developers and was created using the programming software C++ which is used to hold and create the more simpler of 2D games as its functions are limited. It alongside this it does have a wide range of features available to the user, which include: basic 2D graphics, image manipulation, text and audio output, MIDI (Musical Instrument Digital Interface) music, timers and input are among the main features used in the engine as well as additional routines used in the engine such as fixed point and floating-point matrix arithmetic, Unicode strings, file system access, file manipulation, data files and limited 3D graphics. The engine has five main features that are used primarily the first one being Vector Drawing which is to draw basic shape like squares, circles and rectangles as well as the use of curved lines and pixel creation and management but it also makes use of shape fill which the texture of a shape whether it has a pattern or not and finally it also make use of the polygons in which it takes care of there textures even 3D textures as well as what type of shading the textures use like Gouraud or Phong. The next feature the engine uses is sprites in which it covers the basics on how the sprites function and interact and whether they will be a playable, NPC or an enemy as well as making if the sprite is masked, compressed or complied, it also offers support for sprites based on what it is as the supports available include: MP, LBM, PCX and TGA which can be used as the files that the sprites can use and be stored on and finally another part of this feature includes the use of texture applying on the sprites as well as the type of shading that can be used on them. The next feature is the used of the colour palette which, can be used to determine the amount of colours that are in the engine as well as the colour manipulation which is used to decide where the colours are to be used such as whether there for an object, sprite or text plus another part of this includes the ability to convert the colours into two different files which are RGB to HSV and vise versa. The fourth feature is the use of text within the engine that can be used to help the player through the game as well as for other things but in this engine it can also be used for different encoding and conversion purposes as well as used for the bitmapping of masking, colouring and alignment. The final feature available on this engine is known as Misc, which is used to edit and create the animation function for various things within the engine which uses a FLC format as well as the use of hardware buffering and drawing any size bitmaps.
AI (Artificial Intelligence)

AI are generally used in games and game engines to control certain aspects in that game, in which the most generally used is over NPCs (Non-Player Characters) which interact with the player in different ways but are not considered in the enemy category which have different interactions with the player. NPCs tend to be used to interact through speech or text dialogue, which is used to communicate with the player as well as being able to interact with the world they are in which is known as path finding in which they interact with obstacles and objects as well as being able to navigate the terrain and the fog of war (an area that the player has yet to visit) used in RTSs. Unlike regular AI used in modern technology game AI are not able to learn as they progress and are rather given a set of instructions to use and how to interact with certain people or obstacles such as in games like Fallout 3 (2007) NPCs in it can be spoken to have dialogue options in which they will reply with the same answer if the same question is asked as well as having the same expressions. But changing how difficult the game is can change AI from the players point to which on lower difficulties they make mistakes and act quite sluggish for intense the accuracy of there gun with change so they miss more, but this is also decided by a developer as they can decide that every 3 out of 10 shots will actually hit the player, but on higher difficulties they will be programmed to act more independently and make more complicated decisions and calculations such as hiding in cover when being shot or making other enemies under its control change how preform when fighting. Another type of AI used in video games is known as cheater AI which can access the information the developer allows them to which isn’t available to the player giving them an advantage in hard games which can be used to upgrade them such as enhanced hearing and sight as well as that in can just ask the game engine what the player’s position is; this AI is typically used to make game difficult as having a trial and error AI for an opponent can be boring and to easy so AI cheaters are used to make it harder as well as unleash an AIs full potential without exceeding the limitations while showing the intelligence achievable. Another type of AI used in games are known as Combat AI which are related to Cheater AI but are much simpler but also have more variety; from the name they are primarily used for combat as enemies to fight the player in which they have an intelligence that depends on how the game engine programmed and whether or not they are affected by difficulty change even though in recent years they attempt to make the AI more human they still are restricted to what they are told and don’t break the limitations; one of the most used features made possible with modern technology for combat AI is the ability to hunt the player/s, in which they will try to search for the player by using a more realistic state such as listening the players footprints and the line of sight between themselves and the player which can leave the player deciding on how they approach the enemy an example of this is in Metro 2033 (2010) the player has to avoid stepping on class so the enemy doesn’t hear them approaching as well as turning of there flashlight to be better hidden but have less visibility. Another feature used in todays game engines to do with AI that has been named survival instinct in which the enemy AI will try its hardest to stay alive for instance it will attempt to call another AI to help recover it if was downed as well as attempting to use the environment and objects such as hiding in cover in which it will also look over cover to check on what the player is doing before moving or reloading for example.
Physics:
Physics in game engine/video games determine how and what laws of physics will apply to that engine, such as deciding whether the engine will have normal gravity or different gravity, in which developers use simulation physics which are a close approximation of real physics which tends to be present in most games in recent years for example a game that uses physics which are close to reality is FIFA 14 (2013) which has to use them to depict how far the ball goes when it has been kicked as well as how strong the kick was and how the wind direction will change the balls directory. In game engines there are types of physics simulators which are used the first one being called rigid body which are placed into categories in which each category based on how they interact and have a lower performance than if they use the second simulation which is soft-body in which it has a better performance but has to simulate each object individually. Particle systems are a major part of how physics work in game engines as that it makes up a lot of the moving elements like smoke, the movement of water or other liquid substances as well as other things as well. An example of how particle effects are used and made is shrapnel that comes of walls when they have been shot or had an explosive used on it, in which all the debris that comes of has been modelled and textured beforehand in which they are then grouped together as a large mesh and separate when shot or broken and come off as individual meshes/particles in which an example of a game that uses this is Battlefield 3 (2011).
Mobile Engines
Mobile engines are developed for games that work on mobiles, IPod and Android in which they can vary from being 2D, 2.5D and 3D depending on the engine and the game being created, in which in this engine various task can be completed which can be from 3D and engines but they are dumbed down and not as over complicated than other engines. An example of a mobile engine that is used in game development is AGK (App Game Kit) which is developed by The Game Creators.
The AGK has a key feature that has made it well known across various developers which is that it is compiled to be used across multiple platforms without having to changes to the source code which allows it to be supported across multiple devices such as android like Windows and IPad and some phone devices like Blackberry which currently uses it as an engine for most of their game. The software used to create AGK is known as AGK script which is a programming language similar to C++, as well as having in build commands build into the program which are 2D graphics, physics and networking in which the commands are used to help improve the overall performance and enhance the code’s reliability.
Another engine used to make games on mobile devices is the Stencyl which was developed by Johnathan Bobby Chung; the engine can export games using Adobe Flash Player and HTML5 (this supports language across the web) to computers as well as mobile devices like Androids and iOS. Among the features in the engine the physics and Collision are managed by Box2D (this is a 2D simulator engine), but is not necessary as it can be disabled as it can affect the performance of the engine and its games that don’t require full physic stimulations. Other features include the use IDE (Integrated development environment) which is an application allows various tasks to be included in the engine such as Behavior editor which allows the behavior of the sprites and events to be edited through the edit of the code; another feature available is the Tileset Editor which is used to import and edit tilesets which basically the textures and materials, as well as edit collision and shapes, animation and appearances; the next editor available is the Actor Editor which is used to create and edit actors (entities) as well as the their behavior, physics and animation settings; and the final editor used with IDE is the Scene Designer editor that is used to create the levels and statistics as well as utilizing the actors, tilsets and behaviors within the levels. But IDE also has some other features not listed in categories which include importing images as backgrounds and scenery, import and edit font, import sounds and music which can imported from devices like MP3s and OGG (Vorbis) which depends on what is being exported and alter the games settings such as changing the controls and the game’s resolution. Another feature included is known as VPL which is used to create new behavior which can be done through to options: Create Mode and Design Mode; using the create mode will limit the user as they will only be permitted to the programs logic but can optionally open the code using an editor, whereas the Deign Mode is a GUI (Graphical User Interface) which is used to create a the game engines logic like the Actors and Scenes using a programming language.
Graphic Rendering
Graphic Rendering is the process of placing an image upon a model such as a texture or texture detail, which is done by using various computer programs like Alladin4D but it will also contain other elements that will be loaded up with the model which includes geometry, viewpoint, lighting, and the shading information. An example of how graphic rending works within a game as it is being played is that in big open world games like Elder Scrolls or GTA they use a grid system that splits the map up into sections so that if a player is in one section it will load up that area as well as start rendering the areas in each direction and when a player enters a new section it will unload the previous section and then start to load all the sections around the section the player is currently in. There are many features that are used when rendering which can improve or are part of the model that is being rendered, which includes: shading which determines how the colour and brightness will be affected by the render on the surfaces, texture-mapping which applies the detail to the surfaces of textures, bump-mapping which is used as method to stimulate a small-scale bumping affect on the surfaces of the models/meshes, fogging which is used to see how the lights dims through non-atmospheric areas or air, shadows which is used to see how the light would obstruct as well as many others. There are a few techniques that are used for rendering to help achieve a final image, one of which is known as ray casting which means the user will render it from one point of specific view, which is calculated using geometry and basic laws of reflecting lights as well as using Monte Carlo (broad computer algorithms) to reduce the artifacts; another technique used is known as ray tracing is similar to ray casting but uses a more advanced optical system in which it uses Monte Carlo techniques to have a more realistic speed; another technique used is Rasterisation which projects geometrical objects onto an image plane which doesn’t have any advanced optical affects done to it.
Animation Systems
Animation is used a lot in game engines to control certain aspects of different assets in which different developers will use animation system engines for different games; an example of the sort of animation that is used within games is how characters would their bodies which has to animate their individual body parts like arms and legs separately within an animation engine.
An example of an animation engine used in game engines is Euphoria made by NaturalMotion which is mainly used to animate 3D characters as well as having control over parts of the body like the muscles, body and the motor nervous system which can be used to have a more realistic model but unlike some other engines the animations are synthesized in real time to give a more realistic look to them as even if the same sequence is played such as in dialogue the animations will be different in some aspect whether it be facial expressions, body language or the way they are talking; also unlike other engines which use ragdoll physics Euphoria uses a more complex system which physically bounds objects to the games environments. The engine is currently in use on consoles within the seventh generation of consoles such as the Xbox 360 and PlayStation 3 as well as the eighth generation which include the consoles Xbox One and PlayStation 4 as well as computer systems like Windows and OSX as well as iOS in which this engine has become compatible with all of them. An example of a game/s that was uses this engine is the Star Wars: The Force Unleashed (2008 – 2010) series made by Lucas Arts in which it was used to make the characters, NPCs and Enemies animation.
Another engine used in the game industry is the Unreal Engine 3 Animation System developed by Epic which uses a full skeletal systems allowing control over the 4 bone influences per vertex as well as the bone details. The animation in the engine are all driven by the ArminTree which is a tree of animation nodes which includes the use of Blend Controllers, data driven controllers, player controllers, skeletal controllers, inverse kinematics, group animations and morph target animations. An example of game used with this engine is the Gears of War Franchise made by Epic Games which would use them to make all character animation such as talking and movement.
Sound
Sound is used in game engines for a wide variety of reasons like water dripping or the sounds characters footprints will use in different environments, but can also be classed as the music/ soundtrack the game engine uses. Music in games can be to create a certain atmosphere related to what type of game it is such as in horror games the music can be quite sinister or creepy to create an atmosphere that puts players on their toes or to have the player feel uneasy though certain parts of the game, an example of this is in the game Dead Space: Extraction the player has to crawl through a air vent that it poorly lit and as the player progresses the song Twinkle Twinkle Little Star starts playing which leaves an uneasy feeling on the player but in games that are Science Fiction the developers will use more of a variety of music such as dramatic music made by an orchestra to give a more dramatic feeling or can use techno music to illustrate parts in which player has to run or do a certain objective which convinces them it’s more of a sci-fi game. Also in game engines the use of sound is quite well used such as sound of footsteps or the sound of doors creaking is used to add atmosphere to the game as well as realism but can also make games challenging an example of this is in Metro 2033 when the player has sneak through bandit camps they have to avoid the glass as stepping on it will make a crunching sound giving away their position. Sounds in games are made by using real life sounds like recording a door creaking then putting it into that game’s engine or can be artificially created by using a combination of different sound to get the sound you want such as when creating a sound for an aliens weapon or scream the developers will combine sounds from different things like something stuck in a lawnmower crossed with the sound of running water.
No comments:
Post a Comment