Game Engines

Created by Jijith Nadumuri at 26 Jul 2010 08:31 and updated at 27 Jul 2010 16:23

See Also Game Surface- a surface where characters can be dropped in

Game Engine is the foundation on which games are built. Below is a diagram that shows the Game engine with its sub-components and other components of a Game:-

Slide17.PNG

All the orange colored components are generally part of Game Engine. Usually a Game Editor is considered separate from a Game Engine, though there are exceptions. Similarly Level Editors and Character Editors too are considered separate from a Game Engine. A Game is usually an application developed on top of Game Engine. Usually a Game Application will use the Game Engine as a library or a set of libraries, that can be statically linked to the Game Application / Project.

The components of different Game Engines differ. Game Engines designed for a Strategy Game will differ drastically from that designed for an Action Game and so on. The diagram shown above is a generalization. A typical Game Engine will contain the following sub-components or departments:-

Graphics Rendering Engine Usually Implemented using DirectDraw / Direct3D / DirectXGraphics / OpenGL
Audio Rendering Engine Usually Implemented using DirectSound, DirectMusic (Optional) / OpenAL
Physics Engine Implementable using NVidia Physics Engine or using own code
AI Engine Usually Implemented using own code
Networking Implementable using DirectPlay or using own socket programming code
Streaming Implementable using DirectShow or using own code
Memory Management Implemented using own code
Scene Graph Some support is provided by DirectShow for filter mapping, rest to be developed by own code
Animation Implemented using Own code / Direct3D, X Files / Animation scripts

Graphics Rendering take care of 2D and 3D animation and rendering of Video files usually coming from a Video Engine that may be using DirectShow. Note that, Microsoft now consider DirectShow and DirectMusic as obsolete, but the replacement technology is not that matured. Physics Engine usually take care of Effects, Gravity and Collision. AI (Artificial Intelligence) usually take care of the definitions of rules, roles, acts and goals of the game. Strategy Planning and Path Finding is a special department of AI.

Among the Character Editors I used are 3D Studio Max (with Character Studio), Daz3D, MakeHuman etc. There are also others like Maya and Blend. They are used to design 3D Game characters or generate 2D sprite characters from them. Sometimes the characters are animated and animation files are stored which are directly used by the games. Some other times animation is done in game logic or in game engine logic and only the character mesh is taken into the game. Character Editors will be discussed in detail in another article.

Level Editors are used to define Game Levels or different stage / game environments / scenes of the game where characters interact. Most of the character editors like 3DSMax and Maya will also serve as level editors. There are level editors that specialize on terrain called terrain editors. The best one I use is Bryce. There are also several tree editors that generate realistic trees and forests.

Game Editor is a tool which in some cases allow to create games without writing a single piece of code. Game Maker is an example. Sometimes Game Editors are considered part of a Game Engine or are packaged along with the Game Engine.

Useful Links

  1. OGRE:- An Open Source 3D Graphics Engine which can work with OpenGL or DirectX. This can be considered as a Game Engine in an informal sense:- http://www.ogre3d.org/
  2. TrueVision3D:- A 3D Middleware and so a Game Engine in some sense:- http://www.truevision3d.com/
  3. Genisis3D:- This is an Open Source real time 3D Rendering Engine and not a Game Engine in the strict sense:- http://www.genesis3d.com/
  4. CrystalSpace:- This is a real time 3D Graphics engine (not a full Game Engine). However, it is free (LGPL) and cross platform:- http://www.crystalspace3d.org/main/Main_Page
  5. Adobe Director:- This is not a pure Game Engine but an Animation Engine to create 2D, 3D animations. http://en.wikipedia.org/wiki/Adobe_Director
  6. 3DS Max (with Character Studio):- The best Level Editor / Character Editor for 3D Games
  7. Maya:- As good as 3DS Max http://en.wikipedia.org/wiki/Autodesk_Maya
  8. Blender:- An Open Source solution that can be used instead of 3DSMax but not as good:- http://en.wikipedia.org/wiki/Blender_(software)
  9. MakeHuman:- An Open Source applications that can be used to make human characters:- http://en.wikipedia.org/wiki/MakeHuman
  10. Bryce:- A very good terrain generator:- http://en.wikipedia.org/wiki/Bryce_(software)

Share:- Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License