Hukka Bukka

A real-time multiplayer party game

A real-time multiplayer party game where players bluff each other with fake answers and race to spot the real one.
Next.js 14+ (App Router)TypeScriptTailwind CSSFirebase Realtime DatabaseZustandFramer MotionVercel

My friends and I kept playing the same trivia bluffing game — invent a fake answer, then try to spot the real one among everyone else's fakes. Hukka Bukka is our version of it: country-specific questions, everyone on their own phone, and no app to install. The interesting engineering problem is not the trivia. It is keeping six phones agreeing on what happens next.

One Round

Every round runs the same four-step loop. Each step has a different actor and a different failure mode, which is what makes the state handling awkward: players act in parallel, but the round advances as one.

01QuestionEveryoneA country-specific trivia prompt appears on every screen.
02BluffEach playerWrite a fake answer convincing enough to be mistaken for real.
03VoteEach playerPick the real answer out of the shuffled pile of bluffs.
04ScoreHostReveal who fooled whom, award points, advance the round.
The loop repeats until the final round. Steps 02 and 03 are the ones where every player is acting at once and the host is waiting.

Scoring Rewards Lying Well

Guessing right is worth the most, but fooling someone is worth enough that writing a convincing bluff matters as much as recognising the truth. The final-round multiplier keeps a losing player mathematically alive until the end, which is the difference between a game people finish and a game people abandon.

  1. Guess the real answer+1,000
  2. Fool another player+500 each
The two fixed point awards. Fooling one player is worth half a correct guess, so a good bluff pays about as well as a good instinct.

Modifiers

Correct-answer streak
Bonus points
Final round
Double points

Keeping Six Phones In Sync

One player hosts and shares a room code; everyone else joins from their own device. From there the game is a single phase router: Firebase's Realtime Database holds the authoritative game state, and every connected client renders whatever phase that state says it is in.

This makes the hard cases cheap. A player who refreshes mid-round rejoins into the correct phase, because their client never held the truth in the first place — it only reflected it. A player who drops out entirely does not stall the round.

Stack

Framework
Next.js 14+ (App Router)
Realtime state
Firebase Realtime Database
Client store
Zustand
Motion
Framer Motion
Hosting
Vercel
Form factor
Mobile-first PWA

Playing Alone

A party game with no party is a dead demo, so the home screen runs a complete round against bots — generated fake answers, generated votes, and real scoring. It exists mainly so the game can be understood by one person in thirty seconds without needing to assemble friends first.

Project Notes

This one started purely for fun and stayed that way. It is still a work in progress, but it plays a full match end to end, bots and all. Grab some friends and give it a go.