Samuel Bate

Unit 67- Game Engines

Research task- Components of a

Task A

Graphic rendering is generating an image via the use of an engine. It is the image shown ​ on screen. http://learning.maxtech4u.com/graphics-rendering-computer-graphics/

A graphics pipeline is a series of actions that lets you draw many objects on the screen at ​ one time, while maintaining a decent frame rate, ie. 60 fps or 30 fps, (anything lower than

30 fbs things start to lag on screen). https://vulkano.rs/guide/what-graphics-pipeline

Culling is the process in which the object becomes not visible when it is outside the line ​ of sight. It reduces lag because you cannot see the object, there is no need for it, the object, to be drawn and therefore doesn’t impact the frame rate. https://docs.cryengine.com/plugins/servlet/mobile?contentId=1605709#content/view/1605709

Rendering techniques: radiosity and Ray Tracing

Radiosity is a rendering technique that is very useful for rendering the inside of buildings ​ on surfaces that reflect light from diffuse surfaces (when the surface is rough and light will reflect in lots of different directions). https://web.cs.wpi.edu/~matt/courses/cs563/talks/radiosity.html

It is a global illumination algorithm (or indirect illumination) as it shows light reflecting ​ ​ not just from the light but from reflected surfaces too. It shows soft shadows and is also known as Ambient illumination - like daylight, the whole environment (does not ​ ​ create shadows but does create ambient occlusion which is where surfaces meet. https://en.wikipedia.org/wiki/Radiosity_(computer_graphics)

Direct illumination/ point light - from a point light, like the sun or lamp which casts ​ shadows

Ray tracing generates an image by simulating the physical way light would behave by ​ tracing the path of light. It is used to create realistic effects and traces the colour of pixels as they reflect from one object to another or travel through transparent/semi-transparent objects (called refractions) and traces if the light would be blocked by an object to make shadows. https://developer.nvidia.com/rtx/raytracing

Textures are images placed upon an object to display a correct look and feel of the ​ surface. Most textures are tileable which means the texture can flow if two of the same textures is placed adjacent to one another. There are different types of texture:

Diffuse map: is the actual image of the texture ​ Normal map: shows either a coarse or smooth texture on the object; this can save on verts ​ as the map is only a texture and does not alter the object.

Specular: shows how metalic the object is as it gives off a reflection ​ Opacity maps: determine how opaque the object is, so white represents opacity and black ​ represents transparency. This is useful for creating foliage.

Emissive map: receives no lighting therefore the pixels are shone at full intensity and may ​ be used alongside diffuse map to create an illumination affect.

Animation systems:

Path based animations: This is similar to cell based animations and is when a character ​ or shape is selected from the first frame and it is moved along, creating a path. This path can be curved or straight and the character or shape will follow this path. The environment is stationary during this animation. https://yr12iptanimation.weebly.com/path-based.html

Forward kinematics: alters limb joints to receive desired angles ​ http://www2.cs.uregina.ca/~anima/408/Notes/Kinematics/InverseKinematics.htm

Inverse kinematics: this is used in robotics and animation in films and is the ​ mathematical process of changing a joint angle and then will automatically calculate the required joint angle.This is useful in robotics and in film animation. http://www2.cs.uregina.ca/~anima/408/Notes/Kinematics/InverseKinematics.htm

Particle systems: this is a way of moving or just displaying groups of particles (small, ​ simple images or meshes) giving the impression they are one entity. This can be seen in smoke. Each particle would have its own smoke texture, looking like an individual tiny cloud but when they were grouped together in a particle system, they would look like a larger cloud. https://docs.unity3d.com/Manual/PartSysWhatIs.html

Systems:

Physics: this is the mechanics of the game which make the game more realistic. It ​ introduces the laws of physics to the game, e.g. to determine how intense the gravity is or the force of a projectile. https://en.wikipedia.org/wiki/Game_physics

Sound: ​ Sound is really important in video games - playing with no sound is not as enjoyable or immersive as when the sound is turned on.

Psychology of sound: sound can evoke different emotions when playing a video game and ​ it is also important for each sound to match the gaming experience, to enhance play.

Audio environment: this can set the scene, e.g. birds singing, water flowing and ​ ​ ​ background noise, which will all enhance the immersion of the game, e.g. in games like

Skyrim.

Sound sources: these can be from realistic to enhanced and invented, e.g. in Star Wars ​ games, the TIE fighter sound is an elephant’s bellow and the lightsaber was the hum of a

TV and 35mm projector.

Music: in Europa Universalis IV, the game music changes depending on which section of ​ the game you are in. If you are in a war, heavy metal is played and when you are outside of a war, more classical and traditional music are played, such as the Chinese music when you play i the Orient or German music when you play in the Holy Roman Empire. https://jahmelcoleman.wordpress.com/games-development/the-use-of-sound-in-videogames/

Networking: this game is played through social networking websites and is most ​ commonly multiplayer. https://en.m.wikipedia.org/wiki/Social-network_game

AI: Artificial intelligence

AI agents: makes decisions and can be anything from a person, firm, machine or software. ​ It will carry out an action having calculated the best outcome from past and present experience. An AI agent is composed of an agent and its environment. https://www.geeksforgeeks.org/agents-artificial-intelligence/

World Navigation: means you can move around the game world intelligently using ​ navigation meshes that are created automatically from the scene geometry. https://docs.unity3d.com/Manual/Navigation.html

Middleware: this provides services to applications that are outside of what is already ​ offered by the operating system. It is called a multipurpose software. In other words a

“Software Glue.” It handles handle some specialized aspects,for example the physics of the game. https://www.redhat.com/en/topics/middleware/what-is-middleware https://en.wikipedia.org/wiki/Middleware

Task B

Both Skyrim and 4 use the Creation Engine which is an engine developed by ​ ​ . This engine was healy based upon engine. In reference to Skyrim the particle systems are used for magic and torches. The animations are decent for the time.

Example of torch’s fire on the left and magic on the right.

In Skyrim, various maps have been used on the different

environments and assets in the game. For example, on this

cliff face, a normal map and a diffuse map have been used to

give it the desired rugged effect. Whist on this flawless

diamond, a specular map has been used to show of the

shininess of the gemstone as well as no normal

map as all of the sides and very smooth. On

the diamond a diffuse map has been used to

display the texture as well.

Most modern Paradox Interactive games use

the Clausewitz Engine. This engine was ​ ​ ​ ​ developed by Paradox Development Studio

and was explicitly created for their expansive

grand strategy games such as Europa

Universalis IV [EU4] and Hearts of Iron IV

[HOI4]. AI agents are used for all the allied

and hostile countries not being played, as well as the automatic transport of the player’s units across water and when routed.

In EU4, sound and music has been used to great effect. The music changes depending upon which nation or culture you are playing as. For example, when you play in the Holy

Roman Empire, several high German classical themes are played. Alternatively, when you play in China, oriental music is played. Not only this but when you enter combat the calming music becomes a fast paced song performed by the European band, Sabaton.

Minecraft Bedrock Edition was created in

the Bedrock Engine. The Bedrock engine ​ ​ was initially made for ‘Minecraft: Pocket

Edition’ and later was ported over to

Windows 10, and Nintendo

Switch platforms. This allowed for cross

platform compatibility for multiplayer and

is used for Networking.

In the Bedrock Engine, Minecraft uses an interesting culling technique. It works in ​ ​ chunks which are even sections of the map that will load depending upon how close you are to each section. In Minecraft, the minimum is four chunks and the maximum is sixteen. The rest of the game is not drawn for that particular user. This is to reduce lag and make a smoother gaming experience.

Tabletop simulator uses the Engine. This engine has a good ​ ​ ​ ​ physics system which is well incorporated into the game, as when

you let of of a piece in mid air it falls down to the table, acting

like real gravity. When you flip the table, the pieces fly off into

the bottomless void.

The REDengine was used to create the Witcher 3 which is a ​ ​ non-linear role-playing game set in a medieval fantasy open

world environment.

The graphical rendering in the REDengine works extremely ​ ​ well, and the environment looks photo-realistic and is generally

stunning. This engine also used ray tracing which helps generate an image by simulating the way light would reflect or travel through objects. The shadows are sensational and the lighting is superb, as you can see in this image.

This engine also uses middleware for the physics and the graphics.

So in conclusion I have discussed the REDengine, Unity Engine, Bedrock Engine, ​ ​ ​ ​ ​ Clausewitz Engine and the Creation Engine. ​ ​ ​ ​

Task C

The two game engines I am going to compare are the 4 [UE4] and Unity. ​

Both engines are highly sophisticated and have been instrumental to creating some of my favourite games with the most stunning artwork. Unity was used to create Tabletop simulator and Unreal, Space Hulk Tactics. Unreal is primarily used by AAA companies whilst most Indie games are typically created in Unity over Unreal.

Both content browsers are well laid out and easy to understand, however I personally prefer Unity’s over Unreal as I feel it feels minimalistic and less cluttered compared to

Unreal. However, I prefer Unreal’s rotate tool over Unity’s because I feel Unity’s is surprisingly overcrowded unlike the streamlined Unreal.

On the topic of price, for the full Unitypackage it is ~$75 monthly or $1500 for full purchase, without engine royalties for publishing. However, Unreal is free, with a 5% royalties for publishing. It is to be stated that a free version of Unity does exist as well but it has less features than the pro [paid] version.

Unity uses C# programing language or Java, whilst Unreal uses C++ and Blueprints. ​ ​ ​ Blueprints are a visual interpretation of programing, similar to a flow chart which is exclusive to Unreal. I believe that C++ is laid out in a worse way to C# which I feel is a more organised programing system. Although both languages have a similar code and are object-oriented languages, C++ is considered a harder language to work with. This code is older than C# and although both of them are able to be used for web and desktop applications, C# is more popular at the moment. I prefer C# because it makes sense to me and the language in general is morestrealined and the combiling is quicker than C++.

I personally believe Unreal is more versatile in a 3d environment because you can edit skeleton animations on the fly and the post processing is vastly superior than to unity.

Unreal aso has a material editor similar to 3ds max, instead of unity’s cumbersome material property assignment system. Yet I do think that Unity is better in a 2d environment because it has the necessary tools are to a high standard to create it; such as sprite creator and a seperate physics engine.

So in conclusion, I believe that x is better than y because of the user interface, the programming language and the ability to create expert 2d games.

https://www.youtube.com/watch?v=z4g-hKQ-2ag&vl=en https://www.unrealengine.com/en-US/faq https://www.pluralsight.com/blog/film-games/unreal-engine-4-vs-unity-game-engine-best https://www.upwork.com/hiring/development/c-sharp-vs-c-plus-plus/