Starburst
High-performance browser-based bullet hell shooter. Optimized 60FPS rendering loop using HTML5 Canvas and vanilla JavaScript.
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
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
Achieving consistent 60FPS across all browsers
Managing memory without causing GC stalls
Implementing smooth touch controls
Balancing visual fidelity with performance
Gallery