Lessons from Open-Source Game Projects

Rmag Breaking News

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

Leave a Reply

Your email address will not be published. Required fields are marked *