Inspiration
The best Reddit games aren't played at Reddit — they're played as a community. We wanted a hook where the choice you make in the first 5 seconds (your planet) plants you into a faction that lives on in the comments, the leaderboard, and the daily rematch. Solar systems are the perfect metaphor for subreddit-style tribes: distinct identities, loud rivalries, and endless "my planet is better than yours" energy.
What it does
QOKAH is a single-player arcade action game with a community-first hook:
Pick a planet — 10 planets, each a mini-faction with its own color palette, warrior archetype, and lore (Mars warlord, Europa ice mage, Pluto shadow guardian, Kepler-9 alien ranger…). Become a cosmic warrior — Google Gemini restyles your Reddit snoovatar into a full-body hero themed to your chosen planet, preserving your identity so you're recognizable in comments. Fight for your planet — Phaser 3 twin-stick action: drones, crystals, a boss, a power meter. Score onto your planet's leaderboard — every run posts to a per-planet ranking. Mars vs. Neptune isn't a joke, it's a scoreboard. Share your warrior back to the sub — a menu action posts your AI-generated hero as a real subreddit post, seeding new "which planet did you pick?" threads.
AI transformation — your selfie becomes a full-body cosmic warrior. For the public Reddit demo, players can also select the default Earth avatar to play instantly when the AI service isn't responding for external users.
We used Google Gemini 3.1 Flash Image to transform the selfie or uploaded user image into a planet-themed warrior.
How planets create Reddit communities Planets are the community layer. Every design decision reinforces faction identity:
Per-planet leaderboards turn every subreddit into 10 parallel competitions. Redditors don't just play — they represent. Planet-themed AI avatars make faction membership visible. A Mars warrior looks nothing like a Europa mage, so comment threads immediately show who's on which team. "Share your warrior" posts flood the sub with faction art, sparking recruitment banter ("Team Pluto stay winning"), rivalries ("Mars is mid, Neptune supremacy"), and inside jokes tied to each planet's aesthetic. Daily streaks per planet — swap planets and you reset. This creates loyalty: your streak belongs to your world, so you defend it. Comment-native lore — each planet's tagline ("Frozen frontier," "Red wastelands") is bait for redditors to expand into headcanon in the thread. The result: one game post spawns 10 running conversations, each with its own flag to wave.
How we built it
Phaser 3 for the entire action layer: arcade physics, drone AI, projectile pooling, crystal drops, particle FX, boss patterns, and the winning-avatar scale animation. Devvit Web + Vite to wrap the game as a native Reddit post. Google Gemini 2.5 Flash Image for snoovatar-to-warrior restyling with a strict identity-preservation prompt (same silhouette, colors, body shape — restyle only the theme). Devvit Redis for per-planet leaderboards and streak state. Devvit Reddit API (reddit.getUserByUsername, getSnoovatarUrl, submitCustomPost) for identity and the "share your warrior" contribution flow. TypeScript throughout, strict mode.
Challenges we ran into
Identity preservation in generative image models. Early Gemini outputs stylized snoovatars into unrecognizable characters. We rewrote the prompt to treat the snoovatar as a strict reference (same body shape, colors, silhouette) and only restyle the theme. Recognition matters — if your Mars warrior doesn't look like your snoovatar, the community layer collapses. Devvit runtime constraints. @devvit/public-api's Devvit.addSettings doesn't compose with @devvit/web/server; we swapped to configuring the Gemini key via npx devvit settings set. Making planets feel distinct at a glance. Each planet ships its own bg color, ground color, accent color, hazard color, and warrior style prompt so you can tell factions apart from a single screenshot in the feed.
Accomplishments that we're proud of
Planets became a genuine social primitive, not a skin. The AI-generated warrior actually looks like the player's snoovatar. Full loop — post → planet → warrior → boss → leaderboard → share — runs inside a single Reddit post.
What we learned
Community games win when the first choice is a tribe, not a difficulty. Devvit Redis is the right primitive for per-faction state. Snoovatar-based avatars are the shortest path to a redditor feeling seen inside a game.
What's next for QOKAH
Planet-vs-planet weekly wars — aggregate scores roll up into faction standings pinned to the sub. Comment-driven planet events — top-upvoted comment on a planet's daily thread becomes an in-game modifier next day. Faction flair — auto-assign subreddit flair based on your chosen planet, so identity persists outside the game post.
Note:"The app is deployed as a Devvit playtest. Reddit currently has a 24-hour restriction before I can change the subreddit from private to public. The subreddit will be made public as soon as the restriction expires."
Built With
- devvit
- google-gemini
- node.js
- phaser.js
- redis
- typescript
- vite

Log in or sign up for Devpost to join the conversation.