SCRAMBLE
Inspiration
We wanted a party game that mixes trivia, strategy and a little friendly suspicion. Inspired by social deduction games and arcade dogfighters, SCRAMBLE turns what you know into the fighter jet you fly. Everyone plays on their own phone around one shared big screen, and every player has a secret agenda. That gives each person a private reason to act a little strangely, and the table spends the game trying to read each other.
What it does
Getting in. One person hits HOST GAME on a laptop or TV. Everyone else scans the QR code or types the 4-letter room code; there's no app to install. A room holds 3 to 12 seats, and the host can add bots to fill empty ones. Several groups can play on one server at the same time.
Earning your jet. A match runs over several timed rounds, and the host picks one of three modes:
- Trivia: AI (Grok or Gemini) writes a question bank on any topic, at Easy, Medium or Hard.
- Study: upload a lecture PDF, including scanned slides, and the AI writes questions only from that material. Instead of a difficulty, the host picks the class's comfort level. Shaky gets recall questions on key terms, Steady a mix with simple application, and Confident multi-step, application and edge-case questions.
- Arcade: no questions at all. Each player climbs their own ladder of five-second tilt mini-games: Ring Run, Missile Dodge, Canyon Run, Lock-On and Supply Drop. Clearing a level earns a part and moves you up a level, where the games get harder and the parts rarer. Missing a game drops you one level.
Phone controls during the quiz:
- Tap to answer, and shake for a new question (twice per round).
- Slide the phone left or right to pass a question you don't know to a neighbour, up to 3 times. Every pass makes the question hotter: less time, but a bigger point multiplier and better parts. Passing is public, so everyone sees who's dumping on whom.
- Rotate the phone 50° to install a part you've won. This works the same way in Arcade.
- Any 3 right answers (not just a streak) load a missile. Push the phone forward to fire it at a random pilot. They get a short barrage to dodge by tilting, and if it gets through their shield, they lose their best part.
- 3 wrong in a row drops you into a ring run, where failing costs you a part.
- Unwanted parts: a part that isn't an upgrade arrives as a ticking crate. Keep it, or pass it to the named player on your left or right, and it goes up a tier on the way. In the quiz, a crate whose fuse runs out blows a part off your jet.
Parts. Every jet has five bays (engine, guns, missiles, wings, armor), and each part comes in one of five tiers, Common to Legendary. The parts set your top speed, turning, hull strength and firepower, and their colours show on your jet for the whole room to see.
Secret agendas. Each one pays a bonus at the end:
- Magpie: finish holding the rarest part at the table.
- Duelist: has a secret rival and scores for every time they shoot that rival down.
- Scavenger: tears a part off every jet they down.
- Mechanic: forces one part swap on another player during discussion.
- Inspector: secretly views one player's full set of parts.
- Quartermaster: scores whenever a player they passed a question to fits a part.
- Featherweight: finishes with three parts or fewer.
The finale.
- Discussion: the table argues about who looks most dangerous.
- Threat vote: whoever the table marks gets an afterburner and a 3× bounty on every kill against them.
- Dogfight: everyone flies the jet they built in a real-time battle on the big screen. Bank the phone to steer, tilt it for throttle and hold FIRE for guns. The phone shows a cockpit view and a radar. Downed pilots respawn after a few seconds.
Winning. Final score = quiz or arcade points + dogfight score + agenda bonus. The top three take a podium on the big screen, and everyone's agenda is revealed.
How we built it
SCRAMBLE runs entirely in the browser. A FastAPI server keeps every room in sync over WebSockets. The server is in charge: answer keys never reach a phone, and the server runs the dogfight itself at 30 updates per second, deciding every hit. A tampered phone can't cheat, only fly badly.
The phones use their motion sensors for every gesture, with a calibration screen, built-in sensor diagnostics and tap fallbacks for when motion isn't available. The host screen, phone screens, jets, mini-games and avatars are all pixel art drawn in code with canvas and SVG, using no image assets beyond one sky texture.
Question banks come from Grok or Gemini in a single request each. Text PDFs are read on the server, and scanned slides go straight to the AI's image reading. The game is hosted on Render, with versioned assets so a fresh deploy never mixes old and new files.
Challenges we ran into
The hardest part was making trivia, part collection, secret agendas and flight combat feel like one game rather than four. Motion controls took the most tuning: which way "up" should feel, how far to rotate to fit a part, and how big hitboxes should be so tilt steering feels fair. Balancing was hard too, so that passing, missiles and agendas each give a real choice without one strategy dominating.
Accomplishments that we're proud of
Every answer matters beyond points, because it changes the jet you fly. The jump from quiz or arcade into a live dogfight on everyone's phone ties the whole match together. Study mode turns lecture notes into a game a class actually wants to play. Bots fill empty seats, so it works with 3 players or 12.
What we learned
We learned to design the whole experience rather than a pile of features. We also learned how much clear feedback matters in a party game. If a player can't tell what a gesture did or who received a part, the game feels broken even when the code works.
What's next for SCRAMBLE
- More parts, agendas, mini-games and arenas.
- Deeper flight physics.
- Dogfight missiles that tie back to what players earned in the quiz.
- Saved question banks, so a class can replay its own study set.
Built With
- cloudflare
- css
- gemini
- grok
- html
- javascript
- phonemotion
- python
- render
- websockets
Log in or sign up for Devpost to join the conversation.