Inspiration
We all confidently share "facts" that turn out to be wrong. Confirmation bias, the illusory truth effect — these shape how we scroll through news daily. We wanted to build something that shows you your biases instead of lecturing about them. Fast, visceral, slightly humbling. Reddit — where skepticism and community collide — felt like the perfect home.
What it does
Statements drop on textured tiles. Whack (tap twice: crack, then shatter) if you think it's fake. Swipe if you think it's real.
The twist: your score is hidden. You see "Calculating..." the whole round. Tap it and the game taunts you with "Smart eh?" — maybe showing a real score, maybe a fake one. You don't know how you're doing until it's over. No safety net. Just your gut.
Three modes:
- News Mode — real vs. fake headlines, 30-second rounds
- Daily Special — themed challenges, weekend topics chosen by community vote
- Endless Mode — keep going until you wrongly whack a true statement
Share any tile to the subreddit without revealing if it's fact or fiction — sparking genuine community debate.
How we built it
- React + Phaser 3 hybrid on Reddit's Devvit platform
- React handles UI/menus; Phaser dynamically loads for gameplay
- Pure-function
tileStateMachine(active → cracked → shattered) - Custom tap-vs-swipe gesture detection for mobile
- Hono REST server on Devvit with Redis persistence
- Custom
EventBusbridging React and Phaser without tight coupling - Fetch-based API client replacing Devvit's older postMessage pattern
Challenges we ran into
- Phaser inside Devvit's webview — had to block
touchmoveto prevent Reddit's app from stealing our swipe gestures - Redis format inconsistency — Devvit's
zRangereturns different formats depending on context; required defensive parsing - Hiding score without killing engagement — the "Smart eh?" taunt was our solution to keep players curious
- 320px mobile viewport — ratio-based sizing instead of fixed pixels to fit tiles, text, and HUD on small screens
Accomplishments that we're proud of
- The hidden score genuinely makes players confront their biases — no feedback loop to game
- Two-click whack (crack → shatter + screen shake) feels satisfying — physical commitment mirrors cognitive commitment
- Share feature turns every post into a community debate
- Smooth 30fps+ on mobile with responsive scaling
What we learned
- Bias is hard to gamify without being preachy — the hidden score lets the experience teach the lesson
- Phaser and React coexist well when connected by events, not forced into one paradigm
- Mobile gesture disambiguation (scroll vs. swipe) comes down to ~50px and ~500ms
- Community-driven content is a retention multiplier
What's next for Fact or Whack
- AI-generated statements from real news for infinite fresh content
- "Bias Report" weekly summaries showing which categories you misjudge
- Multiplayer head-to-head with the same tiles
- Subreddit-specific content packs
- Streak rewards with Reddit flair integration
Built With
- devvit
- hono
- phaser.js
Log in or sign up for Devpost to join the conversation.