Who’s That Pokémon 🟡⚡
Inspiration
We wanted to build a game that blends nostalgia, knowledge, and modern web engineering. Pokémon is universally recognizable, and guessing-based games naturally drive curiosity and retention. The idea was to go beyond a simple quiz and create an experience that feels progressively challenging, replayable, and intelligent, while also serving as a strong showcase of frontend, backend, and AI-driven logic.
What it does
Who’s That Pokémon is a web-based guessing game where players identify Pokémon using progressively revealed clues. The game offers multiple modes such as silhouette guessing, Pokédex clue deduction, stat-based puzzles, and daily challenges.
Key features:
- Progressive hint system (sprite, type, stats, generation, clues)
- Daily challenge shared across all users
- Scoring based on speed, accuracy, and hints used
- Streaks and leaderboards
- Intelligent fuzzy guess handling
- Multiple game modes for casual and competitive players
How we built it
- Frontend: Next.js with Tailwind CSS for fast rendering and responsive UI
- Backend: Node.js with API routes handling game sessions and validation
- Data Source: PokéAPI for Pokémon stats, sprites, types, generations, and descriptions
- State Management: Client-side state for gameplay + server-side validation for fairness
- Caching: Aggressive caching of PokéAPI responses to reduce latency and API load
- AI Layer:
- Smart hint generation
- Fuzzy guess matching
- Adaptive difficulty based on player performance
- Smart hint generation
The game logic was designed as a pure engine layer, separate from UI, making it easy to add new modes without rewriting core systems.
Challenges we ran into
- Preventing name leakage in Pokédex descriptions while keeping clues meaningful
- Balancing difficulty so the game is neither trivial nor frustrating
- Handling fuzzy guesses without accepting incorrect Pokémon
- Ensuring fair play for daily challenges (server-authoritative Pokémon selection)
- Managing PokéAPI rate limits and inconsistent data across generations
Accomplishments that we’re proud of
- Built a scalable game engine that supports multiple modes
- Implemented adaptive difficulty without heavy ML infrastructure
- Designed a daily challenge system that encourages social sharing
- Achieved high replayability using simple mechanics and data-driven logic
- Created a Pokémon fan project that is IP-safe and API-first
What we learned
- Small gameplay tweaks (hint order, scoring curves) have huge impact on retention
- Caching and preprocessing API data is critical for performance
- AI doesn’t need to be complex to feel intelligent—good heuristics go a long way
- Separating game logic from UI drastically improves maintainability
- Constraint-based design leads to more creative solutions
Built With
- aistudio
- geminiapi
- nanobanana
- pokemonapi
Log in or sign up for Devpost to join the conversation.