Open-source projects to build on instead of starting from scratch, each with its license read from GitHub and a plain rule for what you may reuse. Two domains so far: games, and software beyond games.
| domain | what it holds | start here |
|---|---|---|
| Games | a genre catalog of 2,718 open-source games and engines, a build playbook per genre, and guides to game art, engines and building with AI tools | Start a new game, genres |
| Software | 366 hand-picked open-source applications, tools and libraries beyond games, in 19 categories from self-hosting, local AI and agent memory to documents, media, learning and personal finance, and curated lists that go wider | software/ |
Both follow the same license rule. The games material sits at the top level of
this repository; everything else lives under software/.
A chassis for building new games from open source instead of from scratch: a genre catalog of 2,718 open-source games and engines with each project's license and activity read from GitHub, a build playbook per genre, a guide to building with AI coding tools (Claude, Codex, Grok), and engineering lessons from small games we built.
- Pick a genre and read its playbook in
playbooks/: the core loop, the systems in build order, the reference projects worth studying, and the pitfalls. - Choose what to learn from and what to reuse. Every project in
catalog/carries a reuse class (below). Reuse code only fromcopyprojects, with attribution. - Pick an engine. The chassis is engine-neutral; each playbook lists engines that fit the genre. For a browser game, choose by game type: three.js and React Three Fiber for 3D you build in-house, Phaser for 2D, sprite and isometric games, and Godot 4 for a bigger 3D game still shipped to the browser.
- Build with AI tools following
ai/README.md: which tool for which stage, prompt templates, and how to use a second model as a reviewer. See also AI game agents and code-only animation. - Start the game repo from
templates/: anAGENTS.mdevery AI tool reads, and aTHIRD_PARTY.mdrecording every file you borrowed and its license.
art/blender.md: 3D game art with Blender, from modeling to engine export, 3D-to-2D sprite rendering, Python automation, and letting AI tools drive Blender.art/2d.md: 2D art with GIMP, Krita, Inkscape and pixel-art tools, tile maps, texture atlases and batch automation.art/audio.md: sound effects, music and loudness with jsfxr, Audacity, LMMS, local music generation and a rerunnable FFmpeg export script.engines/: Godot (with Godot on the web), three.js and React Three Fiber for browser 3D, Phaser for 2D, sprite and isometric games, Unreal (source-available under Epic's EULA), Unity (not open source; its terms are summarized), and others: Bevy, LOVE, raylib, MonoGame, Defold, Babylon.js, PlayCanvas, Kaplay and other web libraries. See the Rust, WebAssembly and WebGPU guide for browser games.scaffolds/: the best-maintained open-source starter templates per engine, plus MCP servers that let AI tools operate art tools and engines. Rebuilt bytools/find_scaffolds.py.ai/graphics.md: AI and game graphics, safely.ai/media-studio.md: trailers and devlogs: video from code, capture, assembly by script and hand editing, with which tools an agent can drive.
MCP servers and add-ons run code on your machine. Read the code, pin a version, keep them local, and give them the least access that works.
| reuse class | licenses | what you may do |
|---|---|---|
copy |
MIT, BSD, Apache-2.0, zlib, ISC, CC0, Unlicense... | reuse the code, keep the copyright notice, list it in THIRD_PARTY.md |
library use |
LGPL, MPL, EPL | use it unmodified as a library; do not copy it into your code |
study only |
GPL, AGPL, CC-BY-SA | read it for design and mechanics; copy nothing |
check first |
no license; a license only a list states; one GitHub could not identify; a decompiled commercial game | all rights reserved until you confirm otherwise |
A code license says nothing about art, audio, maps or data, which frequently carry their own licenses (often non-commercial). Check assets separately. This is practical guidance, not legal advice.
598 of 2,718 projects have a permissive code license verified on GitHub. Built 2026-09-23.
| genre | projects | copy | active in the last 2 years | playbook |
|---|---|---|---|---|
| Strategy | 420 | 39 | 139 | playbook |
| Simulation | 177 | 29 | 74 | playbook |
| Arcade | 314 | 65 | 69 | playbook |
| Action | 137 | 22 | 27 | playbook |
| Platformer | 104 | 16 | 37 | playbook |
| RPG | 234 | 37 | 76 | playbook |
| Roguelike | 69 | 11 | 23 | playbook |
| Fighting | 76 | 40 | 40 | playbook |
| Shooter | 202 | 22 | 75 | playbook |
| Puzzle | 241 | 54 | 61 | playbook |
| Racing | 66 | 16 | 25 | playbook |
| Sports | 11 | 2 | 1 | playbook |
| Adventure | 76 | 18 | 23 | playbook |
| Sandbox | 34 | 15 | 16 | playbook |
| Board and card | 34 | 12 | 17 | playbook |
| Rhythm | 102 | 36 | 69 | playbook |
| Educational | 9 | 0 | 2 | playbook |
| Engines and frameworks | 257 | 105 | 141 | |
| Other | 155 | 59 | 48 |
tools/fetch_sources.sh downloads three public lists and a few GitHub topic searches;
tools/build_catalog.py merges them, then asks GitHub's API for every repository's license,
language, stars and last push. A list's claim about a license is never used when GitHub can be
asked, and a list's license never makes a project copy: projects hosted elsewhere show their list's
license marked "per list, unverified" and read check first. Rebuild:
tools/fetch_sources.sh && python3 tools/build_catalog.py --src sources --out .Both need the GitHub CLI, gh, installed and signed in; the build says so in one line when it is
not. fetch_sources.sh replaces the lists in sources/ only when every download and search
succeeded. A GitHub lookup that fails is retried with growing waits; one that still fails stops the
build before anything is written, and the lookups that succeeded stay cached in sources/, so a
rerun picks up where it stopped. python3 tools/check_build.py checks those failure paths with a
fake gh and no network.
Safety: topic searches pull in malware lures named after commercial games, so 444 projects found
only by a topic search with under 10 stars or no code, named like a download lure, or removed on review, are left out (counts in
catalog/README.md). Never download a release, zip or installer from a catalog
repository; read and build from source. Report a lure you still find as an issue.
Genres come from the lists' own headings and keywords, mapped to one taxonomy; expect some
projects in a neighboring genre. Corrections are welcome as pull requests to the mapping in
tools/build_catalog.py.
The software list is built differently, from curated seeds rather than parsed lists, with the same GitHub lookup and license rule; see how it is built.
- bobeff/open-source-games (CC0)
- michelpereira/awesome-open-source-games (CC0)
- Trilarion/opensourcegames (site) (CC0)
- GitHub topic
open-source-game, plus fighting-game, beat-em-up, rollback-netcode, racing-game, sports-game, rhythm-game and sandbox-game
Thank you to the maintainers of those lists. Every listed project keeps its own license.
This repository's tools and documents are MIT licensed (see LICENSE). The games catalog data derives from CC0 lists and GitHub metadata; the software list from its own curated seeds and GitHub metadata.