less_retarded_wiki
main page, file list (621), source, all in md+txt+html+pdf, commit RSS feed, report abuse, stats, random article, consoomer version
Game Engine
Game engine is a software, usually a framework or a library, that serves as a base code for games. Such an engine may be seen as a platform allowing portability and offering preprogrammed functionality often needed in games (3D rendering, physics engine, I/O, networking, AI, audio, scripting, ...) as well as tools used in game development (level editor, shader editor, 3D editor, ...).
A game engine differs from a general multimedia engine/library, such as SDL, by its specific focus on games. It is also different from generic rendering engines such as 3D engines like OpenSceneGraph because games require more than just rendering (audio, AI, physics, ...). While one may use some general purpose technology such as C or SDL for creating a game, using a game engine should make the process easier. However, beware of bloat that plagues most mainstream game engines. LRS advises against use of any frameworks, so try to at worst use a game library. Many game programmers such as Jonathan Blow advocate and practice writing own engines for one's games.
Existing Engines
The following are some notable game engines.
- free as in freedom
- Allegro: 2D C game library.
- BRender: Old 3D engine that used mainly software rendering, used e.g. in Carmageddon, later released under MIT.
- Cube2: 3D voxel outdoor shooter engine with real-time editable levels, used e.g. in Cube 2: Sauerbraten.
- Godot: A successful but bloated FOSS (MIT) framework engine, alternative to the proprietary Unity engine, written in C++, supports many platforms, has 3D/2D graphics and physics engines, scripting in many languages and many "advanced" features. Capitalist software.
- id Tech engines (engines by Id software)
- id Tech 0: Simple 2D raycasting engine, written in ANSI C, used mainly in Wolf3D (1992).
- id Tech 1: BSP rendering engine used mainly in Doom and Doom 2.
- Chocolate Doom: Doom engine fork aiming to be very similar to the vanilla version, even including bugs. Keeps the original software renderer. Due to keeping it oldschool, this is a very KISS/suckless engine.
- Crispy Doom: Slight enhancement of Chocolate Doom: increased resolution (640x480) and removed hardcoded engine limits, sometimes also seems to run faster. Along with Chocolate Doom a very KISS/suckless engine.
- GZDoom: Another Doom fork, supports newer OpenGL etc., however it's quite bloated and breaks compatibility.
- PrBoom: Doom engine fork adding e.g. OpenGL support.
- id Tech 2: 3D engine used mainly in Quake and Quake 2, in a modified form (GoldSrc, proprietary) also in Half Life, features both GPU accelerated and software rendering.
- id Tech 3: 3D engine used mainly in Quake 3, sadly dropped software rendering support.
- ioquake3: Fork of id Tech 3 aiming for bugfixes and improvements, e.g. SDL integration.
- OpenArena: Game-specific fork of id Tech 3.
- id Tech 4: 3D engine used mainly in Doom 3 and Quake 4.
- iodoom3: Fork of id Tech 4, in a similar spirit to ioquake3.
- Irrlicht: C++ cross-platform library for 3D games, includes a physics engine and many rendering backends (OpenGL, software, DirectX, ...). Used e.g. by Minetest.
- OpenMW: FOSS remake of the engine of a proprietary RPG game TES: Morrowind, can be used to make open-world 3D RPG games.
- Panda3D: 3D game engine, under BSD, written in Python and C++.
- pygame: Python 2D game library.
- Raylib: C99 2D/3D game library, relatively minimalist.
- SAF: Official LRS library for tiny and simple portable games.
- Torque3D: 3D game engine in C++.
- proprietary (no go!):
Powered by nothing. All content available under CC0 1.0 (public domain). Send comments and corrections to drummyfish at disroot dot org.