Tutorials are an excellent way to learn the basics of game development and become familiar with your chosen framework or engine. They provide a guided path, allowing you to follow along and practice the concepts being taught. However, tutorials often have a limited scope, focusing on specific tasks or features rather than the bigger picture.
When you’re ready to tackle your first major project, you’ll likely find yourself facing various architectural decisions. To make these choices wisely, it’s crucial to study good practices and see how successful projects have been implemented in the past. One of the best ways to do this is by examining open-source games.
Open-source games offer a wealth of knowledge, as they allow you to see how experienced developers have approached various challenges and solved common problems. By studying these games, you can gain insights into best practices, efficient coding techniques, and innovative solutions.
Here is a list of open-source games that you can study to improve your game development skills:
Open-Source Games by Genre
Action
Unvanquished – FPS arena game with some RTS elements. C++, libRocket
Bemuse – Web-based rhythm game. Typescript, Javascript, React, Redux, PixiJS
Ikemen-GO – Remake of the IKEMEN (open-source fighting games engine that supports M.U.G.E.N resources). GO, GLFW, OpenGL
Carnage3D – GTA 1 clone. C++, C, GLFW, GLEW, Box2D
RE3 – GTA 3 clone. C++, DX9, OpenGL
San Andreas Unity – GTA San Andreas clone in Unity. C#
donut – Simpson’s Hit & Run clone. C++, OpenGL, SDL2
OpenMB – Mount & Blade clone. C#, Oger3D
OpenTomb – Tomb Raider 1-5 clone. C++, C, Lua, OpenGL, SDL2
Rigel Engine – Duke Nukem 2 clone. C++, C, OpenGL, SDL2
Doom Retro – Doom source port for Windows. C, SDL2
Platformer
SuperTux – Platformer inspired by Mario Brothers. C++, SDL2
The Secret Chronicles of Dr M – 2D Platformer. C++, OpenGL, SFML
Godot Open 2D Platformer – Metroidvania inspired Platformer made with Godot. GDScript, Godot
Commander Genius – Commander Keen 1-6 clone. C++, OpenGL, SDL2
Jazz 2 Resurrection – Jazz Jack Rabbit 2 clone. C++, OpenGL, SDL2
nXEngine-evo – Cave Story clone. C++, SDL2
Prince-Monogame – Prince of Persia 2 clone. C#, Monogame
SDLPoP – Prince of Persia clone based on DOS disassembly. C, SDL2
Adventure
Zelda3 – Zelda 3 clone. C, SDL2
ZQuest Classic – Engine to play and create games like the original Zelda. C++, OpenGL
ScummVM – Engine to run DOS Point & Click Adventure games. C++, SDL2, OpenGL
raw(gl) – Another World clone. C++, SDL2
Text-based Games
Angband – Roguelike Dungeon Crawler. C
A Dark Room – Text Adventure with survival and city-building elements. JavaScript
Ravenier – MUD server (text-based MMORPG). Javascript, Node.js
Evennia – MUD server (text-based MMORPG). Python
CoffeeMud – MUD server (text-based MMORPG). Java
Mudlet – Client to connect to a MUD server, scriptable. C++, Lua
Visual novel
Ren’Py – Visual Novel Engine. Python, Cython, C
Learn to Code RPG – Visual Novel that teaches you to code, created with Ren’Py. Ren’Py, Python
Bathory – Visual Novel created with Ren’Py. Ren’Py
The Parallax Door – Visual Novel created with Ren’Py. Ren’Py
RPG
Flare Engine – ARPG Engine inspired by Diablo 2. C++, SDL2
Flare Game – ARPG, the Flare engine was created for. Plain Text, Python
OpenMW – The Elder Scrolls Morrowind clone. C++, OpenGL
OpenDiablo2 – Diablo 2 clone. Go
OpenEnroth – Might&Magic VI-VIII clone. C++, OpenGL
OpenGothic – Gothic 2 clone. C++, DX12, Vulkan, Metal
OpenVIII – Final Fantasy VIII clone. C#, MonoGame
Riiablo – Diablo 2 clone. Java, LibGDX, OpenGL
Massively Multiplayer Online Role-Playing Game (MMORPG)
CMangos Classic – World of Warcraft: Classic server emulation. C++
Azerothcore – World of Warcraft: Wrath of the Lich King server emulation. C++
Open RSC – RuneScape Classic clone. Java
Runelite – Open Source old-school RuneScape client. Java
Ryzom – Commercial MMORPG available on Steam went open source. C++
Simulation and Management Games
OpenTTD – Open source simulation game based upon Transport Tycoon Deluxe. C++, SDL2
Rogs of Rods – Soft-body physics simulator mainly targeted at simulating vehicle physics. C++, OpenGL
FreeSO – The Sims Online and The Sims 1 clone. C#
OpenRCT2 – Roller Coster Tycoon 2 clone. C++, SDL2, OpenGL
Librelancer – Freelancer clone. C#, OpenGL
fs2open – FreeSpace 2 clone. C++, SDL2
CrosixTH – Theme Hospital clone. Lua, C++
Keeper FX – Dungeon Keeper clone. C
KeeperRL – Dungeon Keeper inspired, available on Steam. C++
Strategy and City Building
[openage]https://github.com/SFTtech/openage) – Age of Empires II clone. Python, C++
0. A.D. – RTS. C++, C
The Battle for Wesnoth – Turn-based strategy game. C++, Lua, Python
Unknown Horizons – Real-time strategy and city-building game. Godot, GDScript
Cortex Command Community Project – Cortex Command clone. C++
fhearos2 – Heroes of Might and Magic II clone. C++, SDL2
GLSMAC – Sid Meier’s Alpha Centauri clone. C++, OpenGL, SDL2
Julius) – Caesar 3 clone. C, SDL2
openblack – Black & White clone. C++, OpenGL, Vulkan
Open Sage – Command & Conquer clone. C#
OpenSC2K – Sim City 2000 clone. JavaScript, TypeScript, WebGL canvas, Physer 3
OpenXCOM – XCOM clone. C++, SDL2
Return to the Roots – The Settlers 2 clone. C++, SDL2
Sourcehold – Stronghold 1 clone. C++, SDL2
VCMI – Heroes of Might and Magic III clone. C++, SDL2
Warcraft Remake – Warcraft: Orcs & Humans clone. Java
Mindustry – The automation tower defence RTS. Java
Sandbox
Minetest – Minecraft-inspired voxel game engine. C++
Terasology – Minecraft-inspired voxel game. Java
Sandspiel – Physics sandbox. Rust, WebGL, Javascript
The Power Toy – Physics Sandbox. C++, SDL2
Racing
SuperTuxKart – Mario Kart inspired racing game. C++, C, OpenGL, SDL2
DreeReally – Death Really clone. C, SDL
Vangers – Racing Game with Role-Playing elements, available on Steam. C++, C, SDL2
Card, Board and Puzzle Games
PokerTH – Poker Game. C++, QT5
Lichess – Online Chess Server. Scala, TypeScript
Enigma – Puzzle Game. C++, C, SDL2