Back to Exhibition
Open Source
| JavaScript | personal

Starburst

High-performance browser-based bullet hell shooter. Optimized 60FPS rendering loop using HTML5 Canvas and vanilla JavaScript.

Starburst

Starburst is a high-performance browser-based bullet hell shooter that pushes HTML5 Canvas to its limits. Built entirely with vanilla JavaScript, this game demonstrates that complex, performant games don't require heavy frameworks.

The rendering engine maintains a rock-solid 60FPS even with hundreds of particles, enemies, and projectiles on screen simultaneously. Every frame is carefully optimized with object pooling, spatial partitioning, and batch rendering.

Tech Stack

Vanilla JavaScript HTML5 Canvas Web Audio API CSS3

Key Features

  • Smooth 60FPS gameplay in modern browsers
  • Hundreds of simultaneous on-screen entities
  • Progressive difficulty scaling
  • Power-up system with visual feedback
  • Particle explosions and trail effects
  • Responsive touch controls for mobile
  • Browser-based with no installation required

Technical Highlights

  • Object pooling eliminating garbage collection pauses
  • Spatial hashing for O(1) collision detection
  • RequestAnimationFrame with delta time interpolation
  • Canvas context optimization (no transforms during draw)
  • Sprite batching reducing draw calls
  • Web Audio API for low-latency sound effects

Architecture

Game Loop Architecture

  • Fixed timestep physics with variable rendering
  • State machine for game flow management
  • Entity manager with component pattern
  • Event-driven input handling

Performance Optimizations

  • Object pools for bullets, particles, enemies
  • Spatial hash grid for collision queries
  • Off-screen canvas for static backgrounds
  • Typed arrays for particle systems

Challenges & Solutions

1

Achieving consistent 60FPS across all browsers

2

Managing memory without causing GC stalls

3

Implementing smooth touch controls

4

Balancing visual fidelity with performance

Gallery

Starburst Screenshot 1
Starburst Screenshot 2
Starburst Screenshot 3
Starburst Screenshot 4