Inspiration
We wanted to create a game that captures the nostalgic chaos of classic rage platformers, games that look simple but make you question your sanity. The idea sparked from watching speedrunners navigate impossibly deceptive levels where nothing is what it seems. Floors disappear, spikes emerge from nowhere, and the goal itself might be a trap.
The JetBrains ecosystem inspired us to feature Kodee, the Kotlin mascot, as our brave (and frequently dying) protagonist. We wanted to celebrate the developer community with a game that feels like debugging production code at 3 AM, frustrating, rewarding, and oddly addictive.
What it does
Glitch Run is a fast-paced platformer where deception is the core mechanic:
- Play through procedurally challenging levels filled with traps that subvert expectations, fake floors that crumble, spikes that appear from thin air, goals that teleport away, and walls of death that chase you down
- Master unique mechanics including ice physics for high-speed slides, gravity flips, bounce pads, teleporters, and a dash ability to escape danger
- Create and publish your own levels using our built-in level editor with 20+ trap types, then share them with the world
- Compete globally on the leaderboard, your score factors in levels completed, deaths, and time, so every run counts
- Browse the Level Library to play community-created nightmares, sorted by difficulty, popularity, or newest uploads
How we built it
- Phaser 3: The game engine powering all physics, rendering, and game logic
- TypeScript: For type-safe code that scales with our growing trap collection
- Supabase: Backend for the global leaderboard, level storage, and online publishing
We architected the trap system with extensibility in mindm each trap inherits from a base class, making it easy to add new mechanics. The level editor uses a grid-based system that serializes to JSON, enabling seamless online sharing.
Challenges we ran into
- Hitbox alignment: Phaser's Arcade Physics only supports axis-aligned bounding boxes, so diagonal lasers required creative solutions using calculated width/height instead of rotation
- Ice platform detection: Getting the slippery physics to trigger reliably meant bypassing standard collision flags and using direct body bounds checking
- Rising lava visuals: Making lava "consume" the screen from below (not just move as a bar) required rethinking the rendering approach with dynamic origins
- Balancing difficulty: Traps needed to be challenging but fair; fake elements should have subtle tells for observant players
- Level editor UX: Fitting 20+ trap types into an intuitive interface without overwhelming players
Accomplishments that we're proud of
- 20+ unique trap types: From classics like spikes and sawblades to creative ones like mirror enemies, inverting rooms, and moving goals
- Seamless online integration: Players can publish levels and compete on leaderboards without any account creation
- Polished juice: Death particles that scatter and reform, screen shake, dash trails, snow effects, and smooth animations make every interaction feel satisfying
- The "one more try" factor: Playtesters kept coming back despite (or because of) the difficulty
- Complete level editor: A full creation suite that rivals the main game in depth
What we learned
- Physics engines have opinions: Understanding Phaser's collision system deeply was essential for making traps feel right
- Deception requires honesty: The best fake traps have subtle visual hints; pure randomness isn't fun, but learnable patterns are
- Scope management: We had ideas for 50+ traps but learned to polish 20 instead of shipping 50 broken ones
- Backend simplicity wins: Supabase let us add online features in hours instead of days
- Playtest early, playtest often: What feels obvious to the developer is invisible to the player
What's next for Glitch Run
- Daily challenge levels: Curated levels that rotate every 24 hours with separate leaderboards
- Replays and ghosts: Race against your best run or watch top players' strategies
- Level voting and curation: Community-driven featuring of the best player-created content
- Mobile support: Touch controls for on-the-go rage
- New trap categories: Environmental hazards, enemy AI patterns, and cooperative two-player traps
- Seasonal events: Themed trap packs and limited-time challenges
Built with chaos and caffeine for the Cloud9 x JetBrains Hackathon
Built With
- junie
- phaser.js
- suprabase
Log in or sign up for Devpost to join the conversation.