indie-game-discovery-engine
Discover hidden indie gems on itch.io through intelligent pattern matching and recommendation algorithms.
What is this?
indie-game-discovery-engine solves the overwhelming choice problem in indie gaming by analyzing play patterns, creator networks, and visual aesthetics to surface undiscovered titles tailored to your tastes. Instead of scrolling through thousands of games, get personalized recommendations based on what makes games special—not just what's trending.
Features
- Visual Aesthetic Matching — Analyzes screenshots to find games with similar visual styles
- Play Pattern Analysis — Recommends games based on community engagement and play history
- Creator Network Intelligence — Discovers games from developers connected to creators you follow
- Gem Scoring Algorithm — Ranks hidden games by quality metrics including update frequency and community sentiment
- itch.io Integration — Direct scraping of game metadata, tags, and developer information
- REST API & CLI — Both programmatic and command-line interfaces for easy integration
Quick Start
Installation
pip install indie-discovery
Or from source:
git clone <repo>
cd indie-game-discovery-engine
pip install -e .
Basic Usage
Via CLI
# Recommend games similar to a specific title
indie-discovery recommend --game "Celeste"
# Find hidden gems in a category
indie-discovery discover --category puzzle --limit 10
# Analyze a game's aesthetic
indie-discovery analyze --game-id <id> --visual
Via Python API
from indie_discovery import Recommender, VisualMatcher
# Get recommendations
recommender = Recommender()
gems = recommender.find_similar_games("Hollow Knight", limit=5)
# Visual matching
matcher = VisualMatcher()
similar = matcher.find_by_aesthetic(game_id="my-game")
Usage Examples
from indie_discovery.analysis import GemScorer
from indie_discovery.scrapers import GameScraper
# Scrape itch.io and score games
scraper = GameScraper()
games = scraper.fetch_games(category="adventure", limit=100)
scorer = GemScorer()
ranked = scorer.score_gems(games)
for game in ranked[:10]:
print(f"{game.title}: {game.gem_score}/100")
Tech Stack
- Python 3.10+ — Core language
- SQLite/PostgreSQL — Game metadata and analysis storage
- FastAPI — REST API
- Pillow — Screenshot analysis and visual matching
- Beautiful Soup — itch.io scraping
- scikit-learn — Recommendation algorithms
License
MIT
Release files for indie-game-discovery-engine 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| indie_game_discovery_engine-0.1.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| indie_game_discovery_engine-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.7 kB
Release files / indie_game_discovery_engine-0.1.0.tar.gz
| Download URL | indie_game_discovery_engine-0.1.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d30bac4c78cc634a1bd0c89a97ebfa07208c36f815c177efe19fe8e13a278ad8
|
|
BLAKE2b-256 checksum How to use checksums |
47d95894083ebba882b029e43bb6d0f1983eb5c2a25f729fd0947eb47af17d63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / indie_game_discovery_engine-0.1.0-py3-none-any.whl
| Download URL | indie_game_discovery_engine-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72ff4f55ddc7cd30ce0f37c8caf4eb20b1eaf070ddff9602d0ce6fdaa8f9b960
|
|
BLAKE2b-256 checksum How to use checksums |
78c16d2a134cf1abd082a837d2ff96f5bbe041539b73ca3bf69fbf6659c5ff23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|