Wednesday, 11 October 2017

Year 2 - Unit 70 - Computer Game Engines - Assignment P1 and P2

Unit 70: Computer Game Engines
P1 and P2-

P1 - The purpose of Game Engines and their advancement over the years:

2D:

Pac-Man for the Atari 2600
1982
2D computer games consist of 2D graphics, these are the computer-based generation of digital images. They are from most two-dimensional models, they are mainly used in originally developed applications which were upon drawing technologies and traditional printing. These include things like typography, technical drawing and advertisements etc. These techniques started sometime within the 1950's which were based upon vector graphic devices. This later developed into being the soul of many games, especially in the first ever video games from brands like Atari. Back when the first games for the Atari 2600 were created they didnt have game engines like we do now so they had to 'talk' directly to their hardware. They did this using a machine code, this code is called Assembly language. So unlike the games I have used as examples below, games like the original Pac-Man were much more complicated to make if you didn't really know much about computer hardware or coding.

Undertale key characters
2015
One of the most notable games of 2015 was Undertale, it is a 2D game created by a developer called Toby Fox. The game engine that he used to develop his game was GameMaker: Studio. This Engine only can be used to create 2D games. At first this game was only released on PC through Steam but as its popularity grew, so did it's audience. Last month, August 2017, the game was released on the PlayStation4 and PS Vita. This proves that just because a game looks basic doesn't mean it actually is. GameMaker Studio was known as Amino until 1999, Game Maker until 2011, GameMaker until 2012 and Game Maker: Studio until this last year. It uses drag and drop action sequences to allow easier game creation, however it allows more precise coding with its own sandboxed scripting language known as Game Maker Language. Without features like these, who knows if Undertale would have even been created?
zs c
Corpse Party
1996
Corpse Party - Blood Covered:
Repeated Fear
2016
A game called Corpse Party (Corpse-Party (PC-98)) was also created using another game engine that only supports 2D games back in 1996 using RPG Maker. It was only released for a Japanese exclusive home system known as NEC PC-9801.  The game was recreated, enhanced and released in 2008 and was know as, 'Blood Covered.' Unfortunately the game engine that was used has not been disclosed as of yet, however it is believed to be/like RPG Maker in the fact that it was 2D and looks extremely similar. This remake makes it obvious of the changes and popularity in 2D graphics of today. They included more characters, updated graphics (probably the most significant addition), professional voice actors and larger maps. Later on it was enhanced even further and renamed, 'Blood Covered: Repeated Fear,' finally it was released internationally under another new name. Plain and simple, 'Corpse Party.' The fact this 2D game was released on so many platforms in so many countries just proves how 2D games are loved and adored still, even with such amazing 3D graphics. They aren't disappearing anytime soon and are perfect choice for any new game creators. More 2D only game engines are; Adventure Game Studio, Buildbox, Game Editor, Infinity Engine and LÖVE.

3D:

3D computer graphics in the
development stage
3D graphics use a three-dimensional representational of geometric data that will be stored in a computer. These could be stored for viewing later or they could be displayed in real-time. There are three basic steps to 3D computer graphics creation:
1. The 3D modelling - this is the forming process of making a computer model of an object's shape.
2. The layout and animation - this consists of the placing and movement of any object within a scene.
Battlezone for the Atari 2600
1980
3. The 3D rendering - The image is generated by the computer using calculations based on light placement, surface types and many other qualities.
The first big 3D game that was an actual success was a game called Battlezone which was released in 1980 as a tank game. It used vector graphics to create itself which is very much like Asteroids. You can clearly see how 3D graphics have developed over the years just by simply comparing Battlezone to any game I have used as an example below. We have gone from just using simple vector graphics to the smooth and high definition that we have as of now.

The Elder Scrolls II: Daggerfall
1996
The Elder Scrolls III: Marrowind
Bethesda are a developing company who are known for many things most of them good (The Elder Scrolls and Fallout series) however, some are bad. Bethesda have used basically the same Game Engine for so many years. At first XnGine (developed by Bethesda themselves to use in-house) was used in the 1990's up until 1999, it was a 3D engine which had support for higher resolutions and in 1998 it was made compatible with 3dfx graphics cards. The first game they created using this engine was Terminator: Future Shock in 1995, it was also the first ever PC game to use the mouse-lock interface which was initially unpopular but over the years has gained a positive reputation. The last game to use this engine was a game called NIRA: Intense Import Drag Race in 1999. This engine also housed 3 of The Elder Scrolls games (The Elder Scrolls II: Daggerfall (1996), The Elder Scrolls Legends: Battlespire (1997) and The Elder Scrolls Adventures: Redguard (1998)). The second game engine they used was NetImmerse who was the predecessor to Gamebryo and as of today I can only find one game they made using this engine and that is The Elder Scrolls III: Marrowind. When you do any research on NetImmerse it always leads back to the Gamebryo engine, speaking of which...
Gamebryo - LightSpeed update
2012
The third game engine they used was Gamebryo, They released two games on using this engine for the Playstation 3, Xbox 360 and Windows, these were Fallout 3 in 2008 and The Elder Scrolls IV: Oblivion in 2006. Gamebryo is written in C++ and caters to almost every platform that was still used in vast amounts (Wii, PSP, Windows, Mac OS X, PlayStation 2,3 and 4, Xbox, Xbox 360, Xbox One, Nintendo DS, IOS and Android). This game engine has a proprietary license (owned by an individual or a company) and is available to be used some of the biggest developers for a price.The reason I say they have used basically the same engine is because all of the engines may have different names but they are all just slightly updated ripoffs of each other.
The Elder Scrolls V: Skyrim vs Fallout 4 graphics using the
Creation Engine.
2011 vs 2015
The latest game engine they used is the Creation Engine, this is a engine that was created for Bethesda themselves much like XnGine which again has a proprietary license just for Bethesda as an in-house engine. Supporting the copycat theory this engine is based off the Gamebryo engine so its basically the same engine but with slightly more impressive graphics. The engine was released in late 2011 but has only had two games created with it, these are The Elder Scrolls V: Skyrim in 2011 and Fallout 4 in 2015. In between these two games Bethesda enhanced the graphical core of the Creation Engine b y addidng more features like a a new type of rendering and they also worked with Nvidia to add volumetric lighting. This update was showed in the new graphical content of Fallout 4 compared to Skyrim. The Creation Engine can create games for the following platforms:

  • Windows
  • Nintendo Switch
  • PlayStation 3, 4 and VR
  • Xbox 360 and Xbox One
Quake family tree
As of 2013
Quake
1996
Another game engine that was made by a development team was the Quake Engine, it was created by id Software to power their game from 1996 called Quake. This game featured 3D real-time rendering which was true to its claim. It was the first true 3D game which used a special map design system, this pre-processed and pre-rendered some elements of its 3D environment and  the second Quake engine (id Tech 2) was based on the first Quake Engine. It was written in the C code and Assembly language and can  create games for the following platforms:
  • PC
  • Amiga
  • PowerPC Macintosh
  • Nintendo 64
One of the most popular game engines, if not the most, is the Unreal Engine. This proved extremely well by the amount of games that have been created using this engine, that of around 750, over the past 4 engines. It only supports the creation of 3D games, with the majority of  these games you would've heard of and its first release was 19 years ago in 1998. The developers are Epic Games and there have been four different versions of Unreal and each one has had many different changes and helped it grow it's reputation.
Rune - Unreal Engine 1
2000
The first version that came into the world was, of course, Unreal Engine 1. The one main difference between the games created with the first engine and any of the others is that many people say that the enemies are a lot easier to spot and kill! Also the 1st engine created big and unrealistic lens flares. This engine was originally was made for the 'Unreal' game, the engine and game were released together 3 years after the development started. Software and hardware rendering were present in the beginning software as well as collision detection, coloured lighting and an initial version of texture filling. There was a provided level editor called UnrealEd that was created with it, and support for real-time constructive solid geometry operations in 1996 and it allowed mappers to change the level layout 'on the fly.' They added real-time direction illumination and light sourcing during the creation in 1995 and 1997. at first it only had support Microsoft Windows, Mac and Linux but later 'Unreal Tournament' widened the platform to the PlayStation 2 and Dreamcast with support of Secret Level, who are now known as Sega Studios San Francisco. In 2000 Epic updated the engine with many improvements like higher polygon count models and architecture, a skeletal animation system and large-scale terrain support. It quickly became popular due to the modular engine architecture and the scripting language called UnrealScript which made it easy to mod. You don't need to spend a fortune to create and mod your own games, engines like Unreal are free and allow basically anyone to mod their games as well as creating (not until UE3) their own for a price. This nature meant the engine could be extended and improved over the multiple generations of games we have been faced with. This was stated by Tim Sweeney in a 1998 interview with a magazine called 'Maximum PC'.
Lemony Snicket's A Series of Unfortunate Events - Unreal
Engine 2
2004 
The second version debuted in 2002 with the game 'America's Army,' the basic structure was used from the last engine but the renderer was completely re-written. It also had new features added like the Matinee cinematic editing tool, export plug-ins for 3D StudioMax, Maya and the Karma physics engine which is a tool by Math Engine that powered the the ragdoll physics in Unreal Tournament 2003. It also featured an updated level editor called UnrealEd 2 and was shortly followed by a third version (unsurprisingly called UnrealEd 3). Other elements were updated, these contained improved assets as well as Xbox support. UE2.5 was an updated version to the original UE2, this improved rendering performance and added vehicles physics, a partical system editor for UnrealEd and 64-bit support in 'Unreal Tournament 2004 which was all new from UE1. An updated specialised version of UE2 was used for 'Unreal Championship 2: The Liandri Conflict' on  the original Xbox platform. This version was called UE2X and it featured optimisations specific for that console. In 2011 Ubisoft Montreal revealed UE2 was running successfully well on the Nintendo 3DS.
DmC: Devil May Cry - Unreal Engine 3
2013
Unreal Engine 3 had its first screenshots presented in 2004 even though it had already been in development for the past 18 months. It was apparently released in 2007 and unlike Unreal Engine 2 (which still supported fixed function pipeline) Unreal Engine 3 had been designed to take advantage of fully programmable shader hardware. All lighting calculations were done per-pixel, instead of per-vertex. It had supported gamma-correct high-dynamic range renderer and initially this version only had platform support for Windows, PlayStation 3 and Xbox 360. iOS and Android were added in 2010. 'Infinity Blade' was the first title for iOS and Android had 'Dungeon Defenders' as theirs. OS X support was added in 1022 and that same year it was announced that the engine would support Adobe Flash Player 11 through stage 3D hardware-accelerated APIs and that it was also to be used in two Wii U games which were 'Batman: Arkham City' and 'Aliens: Colonial Marines'. Windows 8 and Windows RT support was added in 2012 and Epic teamed up with Mozilla to bring Unreal Engine 3 to HTML5. In four days it was able to port the engine to JavaScript and WebGL using the asm.js and sub-language and Emscription compiler. Throughout UE3's lifetime many large updates have been incorporated, these include a global illumination solver, improved destructible environments, soft body dynamics, large crowd simulation, iPod Touch functionality, Steamworks integration, a real-time global illumination solution and stereo scopic 3D on Xbox 360 by TriOviz for a company called Games Technology/ DirectX 11 support was finally demonstrated with the 'Samaritan' demo in 2011 at  that years Game Developers Conference.
Although UE3 has been quite open for modders to work with, the ability to publish and sell games made using UE3 was restricted to owners of a licence towards the engine. In November 2009 Epic released a free version of Unreal Engine 3's SDK (Software Development Kit) called the Unreal Development Kit that was available to all of the public. In December 2010 it was updated to have support for making iOS games and apps.
The Park - Unreal Engine 4
2014
In  August 2005 it was revealed that Unreal Engine 4 had supposedly been in development since 2003. Up until 2008 it was only in development with a single man, Time Sweeney (founder and CEO of Epic Games. Video of the engine being demonstrated by technical artist, Alan Willard, was released on June 7th 2012 to the public. It targets the current eighth generation of consoles, PCs and devices running Android which was announced sometime around January 2014. One of the new major features planned for UE4 was real-time global illumination which would eliminate the need for pre-computed lighting. This however, has been replaced with a similar but less resource hungry algorithm previous to the release for all platforms. this was mainly due to performance concerns on next generation consoles. It includes many more new developer features to reduce iteration time, and allows updating of C++ code whilst the engine is running. A new 'Blueprint' visual scripting system allows for rapid development of game logic without using C++, and includes live debugging. The result of this is that there is a reduced iteration time and less of a divide between technical artist, designers and programmers. Epic Games released Unreal Engine 4 with all of its tools, features and complete C++ source code on March the 19th 2014. On the 3rd of September 2014 the Unreal Engine Marketplace was launched, this allows users to buy and sell community-created content of all shapes and sizes. In addition to all the previous free content, this new marketplace came with some varied asset packs including full-scale environments, characters, animated meshes, prefab C++ code, props, sounds, materials and many more asset types as well as free tutorials and demos. The next day it was released to schools and universities, this included personal copies for students enrolled in video game development, computer science, art, architecture, simulation and visualisations for free. Since the 2nd of March 2015 it has been available to the public for free with any and all future updates included. It also has a selective royalty schedule for those who wish to publish anything. Its currently available for use on Windows and Mac to create games for the following platforms:

  • Windows
  • macOS
  • Linux
  • Steam OS
  • HTML5 
  • iOS
  • Android
  • Nintendo Switch
  • PlayStation 4
  • Xbox One
  • Virtual Reality (VR) - SteamVR/HTC Vive, Oculus Rift, PlayStation VR, Google Daydream, OSVR and Samsung Gear VR.


The Stanley Parable
2011
A company called Valve have their own in-house game engine called Source. It debuted in June 2004 with Counter-Strike: Source which was followed almost instantaneously by Half-Life 2. Its successor, Source 2, was announced in March 2015 with the first to use it being Dota 2. Source originates from the GoldScr engine which itself is a heavily modified version of the Quake engine. John Carmack (the owner of Quake engine) even wrote on his blog in 2004, "there are still bits of early Quake code in Half-Life 2."
The source 2006 branch was a term used for valves games using technology that peaked with the release of 'Half-Life 2: Episode One'. HDR rendering and colour correction were first added in 2005. This required the engines shaders to be re-written. 'Episode One' added Phong shading and other small features.
Left 4 Dead
2008
Source 2007 branch illustrated a complete upgrade for the Source engine to the release of 'The Orange Box'. An in-process tools framework was made to support this, it also supported the initial builds of 'Source Filmmaker'. The facial animation system was hardware-accelerated on modern video cards for much better quality. Support on PC was completely unstable as an experiment until 'Left 4 Dead' was released. Valve then created 'The Orange Box' Xbox 360 release in-house. The support for it is full integrated into the main engine codeline. Valve released all major game titles on OS X along along with the release of the Steam client. Their first game to support Linux was 'Team Fortress 2' in October 2012 with a closed beta version of Steam.
As long ago as May 2011, Valves possibly largest project was developing new content authoring tools. Included in this was Source 2, they stated this would replace older and more outdated tools. This could allow content to be created quicker and more efficiently. Valve announced that they would be using a new in-house physics engine named Rubikon. This would be used to replace Havok and will visualise the physics in the engines tools and would get rid of the need of having multiple windows open. They intend to make the engine free foe game developers to use as long as the game will be published on Steam. It supports the creation of games on following platforms:

  • Microsoft Windows 
  • OS X
  • Linux
  • Android


How have the features of game engines evolved?

Nokia - Snake
1997
Sims FreePlay
2017
A mobile game is a video game that is played on a feature phone, smartwatch, smartphone/tablet etc. The earliest known mobile game was a Tetris type of game on the Hagenuk MT-2000 from 1994, in 1997 Snake was launched by the company Nokia which proved to be one of the most successful mobile games in history and has become one of the most played video games. Snake can be found on over 350 million devices worldwide. However, nowadays mobile games are mainly downloaded via an app store but a few are still preloaded onto the device itself when it is bought. Downloadable games were first put forward commercially in Japan with the launch of a new platform: NTT DoCoMo's I-mode platform in 1999 which then travelled around the world as a craze in the early 2000s. Graphic rendering is the process of generating an image from a 2D or 3D model by means of a computer program, these images could be photorealistic or non-photorealistic. The results by displaying an image of such can be called a rendering. A scene file will contain objects in a precise language or data structure, these will contain geometry, viewpoint, shading information as a description of the virtual scene, lighting and texture. This information is then passed to a rendering program to be processed and then outputted to a digital image or raster graphics file. Collision Detection typically refers to the problem of detecting the crossing of two or more objects, for a long while video games had a very small number of objects to treat so checking all pairs was easy. In some 2D games the hardware was able to detect and report overlapping pixels between sprites in the game with ease. 3D games have used spatial partitioning methods and for a long time one or very few spheres per 3D object for the tests. Almost all games use a collision feature and they often get resolved using simple rules. AI (Artificial Intelligence) is intelligence displayed by machines, in video games it used generate responsive/intelligent behaviours mainly in NPCs will human-like intelligence. One of the first examples of AI is the game of Nim made in 1951 and published in 1952, in the year it was made it was advanced technology. Whereas now AI technology seems like such a basic part of any game made. The sound in a video can be anything from a simple beep to know you've been hit to a full blown soundtrack. Simple synthesizer pieces are still common most game music includes full orchestral pieces and popular music rather than just 8-bit short melodies. Game physics involves the introduction of the laws of physics into a game engine, these tend to make the effects seem more realistic to the player/observer. You can use a physics engine that can provide a general simulation of certain physical systems, these include; rigid body detection, soft body dynamics, and fluid dynamics. Cross-Platform, also known as multi-platform software or platform-independent software, can be computer software which can be divided into types; one which requires individual building or compilation for each platform that it can support or the other which can can run directly on any platform without special preparation.

Components:

Animation Systems add motion to rendered objects and entities, in some engines animated meshes are called Skeletal Meshes. This is because bone-based skeletal animation is the mechanism for making the animation of the objects in the game happen.This system may be used for multiple things such as making a basic players movement seem more realistic by playing around between Animation Sequences, create moves such as scaling a mountain, apply damage effects or facial expressions, or directly control how bones transform. Middleware is computer software that provides services to software applications which go way beyond what the operating system is capable of. It is often named as "software glue". It makes it easier for software developers to execute communication and input/output, this then allows them to focus on the point of their application.



References:

No comments:

Post a Comment