Photon Swarm

A browser stress test that became a full arena roguelite: three distinct beam weapons, authored encounters, irreversible sector contracts, route commitments, scarce relics, and a run you can actually finish.

Photon Swarm preview
Each contact is an authored directive with a named formation, tracked targets, and an explicit reward. Source-side hit brackets, a local hull pulse, damage numbers, and the health rail make incoming pressure readable without shaking the cursor-aimed arena.
Each contact is an authored directive with a named formation, tracked targets, and an explicit reward. Source-side hit brackets, a local hull pulse, damage numbers, and the health rail make incoming pressure readable without shaking the cursor-aimed arena.
Every run binds one of three weapon blueprints before first contact. Lance, Prism, and Arc cards preview their real firing geometry, doctrine, build tags, and permanent trade-off before later drafts evolve the selected core.
Every run binds one of three weapon blueprints before first contact. Lance, Prism, and Arc cards preview their real firing geometry, doctrine, build tags, and permanent trade-off before later drafts evolve the selected core.
The local ship-systems profile groups aim sensitivity, persistent audio, hit distortion, damage numbers, low-health warnings, colorblind palettes, and complete keyboard rebinding into a dense calibration console.
The local ship-systems profile groups aim sensitivity, persistent audio, hit distortion, damage numbers, low-health warnings, colorblind palettes, and complete keyboard rebinding into a dense calibration console.

About this project

Game DevECS ArchitecturePerformance OptimizationCanvas
I started this to learn Entity-Component-System architecture, with one concrete goal: 1000+ entities at 60fps in the browser. It grew into a complete arena roguelite built around memorable runs. Before first contact you bind a Lance, Prism, or Arc core that changes the real beam geometry; tagged mutations, sector relics, and two-sided anomaly contracts then evolve that identity. The first cleared sector closes one of two routes, higher Heat trades stronger opposition for better payouts, and horizontal Mastery plus a one-module hangar preserve long-term choice without flattening the run. Named formations, visible objectives, faction events, bosses, and a real victory state carry the arc across desktop and mobile.
  • Custom ECS engine built from scratch: all game objects are entity IDs whose behavior is composed from typed components at runtime
  • Directed encounter pacing: named formations, objective progress, clear rewards, timed salvage hunts, invasions, blackouts, and boss pressure
  • Three irreversible Beam Cores change collision and rendering together: long heavy Lance, three-ray Prism, or multi-target Arc cascades
  • Tagged mutation branches, scarce sector relics, and irreversible anomaly contracts create recognizable builds with explicit trade-offs
  • A Zone 1 route commitment closes the other passage, changes the next encounter ecology, and grants one run-scoped faction alliance
  • Build-aware drafts mix foundations, reachable evolutions, specializations, and one or two finite refit redraws
  • Horizontal Mastery unlocks higher Heat and refit capacity; the permanent hangar unlocks modules but mounts only one per deployment
  • Boss content: per-archetype ability loadouts, unique animated sprites, and telegraphed arena shockwaves
  • Enemy roles arrive in authored combinations: pincer hunts, crossfires, breaker lines, disruptor fields, and repairing royal guards
  • The original mouse combat stays intact: aim with the cursor, toggle beam or shot with LMB, charge with RMB, and use focus fire when the arena closes
  • Mobile touch controls pair with a compact tactical HUD that keeps vitals, radar, mission, sector clearance, and combat space separate
  • A visual enemy field guide teaches every silhouette, combat role, attack tell, and counter alongside complete ship-system settings
  • Winnable: clear the Zone 4 Deep Core boss and the run ends in victory with build, Heat, route, and Mastery context
Photon Swarm screenshot 1