Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

indie_game_discovery_engine-0.1.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

indie_game_discovery_engine-0.1.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file indie_game_discovery_engine-0.1.0.tar.gz.

File metadata

File hashes

Hashes for indie_game_discovery_engine-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d30bac4c78cc634a1bd0c89a97ebfa07208c36f815c177efe19fe8e13a278ad8
MD5 1eac62ba34f3d6f584d9257a3141976b
BLAKE2b-256 47d95894083ebba882b029e43bb6d0f1983eb5c2a25f729fd0947eb47af17d63

See more details on using hashes here.

File details

Details for the file indie_game_discovery_engine-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for indie_game_discovery_engine-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 72ff4f55ddc7cd30ce0f37c8caf4eb20b1eaf070ddff9602d0ce6fdaa8f9b960
MD5 32a06c686950edf8c3f7cb5b5e914f3f
BLAKE2b-256 78c16d2a134cf1abd082a837d2ff96f5bbe041539b73ca3bf69fbf6659c5ff23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page