Side Project
Ninja Rumble
A wave-based 3D arena brawler with weapon switching, grappling hooks, boss fights, and full combat audio — built in the browser.
What it is
Ninja Rumble is a browser-based 3D action game where you fight waves of enemies in an arena, switch between five weapon types, build kill streaks, and face boss spawns. It includes a full scoreboard, kill feed, spectate mode, and weapon-specific combat mechanics.
Why I built it
Combat games stress-test systems design: hit detection, state machines for weapons, audio feedback loops, UI under pressure, and performance when many entities are active. I built this to explore how far browser 3D can go without a traditional game studio pipeline.
Key features
- Five weapon types: shuriken (ranged bleed), kunai (burst melee), katana (combo swings + spin dash), smoke bombs (stealth window), grappling hook (wall pull + enemy grab)
- Wave-based enemy spawning with boss events
- Kill streak tracking and battle log scoreboard
- HP bars, critical hit overlay, and boss pointer UI
- Death screen with spectate and respawn flow
- Full custom audio layer for attacks, movement, and impacts
Approach
Modular JavaScript architecture split across World, Effects, Audio, and main game logic. Combat is state-driven — each weapon owns its attack pattern, cooldown, and audio cue. UI layers stay separate from the render loop so HUD updates do not block frame rate.
What it demonstrates
- Complex interaction design in a single HTML deliverable
- Weapon system architecture without a game engine
- Juice and feedback (audio, overlays, kill feed) as first-class systems
Takeaways
Players forgive simple graphics when feedback is immediate. The lesson applies outside games too: any interactive system needs visible response within the same beat as the user action.
// Built with
// Interested in something similar?
I build browser-native prototypes and AI workflows to test ideas fast — then scale what works into production systems.
Book a callBuilding something similar?
Start with a conversation about your workflow, not a tool list.