AI-powered discovery engine for hidden indie games on itch.io
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indie_game_discovery_engine-0.1.0.tar.gz.
File metadata
- Download URL: indie_game_discovery_engine-0.1.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d30bac4c78cc634a1bd0c89a97ebfa07208c36f815c177efe19fe8e13a278ad8
|
|
| MD5 |
1eac62ba34f3d6f584d9257a3141976b
|
|
| BLAKE2b-256 |
47d95894083ebba882b029e43bb6d0f1983eb5c2a25f729fd0947eb47af17d63
|
File details
Details for the file indie_game_discovery_engine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: indie_game_discovery_engine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72ff4f55ddc7cd30ce0f37c8caf4eb20b1eaf070ddff9602d0ce6fdaa8f9b960
|
|
| MD5 |
32a06c686950edf8c3f7cb5b5e914f3f
|
|
| BLAKE2b-256 |
78c16d2a134cf1abd082a837d2ff96f5bbe041539b73ca3bf69fbf6659c5ff23
|