Skip to content
Projects

kbtale/findthagame has 27 GitHub stars and 1 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-14 10:33 UTC. Last push 2026-11-02.

How these counts are measured

What you can do

  • 🔍 Hybrid Multi-Query Search - Combines strict phrase matching with broad keyword search
  • ⭐ Smart Scoring Algorithm - Ranks results by relevance instead of just filtering
  • 💾 Save Favorites - Bookmark games for quick access later
  • 🔖 Recent Searches - Resume previous searches instantly

Measured star growth

in 24h
0
in 7 days
0
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

A fuzzy game discovery engine built with React 19 and Vite. Uses a custom weighted scoring algorithm and the IGDB API to find games from partial memories.

Web & Apps

README.md

Original

FindThaGame

A game discovery tool that helps users find video games based on fuzzy memories and partial details.

Powered by the IGDB API and Groq AI.

License: GPL v3 React TypeScript Vite Tailwind CSS Shadcn UI Vercel

https://github.com/user-attachments/assets/a6e10484-587e-466a-a8de-b02ac710de9a

Features

  • 🔍 Hybrid Multi-Query Search - Combines strict phrase matching with broad keyword search
  • ⭐ Smart Scoring Algorithm - Ranks results by relevance instead of just filtering
  • 💾 Save Favorites - Bookmark games for quick access later
  • 🔖 Recent Searches - Resume previous searches instantly
  • 🎲 Random Search - Discover games with randomized filters
  • 🌐 Multi-language - UI translations with Groq-powered game summaries
  • 📱 Responsive Design - Works on desktop and mobile

How the Search Works

When you search, FindThaGame runs two parallel queries:

  1. Strict Query (limit 100): Searches for the full phrase in name and alternative_names.
  2. Broad Query (limit 300): Searches individual keywords across name, alternative_names, summary, and keywords.

Results are merged, deduplicated, scored, and the top 200 are returned.

How the Scoring Works

The system calculates a Total Score for each game to determine its ranking. Instead of filtering games out, it adds or subtracts points based on how well they match the input.

The calculation happens in 4 steps:

1. Text Score ($S_{text}$)

Checks if the search query appears in the game's text fields.

$$S_{text} = \text{BaseMatch} + (\text{KeywordHits} \cdot 0.4)$$

Match Type Field Points
Exact Match Title == Query +3.0
Partial Match Title contains Query +1.5
Keyword Field Matched in keywords +0.8
Alt Name Matched in alternative_names +0.5
Context Matched in summary/storyline +0.3

Note: Determining the "BaseMatch" takes the highest scoring single match found.

2. Metadata Score ($S_{meta}$)

Adds points if the game matches the selected filters (Genre, Theme, Mode, Perspective).

$$S_{meta} = \sum \frac{\text{Matching IDs}}{\text{Requested IDs}}$$

Example: If 2 genres are selected and the game has both, it gets +1.0 point.

3. Multipliers ($K_{total}$)

Boosts or reduces the score based on critical constraints.

$$K_{total} = K_{plat} \cdot K_{cat} \cdot K_{status} \cdot K_{company}$$

Filter Logic Multiplier Result
Platform Match x1.0 Score stays same
No Match x0.3 Score drops 70%
Category Main Game x1.0 Score stays same
DLC (Unwanted) x0.5 Score drops 50%
Status Cancelled x1.5 Boost (only if selected)
Company Developer x2.2 Huge boost
Publisher x1.8 High boost
Porting x1.3 Medium boost
Supporting x1.2 Small boost

4. Final Calculation

Combines the base score with multipliers and applies final bonuses/penalties.

$$FinalScore = ((S_{text} + S_{meta}) \cdot K_{total}) + A_{bonus}$$

Where $A_{bonus}$ contains:

  • Date: $-0.1$ points for every year outside the range.
  • Age Rating: $+0.2$ points if it matches.

Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/kbtale/findthagame.git
    cd findthagame
    
  2. Install dependencies

    npm install
    
  3. Configure Environment

    Create a .env.local file with your Twitch credentials:

    TWITCH_CLIENT_ID=your_client_id
    TWITCH_CLIENT_SECRET=your_client_secret
    AI_API_KEY=your_ai_api_key
    
  4. Run Development Server

    npm run dev
    

Credits

Contributing

Contributions are always welcome! Please check out the Contributing Guide and Code of Conduct before submitting a Pull Request.

If you encounter any security issues, please refer to our Security Policy.

Support

If this tool helped you find a lost memory, consider buying me a coffee ☕

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Disclaimer: This app is not affiliated with IGDB or Twitch.

Explore related projects