This is a submission for the Built with Google Gemini: Writing Challenge
Recently, I built Fatebound: Where Words Decide, a multiplayer fantasy party game powered by Google Gemini. It started as an experiment in blending AI storytelling with classic word puzzle mechanics, but it quickly turned into one of the most technically interesting projects I’ve worked on.
What I Built with Google Gemini
Fatebound combines emergent storytelling (inspired by Death by AI) with the tension of Wheel of Fortune.
Each round begins with Gemini generating a high-stakes fantasy scenario: moral dilemmas, environmental disasters, strange creatures, impossible choices. Players must describe how they respond to survive. Gemini then evaluates their choices and determines who makes it through.
Survival earns players the right to participate in the puzzle phase, a word-guessing challenge where each letter guessed can shift the balance between victory and elimination. Fail the scenario? Lose a life. Guess poorly? Risk falling behind.
Because Gemini generates both:
- The adventure scenarios
- The evaluation of player decisions
No two games are ever the same.
Technically, Fatebound was built with Next.js handling game logic, API routes, and multiplayer state management. I used Gemini 3 Flash Preview to power dynamic storytelling and decision evaluation. GitHub Copilot helped accelerate iteration and refactoring as the AI integration grew more complex.
The result is a fully functional multiplayer experience with synchronized state, turn order, elimination rules, and multiple difficulty levels, all driven by AI.
Demo
You can try out the game by visiting fatebound.vercel.app
What Surprised Me
The biggest surprise? How different AI feels when it becomes part of core game logic rather than just content generation.
Small adjustments to:
- Temperature
- Token limits
- Prompt structure
…dramatically changed whether scenarios felt repetitive, chaotic, or balanced.
I also ran into challenges getting Gemini to:
- Generate consistently unique scenarios
- Avoid predictable patterns
- Return structured outputs that could safely drive game mechanics
- Stay within token limits without truncating critical information
This forced me to build:
- Validation layers
- Output repair logic
- Fallback systems
- Defensive parsing for AI responses
In other words, I had to design around uncertainty. That was one of the most valuable lessons of the entire project.
On the multiplayer side, balancing pacing, fairness, and tension across different group sizes required extensive real-world testing with friends and family. Their feedback shaped difficulty scaling, clarity of prompts, and the flow between scenario and puzzle phases.
What I Learned
Technically:
- How to treat AI as a stateful system component, not just a text generator
- Prompt engineering for structured outputs
- Designing for token efficiency without sacrificing creativity
- Building robust validation and error handling around AI APIs
- Managing multiplayer state cleanly in Next.js
Soft Skills:
- Iterating quickly while keeping the core vision intact
- Designing for player psychology and tension
- Accepting that unpredictability can be a feature—not a bug
The biggest takeaway: AI systems require thoughtful guardrails. Creativity and reliability are in constant tension, and finding that balance is a design skill.
Google Gemini Feedback
What worked well:
- Gemini 3 Flash Preview was fast and responsive enough for interactive gameplay.
- It handled creative scenario generation exceptionally well.
- It adapted impressively to varied player inputs.
Where I hit friction:
- Structured outputs sometimes required heavy prompt constraints.
- Preventing repetition required careful tuning.
- Token budgets forced trade-offs between richness and reliability.
There were moments where I wished for more deterministic control over evaluation formatting. But in many ways, those constraints pushed me to build smarter validation systems which ultimately made the game stronger.
Top comments (0)