A game discovery tool that helps users find video games based on fuzzy memories and partial details.
- 🔍 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
When you search, FindThaGame runs two parallel queries:
- Strict Query (limit 100): Searches for the full phrase in
nameandalternative_names. - Broad Query (limit 300): Searches individual keywords across
name,alternative_names,summary, andkeywords.
Results are merged, deduplicated, scored, and the top 200 are returned.
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:
Checks if the search query appears in the game's text fields.
| 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.
Adds points if the game matches the selected filters (Genre, Theme, Mode, Perspective).
Example: If 2 genres are selected and the game has both, it gets +1.0 point.
Boosts or reduces the score based on critical constraints.
| 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 |
Combines the base score with multipliers and applies final bonuses/penalties.
Where
-
Date:
$-0.1$ points for every year outside the range. -
Age Rating:
$+0.2$ points if it matches.
- Node.js 18+
- A Twitch Developer application (for IGDB API access)
-
Clone the repository
git clone https://github.com/kbtale/findthagame.git cd findthagame -
Install dependencies
npm install
-
Configure Environment
Create a
.env.localfile with your Twitch credentials:TWITCH_CLIENT_ID=your_client_id TWITCH_CLIENT_SECRET=your_client_secret AI_API_KEY=your_ai_api_key
-
Run Development Server
npm run dev
- Game data provided by IGDB API
- Translations powered by Groq AI
- Created by Carlos Bolivar
If this tool helped you find a lost memory, consider buying me a coffee ☕
MIT
