Thursday 15 January 2009

Games, Engines And Things I Didn't Know

What is a Game Engine?
The Short Answer..... A software system designed for the creation and development of video games.  The long answer involves a little more depth... what does it do? Why use it and how did they come about!?

What they DO:
They provide a suite of visual development tools in addition to reusable software components.  These tools are generally provided in an integrated development environment to enable a simplified, rapid development of games in a data-driving manner.  Sometimes called 'Game Middleware' they provide flexible and reusable software platform which provides all the core functions needed to develop a game application whilst keeping costs, complexities etc down.
These engines usually provide platform abstraction, allowing the same game to be run on various platforms including game consoles and personal computers (PCs) with few (if any,)  changes made to the game source code.  Within Game Engines you get more specialized systems for different areas eg - Middleware components such as Havok for Physics, FMOD for sound, or Scale Form for UI.
Game Engines (forgetting about the name for a minute) are sometime used for other kinds of interative applications with real-time graphical requirements such as marketing demos, architectural visualizations, training simulations, and modeling environments.

History:
Prior to game engines, games were written as a singular entitles... this means like a game for the Atari had to be designed from the ground up to make the most optimal use of the display hardware - this core display routine is called the kernel by retro developers.  I was one of those retro guys who remembers the Atari and the classic games on it.  I remember the REALLY bad graphics which to be honest we loved just as it was something to do and was so interactive.  My two brothers and I would fight over whos turn it was and I and one other had to stand (the disadvantage of being the younger brother with only one chair).  From what I can remember every game was pretty much platformers as it would have required something magical for a 3D game in the early 1990s.  Most game designs through the 1980s were designed through a hard-coded ruleset with a small amount of leve and graphics data.

The term 'Game Engine' I believe arose in the middle of the 1990s mainly in a connection with 3D games such as 'First Person Shooters'.  This came about with memorable games of id Software's Doom and Quake games that a lot of developers spring boarded off and licensed the core portions of the software and designed their own graphics, characters, weapons and levels - it was the 'game content'.  Away from that the game specific rules and data for the basic ideas and concepts such as collision of bodies and the game entitiy meant that new teams and companies could grow and speacialise in different areas.

Today Game Engines are some of the most complex applications written, featuring dozens of finely tuned systems interacting to ensure a finely conrolled user experience.  It is now common for a typical games development team to have several times as many artists as actual programmers.

Game Engine - NetImmerse and Lineage II is based on the Unreal Engine (already mentioned on the blog).
RenderWare engine is used in the Grand Theft Auto and Burnout Franchises.

MMOG Middleware (Massively-multiplayer online games Middleware)
This is far more complex than the middleware for single-player video games.  However the increasing popularity of MMOGs is spurring development of such middleware packages.

Some Middleware is listed below - typically used for MMOGs:
RealmCrafter
Multiverse Network
Gamebryo
Bigworld Technology
HeroEngine
Monumental Games
NetDog Networking

No comments:

Post a Comment