This is a submission for the June Solstice Game Jam
What I Built
Code
How I Built It
<! Architecture
Built on React 18 + Vite, with the game engine running on HTML5 Canvas layered inside React's component tree. React handles the UI overlays (HUD, menus, wave notifications) while Canvas handles all real-time game rendering — enemy movement, projectile physics, particle effects, and collision detection.
The Survival Mechanic
The 10-minute timer is the solstice arc. Each minute = roughly one hour of the actual solstice day (6am to 4pm). The background sky gradient updates in real time. At the 5-minute mark (solar noon), enemies hit peak difficulty — this is the solstice's turning point, and it's also when the game is hardest.
The Freedom Chain System
Freedom chains are the game's Juneteenth mechanic. Chained spirit allies are placed throughout the map — they glow gold and pulse. When you reach one and break the chain (right-click or E), the spirit is liberated and begins fighting alongside you. This scales — later in the game, a ring of freed spirits creates a formidable defensive formation.
Pride Power System
Six Pride orbs cycle through the visible light spectrum (ROYGBV):
🔴 Red: damage boost
🟠 Orange: fire rate
🟡 Yellow: area of effect
🟢 Green: health regen
🔵 Blue: movement speed
🟣 Violet: spirit ally buff
Each orb lasts 15 seconds. Stacking orbs creates combination effects.
Enemy Design
Shadow creatures spawn in escalating wave patterns. Early waves are slow pinwheels. Later waves introduce faster shadow darts and heavy shadow titans. The visual design uses inverted light — enemies are dark voids with faint inverse halos, making the contrast with your light-based character immediate and readable.
Top comments (0)