Thank you for your interest in contributing to Awesome Android Games! 🎉
We welcome submissions, metadata improvements, corrections, and removals to keep this catalog high-quality, comprehensive, and up-to-date.
- Submission & Quality Guidelines
- Supported Git Forges
- How to Contribute
- CLI Tools & Commands
- Maintainer IssueOps Automation
- Pull Request Process
- Automated Validation & CI
Before submitting a game, please verify that it meets the following criteria:
- Open-Source: The repository must contain source code under an OSI-approved or recognized open-source license (e.g. MIT, GPL, Apache, BSD, MPL, CC0).
- Android Compatible: The game must run on or be buildable for Android devices (native Kotlin/Java, LibGDX, Godot Android, Flutter/Flame, Unity open-source, or C++ with NDK/SDL).
- Genuine Game: The repository must be an actual playable video game or complete game engine (not a non-game tool, scorekeeper, calculator, companion wiki, or cheat utility).
- Quality & Playability: The game should be functional and playable (not an empty boilerplate, 1-screen placeholder demo, or abandoned assignment).
The project natively tracks and fetches live statistics (stars, descriptions, last activity, licenses) from multiple Git hosts:
- GitHub (
github.com) - GitLab (
gitlab.com,invent.kde.org, and self-hosted instances) - Codeberg & Forgejo / Gitea (
codeberg.org,tea.codeberg.org, and self-hosted instances) - SourceHut / Generic Git (
git.sr.ht, etc.)
No local setup or programming required! You can use our structured issue templates:
- Suggest a New Game: Provide the repository URL, engine/tech stack, and game details.
- Update Game Metadata: Fix descriptions, recategorize genres, or update URLs.
- Request Game Removal: Report defunct, closed-source, or unplayable entries.
If you'd like your changes merged directly:
- Fork this repository and clone locally.
- Use the CLI tool or edit
games.json. - Run test and lint checks (
uv run pytest && uv run ruff check .). - Submit a Pull Request.
You can pass a repository URL from any supported Git host. The updater will automatically extract the name, description, primary language, license, live star count, and infer the genre:
# Auto-fetch metadata and add/update game
uv run python src/update_stats.py --add "https://github.com/owner/repo"
# Optional overrides
uv run python src/update_stats.py --add "https://gitlab.com/owner/repo" \
--name "My Awesome Game" \
--genre "Strategy & 4X" \
--tech "Kotlin / LibGDX" \
--desc "A tactical turn-based strategy game."To remove a game from the dataset and regenerate the list:
# Remove by repository URL or slug
uv run python src/update_stats.py --remove "https://github.com/owner/repo"Maintainers can automatically process community issues using GitHub Actions IssueOps:
Comment directly on any submission issue:
/add— Adds the game using the issue form's repository URL and metadata./add <url> [--genre <genre>] [--tech <tech>]— Adds a game with explicit parameters./remove— Removes the game cited in the removal request issue./remove <url>— Removes a specific game URL.
Applying the following labels will automatically execute the action, sync README.md, run tests, commit to main, and close the issue:
approved-addapproved-remove
- Fork this repository and clone your fork locally.
- Create a feature branch:
git checkout -b add-my-game
- Make your changes in
games.jsonor usesrc/update_stats.py. - Validate your changes:
# Run automated test suite uv run pytest # Run linter uv run ruff check .
- Commit your changes:
git commit -m "Add/Update/Remove <Game Name>" - Push to your fork and open a Pull Request.
Every Pull Request and IssueOps run automatically executes CI checks:
- JSON schema validity and deduplication in
games.json. - Markdown link and Table of Contents synchronization with
README.md. - Accurate multi-forge repository parsing across GitHub, GitLab, and Codeberg.
- Code style and lint passing with zero errors (
ruff check). - Full pytest test suite execution.