Inspiration
When the tower crumbled, so did the single language that had bound its people together, scattering their words as surely as its stones....
The idea of Chantgeon was born from our last game: Skyscrabbel.
What it does
Chantgeon is a daily roguelike dungeon crawler. Every day a new procedurally generated dungeon appears — same layout for every player. you come back stronger each day. Every run permanently grows your character, so yesterday's impossible monster becomes tomorrow's warm-up.
- Explore fog-of-war dungeons collecting letters, potions, keys, and equipment. Move with WASD, arrows, or a virtual joystick on mobile.
- Fight by typing: Real-time combat where you cast spells by typing their names. Projectiles fly with unique physics (straight, sine-wave, spiral, drunk-wobble) and clash mid-air with enemy attacks. Type "shield" to block, or type gibberish for a wild-magic misfire.
- Grow your spell arsenal: 30+ spells unlocked by spending letters found in the dungeon. Each day's haul expands what you can learn — and every new spell gives you more options in tomorrow's fights.
- Discover the bestiary: 18 creatures from Slimes to the Grim Reaper, plus mythic bosses. Killing a monster adds it to your permanent glossary. Push deeper each day to find species you haven't encountered before.
- Earn equipment: Monsters and treasure chests drop tiered wands (add damage, tint your keyboard), armor (add HP), and accessories (add mana or abilities like TAB-autocomplete). Stronger monsters drop better loot — so yesterday's stat investment unlocks gear you couldn't reach before.
- Challenge bosses: Doubled HP, three-skill combos, guaranteed high-tier drops. They'll crush you early on; days of growth make them beatable.
- Permanent progression: Death resets the run, never your progress. Victory awards 5 attribute points (HP/Mana/Luck) that compound over weeks. A veteran with +25 HP and 8 spells plays a fundamentally different game than a day-one player.
- Community leaderboards: Five boards (dungeons cleared, skills, max HP, max Mana, luck) that reflect cumulative investment — climbing them is the meta-progression.
- Daily ritual: Same seed means shared community discussion, but your experience differs based on how many days you've invested.
How we built it
- Frontend: Phaser 4 running inside a Reddit iframe (Devvit web platform). Two entrypoints — a lightweight splash page (shown inline in the Reddit feed) and the full game view (expanded on click). The splash page houses tutorial, leaderboard, and skill/bestiary glossary modals so players can engage without even entering the dungeon.
- Backend: Hono REST API running on Devvit's serverless Node 22 environment. Redis for player state persistence, daily seed storage, and sorted-set leaderboards. The deterministic dungeon generator runs client-side from the shared seed — the server only validates outcomes.
- Shared code: TypeScript types, dungeon generation, combat math, the full skillbook (30+ spells with per-letter projectile configs), and a bestiary of 16 creatures + 2 bosses all live in a
/src/shareddirectory consumed by both client and server. - Build tooling: Vite 8, TypeScript 6, ESLint, Prettier, Vitest. Devvit CLI handles deploy and daily playtest.
Challenges we ran into
- Typing UX inside an iframe: Reddit's container eats key events. We built a full on-screen QWERTY keyboard with potion hotkeys, a TAB-autocomplete accessory, and ghost-text suggestions — while still supporting physical keyboards when focus cooperates.
- Balancing real-time combat around typing speed: Too fast and the monster kills you mid-word; too slow and there's no tension. We landed on a telegraph-then-fire monster AI, passive mana regen, and mid-air projectile clashing so skilled players can counter rather than just race.
- Daily determinism: The same seed must produce the same dungeon on every client, but dungeon params evolved during development. We added server-side position validation and graceful fallback if a saved position is no longer walkable after a constant change.
- Mobile support: Virtual joystick for movement, touch-friendly keyboard, responsive layout calculations — all without any native mobile APIs.
Accomplishments that we're proud of
- The spell-typing loop genuinely feels like casting. Watching your letters fly across the screen as individual projectiles, clashing with the monster's attack mid-air — it's satisfying in a way menus never are.
- 30+ unique skills with distinct projectile physics (spirals, sine waves, drunk wobbles) give the skill tree real variety beyond just "bigger number."
- A bestiary of 18 hand-tuned monsters from Slime to Grim Reaper to mythic bosses, each with their own attack patterns and skill combos.
- The daily dungeon format creates natural community conversation — everyone faces the same challenge.
- Wild-magic misfires: type nonsense and you still fire something (erratic, low-hit-chance projectiles). It rewards trying over freezing.
What we learned
- Devvit's web platform is surprisingly capable for real-time games when you keep the server thin (validate, persist, seed) and push deterministic logic to the client.
- Phaser 4 in an iframe context needs careful attention to input focus, resize events, and audio policies — but once solved it runs smooth.
- Letter-weighted RNG (biased toward common English letters like E, T, A, S) is essential for a typing game — purely uniform letter drops make spell-learning feel impossible.
- Balancing RPG progression in a daily-reset format means the permanent rewards (attribute points, skill unlocks, equipment) need to feel meaningful enough to pull players back tomorrow.
What's next for Chantgeon
- more spells and monsters type
- Multiplayer boss raids: community-wide HP pools where everyone's daily damage contributes to taking down a shared boss.
- Spell combos: chain specific spells in sequence for bonus effects (e.g., "icebolt" → "fireball" = steam explosion).
- More rooms: more type of rooms (e.g. puzzles rooms,...)
- Accessibility improvements: screen-reader narration for combat state, configurable input timing, and alternative input modes for players who can't type quickly.
- Lore/story: allow player to collect fragments of the history of the never-ending dungeon
Built With
- devvit
- phaser.js
Log in or sign up for Devpost to join the conversation.