Game Engine

   Game engine is a [1]software, usually a [2]framework or a [3]library, that
   serves as a base code for [4]games. Such an engine may be seen as a
   [5]platform allowing [6]portability and offering preprogrammed
   functionality often needed in games ([7]3D rendering, [8]physics engine,
   [9]I/O, networking, [10]AI, audio, scripting, ...) as well as [11]tools
   used in game development (level editor, [12]shader editor, 3D editor,
   ...).

   A game engine differs from a general multimedia engine/library, such as
   [13]SDL, by its specific focus on games. It is also different from generic
   rendering engines such as [14]3D engines like [15]OpenSceneGraph because
   games require more than just rendering (audio, AI, physics, ...). While
   one may use some general purpose technology such as [16]C or [17]SDL for
   creating a game, using a game engine should make the process easier.
   However, beware of [18]bloat that plagues most mainstream game engines.
   [19]LRS advises against use of any frameworks, so try to at worst use a
   game library. Many game programmers such as [20]Jonathan Blow advocate and
   practice writing own engines for one's games.

Existing Engines

   The following are some notable game engines.

     * [21]free as in freedom
          * [22]Allegro: 2D [23]C game library.
          * [24]BRender: Old 3D engine that used mainly [25]software
            rendering, used e.g. in Carmageddon, later released under
            [26]MIT.
          * [27]Cube2: 3D [28]voxel outdoor shooter engine with real-time
            editable levels, used e.g. in Cube 2: Sauerbraten.
          * [29]Godot: A successful but [30]bloated [31]FOSS ([32]MIT)
            [33]framework engine, alternative to the proprietary [34]Unity
            engine, written in [35]C++, supports many platforms, has 3D/2D
            graphics and physics engines, scripting in many languages and
            many "advanced" features. [36]Capitalist software.
          * id Tech engines (engines by [37]Id software)
               * id Tech 0: Simple 2D [38]raycasting engine, written in
                 [39]ANSI C, used mainly in [40]Wolf3D (1992).
               * id Tech 1: [41]BSP rendering engine used mainly in [42]Doom
                 and Doom 2.
                    * [43]Chocolate Doom: Doom engine [44]fork aiming to be
                      very similar to the vanilla version.
                    * [45]Crispy Doom: Slight enhancement of Chocolate Doom:
                      increased resolution ([46]640x480) and removed
                      hardcoded engine limits.
                    * [47]GZDoom: Another Doom fork, supports newer OpenGL
                      etc.
                    * [48]PrBoom: Doom engine fork adding e.g. [49]OpenGL
                      support.
               * id Tech 2: 3D engine used mainly in [50]Quake and Quake 2,
                 in a modified form ([51]GoldSrc, proprietary) also in
                 [52]Half Life, features both GPU accelerated and
                 [53]software rendering.
                    * [54]Darkplaces: [55]Fork of id Tech 2, used e.g. in
                      [56]Xonotic.
               * id Tech 3: 3D engine used mainly in [57]Quake 3, sadly
                 dropped [58]software rendering support.
                    * [59]ioquake3: Fork of id Tech 3 aiming for bugfixes and
                      improvements, e.g. [60]SDL integration.
                    * [61]OpenArena: Game-specific fork of id Tech 3.
               * id Tech 4: 3D engine used mainly in [62]Doom 3 and [63]Quake
                 4.
                    * [64]iodoom3: Fork of id Tech 4, in a similar spirit to
                      ioquake3.
          * [65]Irrlicht: [66]C++ cross-platform library for 3D games,
            includes a physics engine and many rendering backends
            ([67]OpenGL, [68]software, [69]DirectX, ...). Used e.g. by
            [70]Minetest.
          * [71]OpenMW: [72]FOSS remake of the engine of a proprietary
            [73]RPG game [74]TES: Morrowind, can be used to make open-world
            3D RPG games.
          * [75]Panda3D: 3D game engine, under [76]BSD, written in [77]Python
            and [78]C++.
          * [79]pygame: [80]Python 2D game library.
          * [81]Raylib: [82]C99 2D/3D game library, relatively minimalist.
          * [83]SAF: Official [84]LRS library for tiny and simple portable
            games.
          * [85]Torque3D: 3D game engine in [86]C++.
     * [87]proprietary (no go!):
          * [88]Build Engine: Old portal rendering "[89]pseudo 3D" engine
            used mainly in [90]3D Realms games such as [91]Duke3D. It is
            [92]source available.
          * id Tech engines (engines by [93]Id software)
               * id Tech 5: 3D engine used e.g. in Rage and some shitty
                 Wolfenstein games.
               * id Tech 6: 3D engine adding [94]Vulkan support, used e.g. in
                 Doom 2016.
               * id Tech 7: 3D engine used e.g. in Doom: Eternal.
          * [95]Jedi engine: old 90s "2.5D/Pseudo3D" engine best known for
            being used in *Dark Forces * (Star Wars game).
          * [96]GameMaker: Laughable toy for non-programmers.
          * [97]RAGE: 3D open-world engine developed and used by [98]Rockstar
            for games such as [99]GTA.
          * [100]Source: 3D engine by [101]Valve used in games such as
            [102]Half Life 2.
          * [103]Source2: Continuation of Valve's source engine with added
            support of [104]VR and other shit.
          * [105]Unity: Shitty nub all-in-one 3D game engine, very
            [106]bloated and [107]capitalist, extremely popular among
            [108]coding monkeys, includes [109]ads.
          * [110]Unreal Engine: One of the leading proprietary 3D game
            engines developed alongside [111]Unreal Tournament games,
            EXTREMELY [112]BLOATED and [113]capitalist, known for hugely
            overcomplicated rendering (advertised as "[114]photorealistic").

Links:
1. software.md
2. framework.md
3. library.md
4. game.md
5. platform.md
6. portablity.md
7. 3d_rendering.md
8. physics_engine.md
9. io.md
10. ai.md
11. tool.md
12. shader.md
13. sdl.md
14. 3d_engine.md
15. osg.md
16. c.md
17. sdl.md
18. bloat.md
19. lrs.md
20. jonathan_blow.md
21. free_software.md
22. allegro.md
23. c.md
24. brender.md
25. sw_rendering.md
26. mit.md
27. cube2.md
28. voxel.md
29. godot.md
30. bloat.md
31. foss.md
32. mit.md
33. framework.md
34. unity.md
35. cpp.md
36. capitalist_software.md
37. id_software.md
38. raycasting.md
39. C.md
40. wolf3d.md
41. bsp.md
42. doom.md
43. chocolate_doom.md
44. fork.md
45. crispy_doom.md
46. 640x480.md
47. gzdoom.md
48. prboom.md
49. ogl.md
50. quake.md
51. goldsrc.md
52. half_life.md
53. sw_rendering.md
54. darkplaces.md
55. fork.md
56. xonotic.md
57. quake3.md
58. sw_rendering.md
59. ioquake3.md
60. sdl.md
61. openarena.md
62. doom3.md
63. quake4.md
64. iodoom3.md
65. irrlicht.md
66. cpp.md
67. ogl.md
68. sw_rendering.md
69. directx.md
70. minetest.md
71. openmw.md
72. foss.md
73. rpg.md
74. morrowind.md
75. panda3d.md
76. bsd_license.md
77. python.md
78. cpp.md
79. pygame.md
80. python.md
81. raylib.md
82. c99.md
83. saf.md
84. lrs.md
85. torque3d.md
86. cpp.md
87. proprietary.md
88. build_engine.md
89. pseudo_3d.md
90. 3d_realms.md
91. duke3d.md
92. source_available.md
93. id_software.md
94. vulkan.md
95. jedi_engine.md
96. gamemaker.md
97. rage.md
98. rockstar.md
99. gta.md
100. source_engine.md
101. valve.md
102. half_life2.md
103. source2_engine.md
104. vr.md
105. unity.md
106. bloat.md
107. capitalist_software.md
108. code_monkey.md
109. ad.md
110. unreal_engine.md
111. unreal_tournament.md
112. bloat.md
113. capitalist_software.md
114. photorealism.md