Available for Hire
ZB

Memuat...

Screenshot of DEBUG RUN
Back
Frontend 2026 Featured

DEBUG RUN

A top-down arcade game in the browser: a developer is pulled into their own codebase and has to clear out bugs wave after wave. Built with Phaser 3 and TypeScript.

About This Project

DEBUG RUN is a top-down arcade game running entirely in the browser, built as a personal project to get deeper into game development. The premise: a developer gets pulled into their own codebase and has to survive bugs arriving in waves. The game has 10 waves on a rising difficulty curve with bosses at waves 5 and 10, seven enemy types across three behaviour patterns (chase, zigzag, and charge), and a three-hit combo system with hitstop, knockback, and screen shake. The player gets two cooldown skills, Purge as a circular area attack and Shock as a piercing line that stuns, plus a dash with full invulnerability while moving. Clearing a wave lets the player pick one of three upgrades. Two things are technically notable: every sound effect and music track is synthesised at runtime through the Web Audio API, so the repository contains no audio files at all, and total assets come to roughly 140 KB including a self-hosted pixel font so the game still runs offline. Balancing numbers live in separate data files, which means tuning the game is a data change rather than a code change.

Tech Stack

Phaser 3 TypeScript Vite Web Audio API

Challenges

  • Making 2D combat feel weighty without leaning on a heavyweight engine
  • Keeping asset size small so the game loads fast and works without a connection
  • Balancing 10 waves and 2 bosses without editing code every time the difficulty needs a tweak

Solutions

  • Hitstop, knockback, and screen shake on every strike, plus invulnerability during the dash so the player always has a fair way out
  • All audio synthesised at runtime through the Web Audio API with no sound files at all, and sprites packed from individual frames, bringing total assets to around 140 KB
  • Balancing numbers split into dedicated data files, so tuning difficulty is a data edit