Inspiration
Modern work can feel like its own survival game. Emails keep arriving, deadlines pile up, meetings interrupt one another, and even the objects on a desk begin to feel like part of the chaos.
During especially busy days, people sometimes look at the clutter around them and briefly imagine a different world: paperwork becomes a monster, a difficult client launches angry notes, an exhausted manager charges across the desk, and a rolled-up paper tube becomes a heroic weapon.
Desk Defense was created from that small workplace fantasy. I wanted to turn the stress of an overcrowded workday into a playful escape—something familiar, funny, and satisfying that players could enjoy for a few minutes between real tasks.
What it does
Desk Defense is a top-down survival roguelite built directly for Reddit.
Players control Beanbot, a small original desk robot defending an endless office workbench. Movement is manual, while attacks are automatic, allowing players to focus on positioning, avoiding enemies, collecting experience, and choosing upgrades.
The game includes six improvised desk weapons:
- A rolled-paper tube for wide melee swings
- A stapler that launches paper clips
- A returning flying slipper
- A pencil-case blaster that fires pencils and pens
- A colorful pushpin fan
- A coffee-mug mortar that leaves damaging coffee stains
Enemies include rubber ducks, overtime managers, difficult clients, angry trash bags, and the Paperwork Golem boss.
Alongside the standard survival mode, the game includes a three-minute Daily Shift. Everyone in the same subreddit receives the same seed, starting weapon, and daily modifier. Players can compare their best results through a community leaderboard and return the next day for a new challenge.
How I built it
The game was built with Devvit Web, Phaser 4.2, TypeScript, and Vite.
Phaser handles the game loop, movement, combat, collisions, procedural animation, particles, camera movement, object pools, and responsive rendering. Lightweight DOM interfaces are used for menus, upgrade cards, pause screens, and results.
The backend uses Hono and Devvit Redis to manage:
- Deterministic daily challenges
- Secure run tokens
- Personal best scores
- Per-subreddit daily leaderboards
- Score validation
- Automatic record expiration
The Reddit post first loads a lightweight preview. The complete Phaser game only opens after the player chooses to enter, keeping the feed experience fast.
All characters, enemies, effects, interface elements, and sound effects were created specifically for this project. The game does not load external artwork, fonts, audio, or services.
Challenges I faced
One of the biggest challenges was making a detailed action game remain readable inside Reddit on both desktop and mobile.
The game needed to support landscape and portrait screens without making health, enemies, upgrade descriptions, or weapon effects too small. I created separate responsive layouts and tested the game at widths down to 320 pixels.
Performance was another challenge. Later stages can contain dozens of enemies, projectiles, particles, damage numbers, and sound effects at the same time. Object limits, pooling, effect throttling, and lightweight procedural graphics were used to keep the game stable.
I also had to make every improvised weapon immediately understandable. A paper tube should behave like a melee weapon, while a pencil case should clearly fire pencils and pens. Each weapon went through several visual and mechanical revisions to make its purpose obvious.
Accomplishments that I am proud of
I am especially proud that the project grew from a small movement prototype into a complete Reddit game with:
- Six upgradeable weapons
- Multiple enemy behaviors
- A large boss encounter
- Responsive desktop and mobile controls
- Original procedural sound effects
- Health supplies and projectile reflection
- Deterministic daily challenges
- Subreddit leaderboards
- A complete menu, upgrade, pause, and results flow
The Daily Shift is the feature that best represents the project's Reddit hook. It gives an entire community a shared challenge while still letting every player approach the run differently.
What I learned
This project taught me that polish is not only about adding more effects. It is also about removing anything that makes the game confusing.
Clear weapon behavior, readable health information, consistent attack origins, responsive layouts, and understandable upgrade descriptions often improved the experience more than simply adding additional content.
I also learned how Reddit can become part of a game's design rather than only a place where the game is posted. Shared daily conditions, community rankings, and conversations about strategies can give a short game a reason to bring people back.
What's next for Desk Defense
Future versions could include more daily modifiers, additional office-themed bosses, community milestones, new desk arenas, more accessibility options, and special events influenced by subreddit participation.
I would also like to expand the Daily Shift so communities can compare strategies, celebrate unusual builds, and collectively turn the stress of another busy workday into something playful.
Log in or sign up for Devpost to join the conversation.