Thursday, 28 November 2013

Unit 67 Computer Game Engines

Gradual targets:
  1. add in compatibility for WASD / directional controls. (16th january)




Task 1 - 2D and 3D Game Engines


Game engines are essentially the very foundation of a game, possibly just a rendering engine for graphics, or a complicated assortment of algorithms to determine how physics effect objects or how light reflects off walls.

we can classify game engines to two major areas, 2D games and 3D games.

2D games have the largest roots, from old games like 'sonic the hedgehog' to 'Super Mario bros', its no doubt 2D game engines have been around since the early days of gaming

with modern development 2D game engines are a lot more capable than they used to be, with higher quality graphic utilising better particle physics, colours or game physics
thanks to these improvements games can be more artistically stunning, and also have more complex or in depth game mechanics.


 3D games on the other hand came in a lot later than their 2D counterparts













3D games have only really existed since the 1990's, due to the lack of technology and power to create them.
although as game consoles and computers grew and gained more processing power developers were able to create bigger and better worlds using 3D technology.

originally you would just associate games like super mario 64 with the pinnacle of 3D games, and although these earlier games had 3D environments the player was free to traverse at their leisure, they are hardly recognisable in todays games.
most games released now are 3D because there are a lot more you can do with the games using a 3D perspective.
lots of new genres have changed thanks to this shift in the industry, you can even find that games have lots more detail where before there was a lack.
from simple physics like lighting and shading, or water.
a lot of feats that you would see in a 3D game can not be replicated in a 2D game.



3D game engines:
here is a selection of game engines for 3d games.

Quake engine:

the 'Quake engine was created in 1996 for the game 'Quake' by id Software
Quake was the first true-3D game to use a special map design system that preprocessed and pre-rendered the 3D environment, to reduce the capabilities required when playing the game on the CPUs of the time.
this let them use a lot more of the technology on other aspects of the game than the map itself.
it happened to be one of the first games to support 3D hardware acceleration, in fact, it is believed to be the start of independent graphics cards being used instead of inbuilt graphics processors.

http://en.wikipedia.org/wiki/Quake_engine

Source engine:

File:Source engine logo and wordmark.svg

Developed by Valve corporation and originally used in 2004 for the game counterstrike source (a remake of the original counterstrike game using the new engine) this was promptly followed by the release of half life 2.
it's constantly worked on with tweaks and new features rather than having multiple versions released for each game released.
it has a very in depth physics engine, giving the player a lot of control over what theyre doing.
in the game/mod: Garrys mod, there is basically a giant sandbox where you can play around the with engine.

Valve have also released an animation tool known as Source film maker, used to make quality animations using models and sets from games or users.



Gamebryo:
Gamebryo logo.jpg
Gamebryo is a C++ based game engine, used by bethesda softworks  AtlusTrion Worlds2K GamesDisneyUbisoft, most notably featured in the games fallout 3 and new vegas, along with oblivion
this engine has a large capability with NPC dialogue and i personally think that it has one of the best stat mechanics that is used in any game.


2D game engines:

Flash:
Flash is developed by adobe and is primarily used for animations, although thanks to use of action scripts it can be used as a game engine.
games developed in this engine used to be very prominent, however due to the giant boom of open source engines* flash is slowly becoming obsolete.

*open source engines are engines open to the users, they are built for people to use freely, though there may be some conditions, such as having to give royalties if you sell a certain amount. 

Scratch:
Scratch cat large.pngScratch Logo.svg

Scratch is more of an educational tool rather than an engine.
it's used to give people an introduction to coding, with it's own simplistic engine.
although you would be hard pressed to find anything amazing within it's user created library, there is possibility for some good games, despite it's very limited scripting set.

GameMaker:
The game maker logo.png

Game maker, like scratch, is very simplistic although more of a step up.
made by "yoyo games", it's more orientated to actually making a game rather than teaching code, or making animations.
game maker is mostly a interface where you can add components, rather than cold hard scripting it's more 
adding in functions with a slight bit of code work.the user created library of games is actually very diverse and holds a lot of great gems, such as "Risk of rain" and "an untitled story"



What i'm going to use:
Unity:

Unity is a free to use engine and development kit, it's recently become very large in the industry, and is a large part in the increase in indie developers.
we were all set to do our task on unity, but the class unanimously agrees that is is the best option to use because of it's usability and functionality.
unity can be used for 2D and 3D games, and despite being a free (paid version also) software, it is able to create very big and interesting games.