Tuesday 4 October 2016

Unit 70 Assignment 1

Game Engines
  • Definition, Purpose and Examples
A game engine is a piece of software used by developers, designed to create and develop video games for PCs, consoles and mobile phones. Games very useful – crucial, for the developers since it provides them with lots of functional features that are needed in video games, such as:
  • A rendering engine, for 2D or/and 3D graphics;
  • A physics engine / collision detector;
  • Sound;
  • Scripting;
  • AI (Artificial intelligence);
  • Animation;
  • And last but not least, minor, essential features, such as networking, streaming, memory management, threading, scene graph, cinematics and localization support.
Game engines are very often reused and/or updated when creating different games/sequels, instead of creating a brand new game engine or using a different one. This saves the developers and game companies a lot of money, since games development is a very expensive process.
The purpose of the game engine is pretty much described above, and it’s also quite self-explanatory: It’s to give you the tools to make a game with – for every asset you want to create, every sprite, model, sound, animation and line of code, the game engine allows you to do it.


Examples of game engines and how they’ve evolved (their features, games created and genres used throughout time)


  • \\Slfilesvr5\307322$\Downloads\Unityenginelogo.jpgUnity Engine (free, latest version: 5.4.1), developed by Unity Technologies and released in 2005, the Unity Engine was announced that it was only going to be available for OS X, but has since became a multi-platform engine expanding to over 20 platforms. The Unity Engine is written in C, C++, C#, JavaScript and Boo. It’s portable to most of today’s APIs and focuses mainly on the following ones: Direct3D, OpenGL, OpenGL ES and also the console APIs. This engine is known for being user-friendly (fairly easy to use, and it is free) and for being very popular amongst web games and indie game developers. The Unity Engine is dominating the game industry at the moment, due to its low learning curve for beginners, massive number of content and assets created by the community and rapid development speed - this engine has over 4 million registered developers, making it the most popular game engine ever made. Games that were made in this engine are: Firewatch, Hearthstone, Rust, The Forest, Pokémon GO, Fallout Shelter, Inside, Superhot, Temple Run, Gang Beasts etc.


  • \\Slfilesvr5\307322$\Downloads\Unreal_Engine_logo_and_wordmark.pngUnreal Engine (free, with access to source code, fees apply with first product, latest version: 4.13), developed by Epic Games and with 4 total versions developed throughout time, the Unreal Engine was created 18 years ago and it was firstly designed for first-person shooters, although, it has successfully been used with other genres, such as stealth games, MMOs and RPGs. The latest version of the engine, Unreal 4 is written in C++ and C#, HLSL, GLSL and Cg. Unreal 4 also supports Microsoft’s DirectX 11 and 12, OpenGL, Vulkan, Metal and last but not least JavaScript/WebGl. It is very popular amongst today’s developers, one of the main reasons being the fact that you can make games looks gorgeous and when porting them, you will keep the high definition graphics. Unreal also has a huge community - there's a community marketplace, where anyone can publish content, ranging from models to plugins, tutorials, sounds, props, scaled environments, C++ code, etc. This content is available for anyone, and there is free content as well as paid content. This makes it easier for the average user to create a game from scratch, and obviously makes everything more time efficient. Popular games made with this engine are: Rocket League, Paragon, BioShock (and BioShock Infinite), Gears of War 4, etc.


  • \\Slfilesvr5\307322$\Downloads\CryEngine_Nex-Gen(4th_Generation)_-_15.pngCryEngine (free for non-commercial, latest version: 5.2.1), developed by CryTek and used on all their games, this engine has a lot of modified versions - companies have bought its license from CryTek and have tweaked, and even in some cases almost completely rebuilt the engine in order to adapt it to their titles. Examples: Cloud Imperium Games use their own version of CryEngine for Star Citizen. Ubisoft have their own version, called Dunia Engine, and they use it to make Far Cry. The CryEngine is written in C++, C# and Lua and supports the following platforms Windows and Linux, PlayStation 3 and 4, Xbox 360 and One, Wii U, Android and iOS. Even though this engine is not known for being used to create a super successful triple A game (except for the FarCry series, although as I mentioned Ubisoft used a heavily modified version of the CryEngine, also Evolve just completely failed on release), it is still a very powerful engine, and has the tools to do so. It is arguably one of the best engines to make games look pretty. Nevertheless, here are some popular games developed with this engine: Evolve, Crisis series, Star Citizen (still in development), Sniper: Ghost Warrior 2, Snow.


  • \\Slfilesvr5\307322$\Downloads\Rockstar_Advanced_Game_Engine.svg.pngRockstar Advanced Game Engine (RAGE) (Proprietary), “released” in 2006, RAGE is a closed-access engine made by Rockstar. Since no one has access to this engine, except for people that work for Rockstar, the way the engine works, the code it is written in and the general features and specs of the engine are based on speculation, rumours and results (what we actually see when a game is made in the engine). Aaron Garbut, one of the founders and art directors of Rockstar North said that RAGE was originally meant to be just a set of components – a basic rendering engine as well as a physics engine as such, and never meant to be an actual game engine. According to Garbut, the engine has been developed and evolved throughout the years, and it has been standardised across all games at Rockstar, giving all the teams the same toolset to work on different games. Throughout time, Rockstar has integrated Euphoria, a character animation engine and Bullet, an open-source physics engine into RAGE. Last but not least, this engine is portable to Windows, OS X, PlayStation 3 and 4, Xbox 360 and One and Wii. It also supports DirectX 11 and stereoscopic rendering on the PC platform.


  • \\Slfilesvr5\307322$\Downloads\Frostbite_engine_logo_2016.jpeg.jpegFrostbite (latest iteration: 3, Proprietary), developed by DICE (EA Digital Illusions CE), a Swedish, subsidiary company of EA, also the developers of Battlefield. This engine currently supports Windows, PlayStation 3 and 4, Xbox 360 and One. When it was first created, this engine was built for first-person shooters (by DICE, Battlefield), but has since then been used by more EA studios, in different genres, such as racing, RTS, role-playing and also sports. The engine has 3 main toolsets: FrostEd, Runtime and Backend Services. FrostEd is a desktop program for developing the game in a real time workflow. It is said that the workflows and runtimes in this engine are highly configurable and cover all aspects of development, for example audio, scripting, AI, physics, etc. Frostbite 3 has new features: PBR (physically based rendering), a brand new weathering system and it also supports photogrammetry. There are also mod tools for the engine, which means if the developers of a game want to, the community is allowed to mod the game. This is a very powerful engine and gives EA the power to compete with engines like Unreal and RAGE. Popular games developed with this engine are: Fifa 17, Battlefield series, Need for Speed (2015 and Rivals), Medal of Honour.

  • \\Slfilesvr5\307322$\Downloads\The_game_maker_logo.pngGameMaker: Studio (free, latest version 1.4.1760), made by YoYo Games in 1999, GameMaker is one of the easiest-to-use, user-friendly games engines out there. This engine was designed with the purpose of allowing amateur computer programmers to develop games without knowing much about coding or programming. It has a unique, drag and drop feature that allows you to create games by not having to type a single line of code; although, if you want to create more advanced games, there is a sandbox scripting language called the Game Maker Language (GML). It also allows you to write in C++ and Java. It mainly runs games with 2D graphics, but it allows a limited use of 3D graphics and also supports particle animations. GameMaker is portable to: Windows and Mac OS X, Ubuntu, HTML5, Android, Windows Phone 8 and iOS, Tizen, Xbox One and PlayStation. Some of the most popular games using GameMaker are: Undertale, Fran Bow, Deadbolt, Nidhogg, Hyper Light Drifter, etc.


As we can see, I’ve listed 6 game engines. They are all quite similar, with the exception of GameMaker for obvious reasons, being the most basic one. The other 5 are far harder to use, but also far more potent. Unity is the most dominant game engine, but surprisingly, it’s not because of its power as an engine - but instead because of the huge community around it, the amount of material and content provided by its users and for the fact of it being easy to use, user-friendly and also completely free, resulting in indie game developers loving this engine. As a matter of fact, this engine is far less powerful than the other 4 in terms of graphics and overall quality, but at the end of the day, the community and ease of use definitely makes up for it. The Unreal Engine is perhaps the most comparable engine to the Unity, since it’s also free (to a certain point) and has a large community that provides you with material to make your game. Although it’s considered to be harder to use, even though the way the final product will look and feel will make up for it. Frostbite, RAGE and last but not least the CryEngine, are perhaps are the same level of power. They all “offer” the tools to make the best looking triple A game of the decade. Difference is, Frostbite and RAGE are proprietary engines owned by EA and Rockstar respectively, which means they are not available to use for the public. CryEngine although, is free for non-commercial use.


  • Components of game engines


Every game engines has their own components and features, which can be used in different ways by game developers.
  • Graphics rendering
Rendering is the process of creating or generating an image, which can be either 2D or 3D, with a computer program. Every time an image, model, animation, etc. is generated in a game, it creates a scene file containing a data structure that basically tells the graphics card how it looks like. This is obviously used all the time in games, for example: in h1z1 there is a render distance, when your character is travelling forward, the game keeps rendering what’s in front of you, whether it’s a tree or grass, etc. This is so that the game is easier to run, instead of having everything rendered at once.\\Slfilesvr5\307322$\Downloads\acX9Drj.jpg


  • Animations
Animations add motion to rendered objects and models. It’s essential in every video game – it gives life to characters, trees, the sky, etc. Some game engines have animation software integrated, but some don't make, giving purpose to programs such as Maya, Autodesk, Blender, etc.


  • Artificial Intelligence
Artificial Intelligence or AI is intelligence displayed by computers. In games, the AI is everywhere – especially single player games, where characters would be bots, reacting to your actions and code, as well as the script. A good example would be The Last of Us, where you have an AI companion at almost all times, reacting to where you go and what you do, as well as what’s happening, cut scenes, script and overall code.

\\Slfilesvr5\307322$\Downloads\1405516726-2.jpg


  • Middleware

Middleware is software that the developers use which provides them with tools that the game engine by itself does not have. This goes from rendering software to physics software to character animation software, etc. An example of the use of middleware could be Rockstar integrating Euphoria (character animation engine) as well as Bullet (physics engine) into their proprietary game engine, RAGE.

C:\Users\rafae\Desktop\250px-Bullet_Physics_Logo.svg.pngC:\Users\rafae\Desktop\250px-Euphoria-logo.jpgC:\Users\rafae\Desktop\250px-Rockstar_Advanced_Game_Engine.svg.png

  • Collision Detection
Collision detection is the process of the computer detecting whether or not two objects collided, or are going to collide with one another. Some engines may have software integrated that does this, but the ones that don’t need middleware, since most games will use this feature nowadays. Solidworks is an example of a collision detection and physics software. Unity has its own software, OnCollisionEnter.

maxresdefault.jpg


  • Sound
Nowadays, it is safe to say that every single video game has sound in it. Sound software is responsible for mixing the sound, managing echo and so on. Some game engines have their own sound software, while others need middleware. Some examples of sound software are: FMOD, Wwise, Fabric and 3Dception.

3dception-in-pro-tools.pngstudio-multitrack-1024x554.png







  • Physics

Video game physics applies the laws of physics into a simulation with 3D graphics, in order to make the game feel more real. It has been increasing in popularity over the years, since technology is evolving. Nowadays it is pretty standard to have somewhat realistic physics in a video game. Some game engines have a physics engine integrated, other don’t and therefore the developers need middleware software. Some examples of physics software are: Bullet, Havok physics, etc.

havok.jpg
C:\Users\rafae\Desktop\250px-Bullet_Physics_Logo.svg.png


No comments:

Post a Comment