Tuesday, 3 December 2013

Game Engine Case Study

What game engines are:


A game engine is a piece of software that enables a game developer to create basic game environment with none specific parts, like generic buildings and areas.

Game engines can have lots of different games built around it, a game engine is basically just the fundamental software that gets the game going, it is then other software that is used around it that makes that piece of software different and original from the other games that also may use the same game engine.

Update:







These are very different games, but these are all built within the same engine. As you can see, one engine, can make a number of different games. It is the first stepping stone to actually creating the game.

Game engines are often employed across a number of different sectors and are used in a number of different ways other than to just be used as an engine that would purely create games. Also they are generally used by more than one company; they are usually sold to a number of different companies to use in their game creation, so that means that a number of games that are created by lots of different companies all have the same engine running beneath it.

As can be seen above by the images, this shows that there are a number of different companies using the Unreal engine.

A game engine is developed by studios to serve the needs of one or more games title, making the engine need to be pretty versatile with its creation, because the games that are created under these engines can be completely different from one another but still need to be able to work within the same engine.
This is and of itself, is a product, that can be licenced out or sold to other studios, this is making it so that one company can have the engine that they have made used by other companies, and they can get the money back after the creation of it and also through their software being used in a multitude of games can also be shown as people paying to advertise their software that they have created.

Also as an obvious point about game engines, is that they are used to create games.
Game engines are also classed as ‘Middleware’ this is software that provides services to the applications beyond those that are available from the operating system. This makes it easier for developers to perform communication and input/output, so that they can focus on the specific purpose of their application. This means that the engine while running in the background can be left so that the game developers can do the main thing that they are using the software for, by putting in assets focus on making the game rather than messing around with the fundamentals that are in nearly every game and making it so that they are already applied.

Game engines do many things, here are some of them;
One is that it makes an interactive environment appear in front of the gamer. 




Two is that it updates the game simulation live and outputs all the graphics and audio. 


Three is that it can handle events that occur in the game that trigger other events. 


Fourth is that the game engine could contain scripting systems to make the game logic easier to code. 


Fifth is that some engines help with ‘’culling’’ this is the best optimisation of rendering, by not rendering anything unnecessary. The point of culling is to find out what can be skipped during rendering because it cannot be visible anyway.


''Backface culling'' is when faces are faced away from the camera can not be visible on screen so they do not need to be drawn. This is often implemented by software. You just have to make sure that it is turned on.


Sixth is that they can help with physics and also collision detection, that means that they can make things like building solid so that they cannot be walked though, but also ‘heavy’ so it cannot be moved, or they can make it solid and also movable, or they can make it so that it can be just walked though by the player. 


Seventh is that they can help with Artificial Intelligence. 




Eighth is that it can help with memory management within the game. 


Lastly is that it helps store and retrieve game data. Some other things that it can help with are sound, threading, localisation support and streaming.

Game engines can be written in any type of programming language, one would be C++, and this is one of the most popular programming languages and is implemented in a wide range of different hardware and operating platforms.

Graphics Rendering -

This is the way that an engine creates graphics you see on the screen.
Games are usually produced in a real-time rendering fashion; this is because the environment is interacted with by an outside influence. In games there may be a pre-rendered scene within it, but when that scene is playing, within most cases, you would not be able to move your character, this is because the graphics have already been rendered out and input from an outside influence may ruin the effect that the pre-rendered scene is trying to make.

Game engines have to be pretty powerful to be able to render out scenes within real time, and make it so that it runs as smoothly as it can within it perimeters. Smoothness of environments is usually down to the FPS (Frames Per-Second).

There are different ways of rendering games, some of them are more time consuming. Renders are basically movie files and so they cannot be interacted with by the player. When this is happening the game it self is unloaded and then reloaded when it starts up again.

In some games there is a circumference around the player that has it programmed so that what is outside that parameter is not loaded, so that takes up less of rendering process. So every time that the player moved something would be loaded and also unloaded, making it pretty even.

Animation systems –

In the game engine Unreal, animation systems adds motion to rendered objects and entities. Bone animated meshes are called skeletal meshes. They have a set of bones to make up the skeleton. These are used to drive the motion of the mesh and the placement of objects on a mesh.

There are four parts to the animation system – playback of key framed animation data, blending of animations together, controlling bones and blending of morph targets.

This is what a basic animation pipeline would look like in a flow chart.


The animation system is a part of the Unreal engine 3 pipeline. First, normal animation is processed (blending animations). Bone controllers (inverse kinematics) are applied. Then morph targets are applied. Lastly the physics sub system then processes the remaining physics, and then the graphics subsystem then renders everything.

Together a programmer and an animator would work together to produce the animation content. The animator would set up the skeleton and label the bones according to a convention that was previously agreed upon. The programmer would then tie it all together based on the pipeline.

In previous versions of the Unreal engine, 1 and 2, there was also the vertex based animation. Key framed vertex animation is no longer supported.

AI (Artificial Intelligence) –




This is an image that shows the workings of AI within games, and the different stages that they are in and what they can be linked to, and as can be seen it all pretty much leads to the AI character being dead, this is mostly due to AI within games now, being enemies of the character that the gamer is playing, so the AI will usually end up dead.

This in games creation stands for ‘artificial intelligence’ and is used for the production of the illusion of intelligence, mainly in the behaviour of non-player characters (NPCs).

The techniques used are generally made from existing methods from the field of artificial intelligence. However the term ‘AI’ is often used to refer to a broad set of algorithms that also include techniques from the ‘control theory’, ‘robotics’ ‘computer graphics’ and ‘computer science’ in general.

AI within games, are usually based on appearance of intelligence and good game play, this is a different take from that of the traditional AI. In different cases, the computers abilities have to be toned down to give human players a sense of fairness. This, for example, is the case in first-person shooter games, where the non-player character’s otherwise perfect aiming would be beyond human skill.

The first case of AI in games was in a game called ‘Nim’ made in 1941 and published in 1942 this took the form of a relatively small box and this game was able to beat highly skilled players of the game.
In 1951 a checkers and chess programme was wrote, these were among some of the first computer games ever written. These are strategy based games that were played against artificial intelligence.

Computer game of chess, this can be played against the computer, this is an AI.
In the 1970’s video games like, Spacewar!, Pong and Gotcha, were games that implemented on discreet logic and strictly based on the competition of two players, without AI.

This is the game Pong
As time has gone on, the AI within games has increased and is a lot more humanised within recent games.  And by this, I mean that characters within games, that are non-player characters, that are now mostly used to create a story or so that you have a target to aim for, and it is seen less as playing against the computer, like one would have done with chess. Now it is more to do with a system of people that have to be fought against, or someone evil that has to be overcome.

Call of Duty, this is a game that is mainly based on AI since the Champagne of the game is to kill enemy fighters and they are AI that are controlled by the computer but are basically dumb-ed down to make it fair to the player.


Physics –

In most games, speed of simulation and gameplay are usually more important to the player than the accuracy of the simulation.
This leads to the design of games engines that produce results in real-time but that replicate real-world physics only for simple cases and typically with some approximation. Most often, the simulations will be geared towards providing a ‘perceptually correct’ approximation than a real simulation.
However there are some games engines, such as ‘Source’, use physics in puzzles or in combat situations. This is making allowance for more accurate physics so that the momentum of an object can knock over an obstacle or lift a sinking object.

Sound –

Sometimes, depending on the engine that is being used, depends on how difficult it would be to apply  a sound to a scene. Scenes have an atmosphere to them and most atmospheres are based around visual and sound stimulation. Some engines can apply different effects, like decreasing the volume depending on the distance there is other stuff, like being able to apply different sounds over each other to be able to create an environment with the right kind of noise.

Different Types of Game Engines

2D engines


A 2D game engine is obviously made to help make 2D games. These are usually based on making the 2D environment that a character will have to travel though. Due to it being in 2D
2D game engines are basically the same to that of a 3D game engine, the only major difference is that the 2D game engine has not got a Z coordinate.

Adventure game studio is primarily into making adventure games.
They make the kind of games that you would play like ‘Time Stone’, and basically there is a story line to it, and it is in purely 2D.

Most online computer games are also in a 2D format, making 2D games more accessible to people who are more into playing free online games.


When thinking about 2D games, a person must think about what it is that they are trying to create within that space. Since 2D is flat and such you would be able to make a game where the character does not move, but the background does. This would make it so that the designer/creator of the game might not have to think of an animation for the main sprite, ever that or they could make one and then link it up to movement of the background.

Also when making a 2D game, a thind such as lighting can be done by just painting a brighter background, so then you would not have to worry about the event it self.

In some 3D game engines, you can also make 2D games, one that does this is Unity. You can make a 3D scene and then rendering it using flat planes. This then makes it a 2D game. This is because you will only be able to view and move within the X and Y Axis.

3D engines


3D engines are there to help create 3D environments for games. This is the software used to pull together assets of a game, with the environment layout. This also helps with the other fundamentals of games. Like sound, physics and also the animation of objects.

Unreal Engine

The engine that I have been working with is the Unreal Engine. This is an engine that allows me to build environments, apply materials and textures, import sound, and mess with the collision of assets among other things. This makes it easier to create games, rather than to Hardcode a game, hardcoding is making a game from scratch in complete code, and not being able to see the graphics or anything of the game until it has been rendered. That is hard and also very time consuming.

3D game engines have made it easier to create games and faster, so these game engines are rather efficient to the games industry.

This is a lot more time consuming but it also allows the player more freedom, and the more freedom, the more people would like to play your game.

3D allows for game developers to think of environments and then make it, immersing themselves within the game. you would be able to look around corner and under things, all from different angles.

Players of 3D games would be able to go pretty much anywhere they would like in a game, if that area has been unlocked, because the creators still would like to make it challenging for the players.

When making a game, developers have to think about what it is that they are making and for who, this is also done for 2D gaming. But in 3D they have to think about how difficult they can make the lay out of their game, otherwise their players might be getting constantly lost.

They have to take in the consideration of difficulty and also if they would be able to make it with the amount of rendering that would have to happen very quickly. This means they also have to have a powerful machine that can also render their products. 

Havok Physics Engine

This was designed primarily for video games, and allows for real-time collision and dynamics of ridged bodies in 3D. This engine provides multiple types of dynamic constraints between ridged bodies (e.g. for the rag doll physics), and has a highly optimised collision detection library. This game engine allows for a more realistic virtual world in games.

Mobile Engines

Mobile game engines tend to be lesser in terms of scope. They are usually made in the 2D format rather than 3D. This is because they have to think about the visual quality of phones.

If you think back to some of the first games: Snake and Space Invaders, they look slightly pixellated, and are rather simple. Now though some of the games that can be got on phones are rather amazing in detail quality compared to that of the past, Temple Run is an example of a mobile game that shows the level of detail in a game that has recently been created.

AndEngine, this is a mobile game engine that works off of the Android Platform and makes 2D games. Some of the games created by this engine are: Spaceman BOB, Man Vs. Mosquito and Crazy Chess.


jPCT-AE, this is a mobile engine that also works on the Android Platform but this engine makes 3D mobile games. Some of the games created with this engine are: Gunship Assault, Subject 17 and Range Shooter 3D.

There is also the problem of phones systems for mobile game developers, because they have to try and account for phone qualities that may hinder a games functions. Like the power of a mobile, game developers would have to look into ways of creating higher quality games while still keeping the power usage down and other things like that. 

In conclusion, game engines come in a number of different packages, this is because they will be used in a number of different was and developers will use the engine that is more relevant for what it is that they are going to make. Be it 2D or 3D a game engine can do almost anything you can think of when it comes to creating games. 

No comments:

Post a Comment