⚔️ SWORD & SHIELDS: GAME DESIGN DOCUMENT
Vision: A community-driven Idle RPG where legendary runs populate the world’s lore and every retired champion becomes a challenge for the next player.
📝 Project Overview
Sword & Shields is a strategic Idle RPG built for the Reddit Developer Platform. It combines the addictive progression of a "roguelite" with a unique Social Champion Pool system, turning a solo journey into a community-driven tournament.
💡 Inspiration: The Legend of the Last Aegis
Inspired by the challenge of "Leaving a Legacy," I wanted to create a game where reaching the top isn't just a personal win, but a contribution to the game's ecosystem.
- The Story: A lone squire faces the Alabaster Titan—a giant sentinel whose neon-gaze looms in the background of every map.
- The Legacy: While the Titan is the ultimate NPC goal, the true glory lies in the Tournament. Those who defeat other player-champions are uploaded to the global pool, turning your most optimized builds into the "ghosts" that future players must overcome to claim the throne.
🛠️ Technical Stack
The project is a hybrid technical feat combining high-performance frontend logic with a robust Reddit backend.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | GameMaker | High-performance 2D engine for node-maps and UI. |
| Backend | Devvit (Reddit SDK) | App hosting and Social API integration. |
| Database | Redis | Real-time hero data storage and global Champion Pool. |
| Scripting | TypeScript | Backend state management and leaderboard logic. |
| Art | Aseprite | High-contrast neon pixel art. |
🚀 Engineering Challenges
1. Mobile Optimization (The 60 FPS Goal)
A major hurdle was rendering massive node-maps on mobile devices without lag.
- The Solution: Implemented Surface Caching and GPU Scissor Masks.
- Technical Detail: Instead of drawing 100+ lines every frame, the game draws the connections once to a surface and then crops the view.
- Result: Buttery-smooth performance on mobile browsers within the Reddit app.
2. Social Interaction & Asynchronous Multiplayer
I wanted a "Multiplayer" feel without the need for players to be online at the same time.
- The System: Using Redis Hashes, every time a player completes a run, their Champion’s data is stored and indexed into the global tournament leaderboard.
- The Hook: In Tournament Mode, you face the actual builds of other Redditors, making the community the primary source of content.
⭐ Key Features for Reddit Judges
- [x] Best Use of User Contributions: Every enemy you face in Tournament mode is a player-champion, equipped and named by a fellow Redditor..
- [x] Optimized Mobile Gameplay: The entire game features a "Drag-to-Scroll" map and "One-Tap" navigation.
- [x] Recurring Community Content: The leaderboard and evolving Champion Pool ensure the "meta" changes daily as players discover stronger builds.
🎨 Art Assets Disclosure
This project uses open-source sprites from Duelyst, which have been made available for public and commercial use by Counterplay Games. These assets were instrumental in bringing the world of Sword & Shields to life within the Hackathon timeframe.
⚠️ Final Notes & Stability
Due to the intense last-minute push for the submission:
- UI/Debug: Some debug info might still be visible and a few UI elements may appear out of place.
- Current Build: While the tournament’s random champion selection and map progression are currently locked in the main build (limiting play to the first boss for stability), these features are fully functional in the playtest link.
- Architecture: Leaderboards and item/enemy passives are already architected in the code and will be fully enabled in the next update.
🔗 Playtest Link
Experience the full working Tournament here: 👉 Sword & Shields Playtest
Log in or sign up for Devpost to join the conversation.