Inspiration
The core inspiration for this project comes from the legendary game Doom. I’ve always been fascinated by how pseudo-3D environments can create an intense, immersive atmosphere. As a game planner with 6 years of industry experience in South Korea, I have designed many systems, but I had never formally learned to code or built a game from scratch by myself. When I discovered that the Phaser engine supported a unique 2.5D plugin approach, I saw the perfect opportunity to bridge that gap.
What it does
Hell Dice Shooter brings a fast-paced 2.5D corridor experience straight into a Reddit feed, turning a solo arcade loop into a massive, community-driven social experience. Players sprint through endless corridors, farm resources, and roll "Dice Poker" hands to dynamically swap their weapon tiers. When they die, their run can leave a persistent tombstone on the map for other players to pick up asynchronously, and every single monster kill contributes to a global weekly subreddit quota stored in Redis, uniting solo players for a collective goal.
How we built it
Since this was my very first time developing a fully functional game, I relied heavily on modern AI-driven "Vibe Coding" workflows to stitch together a native Reddit architecture:
- Game Client: Built on Phaser 3.90, TypeScript, and Vite. I implemented a pseudo-3D perspective utilizing a 2.5D layout technique (
twopointfive) and dynamic fog. The HUD and UI overlay are handled via an HTML DOM that stays perfectly aligned using a customHudViewportSyncsetup. - Backend & Storage: Driven by the Reddit Devvit SDK (
@devvit/web). We utilized Redis to create the global mechanics: real-time subreddit-wide kill tracking for the weekly community target, an asynchronous post-scoped tombstone database fetched viaapi/tombstone/list, and user high-score leaderboards.
Challenges we ran into
The absolute biggest challenge was my lack of formal engineering experience. I had to build this through continuous prompting, debugging line by line, and frequently wasting millions of context tokens on circular logical bugs due to my own knowledge gaps.
A prime example was resolving Devvit's strict security policies. I hit massive walls when attempting to make the game automatically post Battle Reports under a player's handle using runAs: "USER", causing persistent schema validation errors. Through deep-dives, I realized I couldn't bypass Devvit's explicit action policy. I fixed this by forcing a manual opt-in "Send Battle Report" button on game over, while simultaneously engineering a bulletproof, Redis-backed anti-spam cooldown gate (5 minutes for a personal record, 30 minutes for regular runs).
Accomplishments that we're proud of
Overcoming these technical walls as a non-programmer and launching a fully compliant, native Reddit game application was an incredibly steep hill to climb. I am extremely proud of successfully implementing a bulletproof anti-spam cooldown mechanism and an explicit user-permission flow that respects both the Devvit platform constraints and the subreddit's user experience.
What we learned
This project was an incredibly rewarding milestone. It was my very first time implementing a 2.5D visual concept on the web, and I proved to myself that I could deliver a cost-effective, high-impact 3D illusion without the massive overhead of a full 3D engine. More than anything, this experience broke the barrier between planning and execution for me, teaching me how to leverage AI tools effectively to build complex, platform-native state machines.
What's next for Hell Dice Shooter
We plan to introduce deep, permanent progression and build-crafting systems to maximize long-term engagement. Moving forward, players will be able to spend their earned dice currency to permanently upgrade character traits and unlock unique talents. Additionally, we will implement a dynamic, rogue-like choice system where players can choose from 3 randomized perks or status buffs at key milestones during a run. This will allow players to experiment with entirely different build-up strategies and synergies every time they enter the corridor.
Log in or sign up for Devpost to join the conversation.