SPACE.LA
◀ music select
personal / game / active

Bullet Hell Dungeon

An 8-bit roguelite action game mixing Zelda-style overworld exploration with bullet-hell dungeon runs: five classes, inventory and levelling, chunked tile maps and touch controls, in TypeScript on HTML5 Canvas with a custom ECS and Howler audio.

BPM
159
GRADE
S
LEVEL
6
RELEASES
0
YEARS
2025–2026

Two Thousand Bullets, Pooled

I spent the last few days of 2025 on a game. Bullet Hell Dungeon is an 8-bit roguelite with a Zelda-style overworld on top of bullet-hell dungeon runs, in TypeScript on an HTML5 canvas. I built it over the holidays and into January.

Bullet hell means thousands of projectiles on screen at once, so a lot of the work was performance: object pooling with room for two thousand or more bullets, a spatial hash grid for constant-time collision lookups, and typed arrays for the bullet data. The world is chunked into 16 by 16 tiles loaded on demand, in Tiled Map Editor format. Under all of it is a lightweight entity component system I wrote, with components as plain data and systems doing the work.

Then the RPG stuff: five classes (warrior, mage, rogue, ranger and cleric), inventory and equipment, skills and levelling, NPCs, dialogue, shops, cutscenes, saves, and a virtual joystick so it works on a phone. I had the most fun on the architecture. Six months later I was writing a Game Boy Advance engine in my own language, so I guess I just like building the stuff underneath the game.

led to