Tuesday 4 October 2016

Year 2: Unit 70 P1 and P2 - Game Engines

Start Date: 13/09/2016
End Date: 10/10/16
Tutor: Wayne Gallear
Student: Shay Wragg

Game Engines 

What is a game engine?

A game engine is the core of any game, it essentially is a recipe for a game and by that i mean the graphics, code, physics everything created gets put together to make the final product.

There are many game engines out there, some are free for the public to use but most are restricted as they are owned by the companies that created them, this is down to company trademark and a competitive edge against other companies and they are known as Closed Engines. 

Now i am going to compare and contrast the Open and Closed engines.

First i will be talking about the various open engines and how they have evolved over time.

Unreal Engine 

The Unreal Engine is one of the most popular Game Engines out there. Developed by Epic Games in 1998 for an FPS game called Unreal. The Engine is primarily used for FPS games although has been used successfully in MMORPGs, stealth games and other RPG's, the code is written with C++ which makes it a very good tool for Game Developers today. 

The Unreal Engine has been upgraded over the years from Unreal 1 (1998) to Unreal 4 (Present). Every upgrade increases Resolution, AI, Scripting, File Management etc. 

Unreal Engine 1 - 1998


Unreal 1 combined many aspects of game developing for the first time in 1998. Some components used in this engine are: 
  • Integrated Rendering
  • Collision Detection 
  • AI
  • Visibility 
  • Networking
  • Scripting 
  • File Management Systems
The founder of Epic Games Tim Sweeney said that the Unreal Engine was created to be improved over the years. A big reason for the Unreal Engine becoming so popular was because of the Model Architecture and its signature scripting language called Unreal Scripting making it easy for players to modify game properties.

A game called Unreal Tournament was also released using the Unreal Engine 1 and was a big success with players worldwide. 

Unreal Engine 2 - 2002

Unreal Engine 2 was first implemented with a game called America's Army, a game that was funded and create by the US army and the US Government. Other games such as killing floor were also created using UE2



The core code and rendering engine was completely re-written and an additional feature called UnrealEd 2, a level editor. It also included an improved physics engine called Karma physics SDK, the physics engine powered the ragdoll system in Unreal Tournament 2003 and Unreal Championship games. The UE2 Engine also added further support for platforms.

An Update called Unreal Engine 2.5 was released that included:
  • Improved Rendering Performance 
  • Vehicle Physics
  • A particle system editor for UnrealEd 2
  • 64-bit support in Unreal Tournament 2004
Unreal Engine 3 - 2004


Unreal Engine 3 was released in 2004 and was designed with a brand new fully programmable shader software, instead of lighting calculations being done per-vertex they were now done per-pixel  creating higher quality lighting effects. 
UE3 also supports a gamma-correct high-dynamic range renderer.

UE3 supported windows, Xbox 360 and PlayStation 3 platforms at first but then later added support for all iOS devices including OS X. 

The Unreal Engine 3 rendering system supports HDRR, per-pixel lighting and dynamic shadows. 

In 2011 UE3 ported to support Adobe Flash Player 11 by using Stage 3D hardware-accelerated APIs. Epic Games started using this version of UE3 to develop in house games such as Gears of War which was in fact the first published console game developed using the Unreal Engine 3. 


Due to a  high amount of owners of the Unreal Engine 3, Epic Games announced that UE3 would now run on Windows 8 and Windows RT.

Unreal Tournament 3 would receive significant updates that included many new features. Here's a list:
  • A Global illumination solver
  • Improved destructible Environments
  • Soft Body Dynamics 
  • Large Crowd Simulation
  • iPod Touch Functionality
  • Steamworks Integration
  • A real-time global illumination system
  • Stereoscopic 3D on Xbox 360 
  • DirectX 11 Support 
UE3 also branched to TV in which it was used to help with animation a green screen use. Epic Games no longer supports UE3 but it can still be used until 2020.

Unreal Engine 4 - 2012/2016



The Unreal Engine 4 had been in development from 2003 up to 2008 and was directed at the eighth generation of consoles, PC's and Android.

Unreal Engine 4 features:
  • An improved real-time global illumination system 
  • Developer features to reduce iteration time
  • Allows updating of C++ code
  • New "Blueprint" Visual Scripting System
The new Blueprint system allows for quicker development logic without using C++, includes live debugging, all which results in less iteration time and less of a divide with different types of developers such as technical artists, designers and programmers. 

Epic Games released the Unreal Engine 4 in 2014 as subscription service, they also created the Unreal Marketplace that lets users create and sell games that they have created, users can also create different "Asset Packs" and sell them. Asset Packs can include skins, textures, player models, weapons etc.




Unreal Engine 4 - Kite Trailer - https://www.youtube.com/watch?v=Yo2-Pgcmh8U


Unity 



Unity is a cross compatible game engine used to create video games for PC. Consoles, iOS, Android and websites.

The engine has lots of desired features that are being added and upgraded with every version that releases, five major versions have released so far. Some of these features are:

  • specification of texture compression
  • resolution settings specified for different platforms
  • provides support for bump mapping
  • reflection mapping
  • parallax mapping
  • screen space ambient occlusion (SSAO)
  • Dynamic shadows using shadow maps
  • Texture-to-texture and full-screen post-processing effects
  • Advanced shaders
Unity is one of the biggest game engines available to the public with 1.3 million users in 2012, since release the software has received many rewards and has been successful with developers worldwide.

Here is a feature preview of the latest version of Unity:




CryEngine


CryEngine is a game engine created by a German game developer called Crytek. The engine is updated to support new platforms and add new feature to improve their games. 

The engine is available to the public as well as other developers. Many developers have took the CryEngine and altered it to their liking and to create a whole new styl, for example Ubisoft has their own heavily modified version of CryEngine that is not available to the public called the Dunia Engine.

CryEngine 1 

CryEngine 1 was first used to create Far Cry, which was first only a demo to show off CryEngine but when Crytek saw the games potential the game was released. Later on when improved video cards were released Crytek release CryEngine 1.2 which supported better graphics, version 1.3 supported HDR lighting. 

Crytek began licensing the engine to other developers and Ubisoft actually bought the property rights to Far Cry and gained access to the Far Cry version of the CryEngine.



CryEngine 2

CryEngine 2 was first used to create Crysis. CryEngine 2 was licensed to IMAGTP, a french architectural and urban-planning company to show their clients what a structure would look like prior to starting construction. 

In 2007 Crytek announced they would be using CryEngine 2 to creat a brand new game based on a new "Intellectual Property" and that was going to be nothing to do with the Crysis series or even an FPS. Also in 2007 Ringling College of Art & Design licensed CryEngine 2 for educational purposes, becoming the first higher education institute to license CryEngine.




CryEngine 3

In 2011 Crytek announced that CryEngine 3 was in development and would support new platforms such as Windows, Xbox 360, PlayStation 3 and Wii U, it was also said tha the engine would support DirectX 9, 10 and 11. 

It was announced that Crysis 2 would be also created using CryEngine 3. 

In 2010 Crytek released a demo of CryEngine 3 that showed off new features such as Cascaded Light Propagation Volumes for Real Time Indirect Illumination. 

In 2011 he Australian Defence Force revealed that the Navy Personnel would train using a virtual landing helicopter dock ship made using CryEngine 3

Also in 2011, a Mod SDK version of CryEngine 3 became available on Cryteks website that would allow the creation of custom maps, mods and other content for Crysis 2. Crytek also release a free to use version of CryEngine for non-commercial developers called CRYENGINE Free SDK.



CryEngine 3.6-4 

In 2013 Crytek completely rebranded CryEngine from version 3.6.0 to "CryEngine" The reasons for this are that the next version of the engine would be completely different and nothing like the previous versions of the engine, although the development kits available available to lincencees still use version numbers. The new CryEngine added support for Linux and current generation consoles such as the Xbox One, PlayStation 4 and Wii U.

CryEngine V 

In 2016 Crytek announced a CryEngine V which features native DirectX 12, Vulkan and Virtual Reality support. Also a new licensing model was introduced to with a "Pay what you want" model to access to source code.

Here's a showcase of CryEngine V 




Closed and Well Known Engines. 

Frostbite Engine


The Frostbite Engine was developed by EA Digital Illusions CE, commonly known as DICE. 

DICE created the engine to initially create first-person shooters although since its creation the engine has been used in huge range of genres such as First-Person Shooter, Racing, RPG, Sports, Real-time Strategy, Tower Defence and Action-Adventure Platform.

The current engine is designed to run on multiple platforms such as Windows, Xbox 360, PlayStation 3, Xbox One and PlayStation 4 

The engine has been updated over the years along with the release of newer games such as the Battlefield, Medal of Honor and Need for Speed series'. 



Frostbite focuses on three main features, FrostEd, Backend Services and Runtime. These components help create these aspects of the game:

  • Audio
  • Animation
  • Cinematics
  • Scripting
  • AI
  • Physics
  • Destruction
  • Rendering
  • Visual Effects
Frostbite 3 introduced weathering systems, physically based rendering, and support for various development techniques. Frostbite 3 had many upgrades that improves tessellation technology and also features Destruction 4.0 which enhances destruction in-game.

An impressive addition to the Frostbite engine was the Levolution system in Battlefield 4 that allows for wider and more detailed destruction in-game, also the engine has been used in FIFA 17 to add an immersive weather system and more detailed spectators. 

Go to the 0:50 point to see gameplay of Levolution.



RAGE (Rockstar Advanced Game Engine) 

The RAGE engine is a game engine developed by Rockstar Games to develop games on Windows, Nintendo Wii, Xbox 360, Xbox One, PlayStation 3 and PlayStation 4 

The RAGE engine was developed to improve all future Rockstar games, the engine supports DirectX 11 and stereoscopic 3D rendering on the PC platform.

The RAGE engine contains some third party components such as the Euphoria character animation engine that adds unique real time animations, it also uses the open-source Bullet physics engine which simulates collision detection, soft and rigid body dynamics.


What makes a game engine? (Components)

Game engines are made up of many components. These components include things like a physics system, a graphics system, an animation system. The list goes on. 

I will now talk about some of the many components that are used in multiple game engines and how individual engines alter them differently. 

Main Game Program 

Every game engine begins with a written program. The program consists of written algorithms that is essentially the 'engine' of the game engine. Rival developers will often write different programs to make their engine unique.

For example the Unreal Engine would use a different program to the RAGE engine due to one being available to the public and one being completely company orientated.

Rendering Engine 

The rendering engine generates 3D animated graphics by a certain method such as rasterization or ray-tracing. 

Rendering engines are built using application programming interfaces (APIs) such as Direct3D or OpenGL. Other APIs commonly used are DirectX and Simple DirectMedia Layer as they provide hardware-independent to other computer hardware such as mouse and keyboard etc. 

Software rendering is also used in some game engine for modelling reasons or still-rendered images when visual accuracy is valued over real-time performance. 

Game engines are written using programming languages such as C++, C or Java. The languages make it so the developer can access specific features of the engine.

An example of this would be Grand Theft Auto V compared to Crash Bandicoot, these are two massively different games as one is photo-realistic and the other is animated, the two would use completely different rendering systems due to the size of each game.




Audio Engine

The audio engine consists of sound specific algorithms that calculate things on the CPU. There are multiple sound APIs available such as OpenAL, SDL Audio, XAudio2, Web Audio and more.

An example would be Doom 3 uses OpenAL for realism purposes, where as the XAudio2 system is used with a low-level audio mixer. 


Physics Engine

The physics engine simulates the laws of physics realistically. An example of this is the Euphoria system used in some of Rockstar Games' titles such as Grand Theft Auto or Red Dead Redemption, or the Havok engine used for games such as Assassin's Creed.

Euphoria is based completely on a enhanced Ragdoll system where as Havok focuses on movement, destruction and other attributes.

The Euphoria system focuses on generating realistic animations in real time, making each animation unique. 

Here is a demonstration of the Euphoria System:

 

Artificial Intelligence (AI)

AI is how in game entities behave, whether they are aggressive and attack the player or are allies. Any in game character, pedestrian or animal has AI programmed specifically for it. AI is what quite literally brings the game to life.

AI is nearly completely different in all games, it is a huge component in creating a certain genre of video game. For example in the Command & Conquer series, the AI can attack, defend, build etc, but in a game like assassins creed the AI can fight, run or could be a civilian or an animal.


Middleware

Middleware is the 'Glue' to a game engine. It is computer software that allows a bridge to each components of the Game Engine, bringing it together and creating the final product. 














No comments:

Post a Comment