# Game Engine Game engine is a [software](software.md), usually a [framework](framework.md) or a [library](library.md), that serves as a base code for [games](game.md). Such an engine may be seen as a [platform](platform.md) allowing [portability](portablity.md) and offering preprogrammed functionality often needed in games ([3D rendering](3d_rendering.md), [physics engine](physics_engine.md), [I/O](io.md), networking, [AI](ai.md), audio, scripting, ...) as well as [tools](tool.md) used in game development (level editor, [shader](shader.md) editor, 3D editor, ...). A game engine differs from a general multimedia engine/library, such as [SDL](sdl.md), by its specific focus on games. While one may use some general technology such as [C](c.md) or [SDL](sdl.md) for creating a game, using a game engine should make the process easier. However, **beware of [bloat](bloat.md)** that plagues most mainstream game engines. [LRS](lrs.md) advises against use of any frameworks, so try to at worst use a game library. ## Existing Engines The following are some notable game engines. - **[free as in freedom](free_software.md)** - **[Godot](godot.md)**: - *id Tech* engines (engines by [Id software](id_software.md)) - **id Tech 0**: - **id Tech 1**: - **id Tech 2**: - **[Darkplaces](darkplaces.md)**: - **id Tech 3**: - **[ioquake3](ioquake3.md)**: - **[OpenArena](openarena.md)**: - **id Tech 4**: - **[Irrlicht](irrlicht.md)**: - **[OGRE](ogre.md)**: - **[OpenMW](openmw.md)**: - **[Panda3D](panda3d.md)**: - **[pygame](pygame.md)**: - **[Raylib](raylib.md)** - **[SAF](saf.md)**: Official [LRS](lrs.md) library for tiny and simple portable games. - **[Torque3D](torque3d.md)**: - **proprietary** (no go!): - **[BRender](brender.md)**: - **[Build Engine](build_engine.md)**: - *id Tech* engines (engines by [Id software] - **id Tech 5**: - **id Tech 6**: - **id Tech 7**: - **[Game Maker](game_maker.md)**: - **[RAGE](rage.md)**: - **[Source](source_engine.md)**: - **[Source2](source2_engine.md)**: - **[Unity](unity.md)**: - **[Unreal Engine](unreal_engine.md)**: