The game engine is a core software component of computer and video games and other interactive graphics applications processed in real time. It provides the basic set of demanded technologies, simplifies development, and often gives the desired opportunity to run the game on multiple platforms, e.g. game consoles and desktop operating systems, such as GNU/Linux, Mac OS X and Microsoft Windows.
The term ‘game engine’ refers to a whole range of applications, including the rendering engine for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, network code, streaming, memory management, threading, and a scene interface. Strictly speaking, all the code written by programmers in the development of the game represents the components of the engine; gameplay is defined by functions implemented in these components.
Choose your best open source game engine
To date, the most popular and advanced (mostly open source) game engines are:
1. OGRE – Open Source 3D Graphics Engine
Ogre is an object-oriented graphics rendering engine. Implemented via C + +, supports 3D graphics and uses Direct3D and OpenGL. To work with the latest version of the engine you need one of the following compilers: GCC, Visual C + + 7.1 (2003), Visual C + + 8.0 (2005). The engine supports compilers to work on Linux and Mac used GCC3 +. If the game will use DirectX, you must first install DirectX SDK (available for download from Microsoft).
According to the developer, Ogre is not in the strict sense of the word game engine. As stated in the documentation, ‘Ogre is just a graphics engine’; meaning it is designed for graphics processing.
2. Crystal Space 3D – full-featured Software Development Kit
A cross-platform Crystal Space is an open source engine with SDK for 3D graphics in real time, designed primarily for game development. Written in C++, but you can use it not only in C++ projects, but in Python, Perl, Java projects. Crystal Space it is a working base with modular concept, because of this, it seems heavier compared to other engines.
3. Nebula Engine – Realtime 3D game/visualization engine
Nebula, once the best open source game engine types, but now far from setting the tone, is designed for 3D-games creation and visualization. Nebula was used in several commercial games. Also written in C++, it runs on Windows and uses DirectX 9.0. It supports classes for Shaders (HLSL and FX-files DirectX), skeletal animation, particle systems and shadows. Nebula supports several common scripting languages: TCL, Python and Lua. It also supports D3D and OpenGL for rendering, runs under Linux and Windows.
4. Irrlicht – an open source high performance realtime 3D engine
Open source, cross-platform, written in C + +, supporting .NET (languages such as C#, VisualBasic, and Delphi.NET), Java – using jirr or Bindenlicht libraries, Python – using the library Pyrr, Ruby – using the library IrrRuby and several other languages. The engine features all the necessary functions: rendering is performed through OpenGL/Direct3D (with support DirectX9.0); this is quite easy to learn game engine suitable for both making the first steps in programming.
5. OpenSceneGraphg – an open source high performance 3D graphics toolkit
This is an open-source, cross-platform engine, written in standard C++ using OpenGL. It supports various model formats, such as .lwo, .obj, .geo, .3 ds, .x, .wrl, i.e. virtually all the objects created in any modern three-dimensional graphics editor (3DS Max, Maya and Lightwave 3D). It runs on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX and FreeBSD operating systems.
6. Microsoft XNA – a set of tools with a managed runtime environment provided by Microsoft
The cross-platform engine is designed for 3 platforms: Windows, Xbox 360 and Zune (mp3-player by Microsoft). However, to develop games for Xbox, you will have to purchase Xbox Developer Kit, though you can develop games under Windows for free. The technology is designed to develop games using DirectX and .NET Framework (.NET Compact Framework for Xbox 360) and, frankly speaking, the main language for developing games using XNA should be C#. The project is well supported by Microsoft: the company organizes webinars, releases support documents, maintains the forum and so on. XNA is often considered to be the best open source game engine.