-
-
Snapshot of the game room creation, avatar select, player name, and room code location.
-
Snapshot of ultimate game board with Ai bots, red buzzer, horizontal alphabetic randomizer, and game categories.
-
Close up at the sign in with google and quick google avatar area.
-
Snapshot of the game rules & scoring system.
-
Google gemini LLM Referee Settings.
-
Snapshot midgame.
-
Round evaluation & scores.
Inspiration
Back in 2020, at the height of the COVID-19 lockdowns, I spent the vast majority of my time playing Among Us with friends while trapped indoors. We wanted to develop an app that could both challenge the brain and be genuinely fun. All while recreating the same social atmosphere Among Us had during the lockdowns.
What it does
NPAT Showdown revives the beloved classic tabletop word game "Name, Place, Animal, Thing" into a real-time, high-stakes multiplayer arena. Up to 8 players sit around a neon-lit 3D cyberpunk round table, competing to think fast, type faster, and survive elimination.
How we built it
We designed NPAT Showdown with a modern, high-performance architecture requiring zero client-side build steps and zero Node.js dependencies:
-Backend & Real-Time Synchronization: Python 3.13 / 3.14 powered by FastAPI and Uvicorn. Asynchronous WebSockets & Asyncio (room_manager.py) manage synchronized room states, concurrent round countdowns, bot simulations, and buzzer slams with sub-millisecond broadcast latency.
-AI & LLM Integration (Google AI Studio Free Tier): Built using Google's new official google-genai SDK with gemini-2.5-flash in llm_validator.py. Dual-layer referee: An embedded, curated dictionary and collision taxonomy (taxonomy_data.py) ensures 100% offline playability out of the box, while connecting an API key activates live deep-reasoning LLM validation.
-Zero-Build Vanilla Frontend: Pure HTML5 & ES6+ JavaScript (app.js) with trigonometric radial seat positioning around the round table. CSS3 3D Perspectives & Glassmorphism (styles.css) for responsive desktop and mobile play.
-Procedural Sound Engine: Created an in-browser sound synthesizer with the Web Audio API (audio.js), generating dynamic wheel ticks, buzzer hits, countdown sirens, and fanfare using sound wave oscillators and gain nodes—requiring zero external audio file downloads.
-Deployment & Containerization: Ready-to-deploy Dockerfile, render.yaml blueprint, and Procfile for instant one-click cloud hosting.
Challenges we ran into
The Multi-Letter Solvability Dilemma: When scaling difficulty from 1 letter to 2 or 3 letters (e.g., SA, SAN), naive letter generation frequently created impossible combinations where no valid word existed across all 4 categories (e.g., finding an Animal or Thing starting with QZ). We solved this by developing an algorithmic solvability bank that verifies every selected prefix has guaranteed, verifiable solutions across all four categories before spinning.
Zero-Asset Sound Synthesis: Pre-recorded audio files cause network delays and autoplay blocking. Writing procedural sound effects using browser-native oscillators (sine, sawtooth, triangle), noise buffers, and ADSR gain envelopes took considerable tuning, but delivered zero-latency, asset-free arcade audio.
Accomplishments that we're proud of
Lightning Fast & Frictionless: Zero npm installs, zero client build steps, and zero asset loading. Clone the repo, launch the server, and the game opens immediately.
100% Offline Fallback: Even without an active internet connection or API key, the game functions completely with its built-in lexical taxonomy.
Authentic Physical Game Feel: The combination of the deceleration spin wheel, 3D pneumatic buzzer depress animation, opponent progress rings, and synthesized audio recreates the tangible excitement of game night.
Bot Ecosystem for Effortless Testing: Solo players and hackathon judges can experience full 8-player matches with a single click.
What we learned
Prompt Engineering for Impartial Adjudication: Crafting deterministic evaluation prompts with explicit exclusion rules is far more reliable than generic validation queries.
Web Audio API Capabilities: Discovered how versatile browser-native procedural synthesis can be for UI sound design, completely eliminating reliance on external MP3/WAV files.
What's next for Name Place Animal Thing
Voice Submissions via Gemini Multimodal Live API: Allow players to shout their words into their microphone or mobile phone and have Gemini transcribe and referee them in real time.
Built With
- fastapi
- pydantic
- render.com
- uvicorn
- websockets
Log in or sign up for Devpost to join the conversation.