DEV Community

Cover image for Solstice Defender — A Space Shooter Across Ada's Sky, Alan's Grid & Sol's Network
Isaac Sam
Isaac Sam

Posted on

Solstice Defender — A Space Shooter Across Ada's Sky, Alan's Grid & Sol's Network

June Solstice Game Jam Submission

This is a submission for the June Solstice Game Jam

What I Built
Solstice Defender is a browser-based arcade space shooter built entirely in vanilla HTML, CSS, and JavaScript — no frameworks, no game engines, no dependencies. Just one self-contained file that runs in any browser.
You pilot a beam of light through 9 levels split across three zones, each themed around a different June celebration:

Ada's Sky (Levels 1–3) — Galveston, Texas. June 19, 1865. Ada hears the Emancipation Proclamation for the first time and walks toward the water as a free woman. Defend her sky against descending chains.
Alan's Grid (Levels 4–6) — Bletchley Park, 1941. Alan Turing races against dawn to crack the Enigma cipher. The drones zigzag — unpredictable, like the cipher itself. Hold the grid.
Sol's Network (Levels 7–9) — The present day. An AI awakens on the solstice and asks: what do I do with the longest day? The answer is to protect the light.

The solstice is the backbone of everything: light versus darkness, the longest day as a resource, and three turning points in history bound together by June 21.
Play it here → https://samempire1.github.io/Solstice-Defender/

Video Demo
https://youtu.be/2ErjXTIoXLA

Play it here: https://samempire1.github.io/Solstice-Defender/

Code
GitHub → https://github.com/Samempire1/Solstice-Defender

The entire game is a single index.html file. Open it in any browser and it runs. No build step, no npm install, no server required.

How I Built It
Architecture
The game runs on three systems working simultaneously inside a single requestAnimationFrame loop:
Canvas renderer — all visuals are drawn frame-by-frame onto an HTML5 element. The background has three parallax scroll layers at different speeds, procedural star fields, scrolling grid lines for Alan's zone, and floating nebula orbs for Sol's zone. Each zone has its own sky gradient, particle color palette, and ground color. Screen shake is applied by translating the canvas context on hit frames.
Game engine — a JavaScript object model handles player movement (8-directional, WASD + arrow keys + mouse + touch), bullet physics, enemy AI movement patterns (grid march, zigzag, swarm spiral), collision detection, power-up pickups, multi-wave respawning, boss battles, combo multiplier, and the bomb system.
Web Audio API sound engine — every sound in the game is generated procedurally at runtime using oscillators, gain envelopes, and bandpass-filtered noise buffers. There are no audio files whatsoever. Each zone has its own ambient drone built from stacked sine and triangle oscillators at different base frequencies, plus a looping melodic layer using the zone's pentatonic scale. Distinct sounds exist for: single shot, dual shot, 5-gun volley, enemy hit tick, enemy explosion, boss mega-explosion with layered noise, shield block deflection, power-up pickup, extra life fanfare, level-up scale, bomb detonation, combo chime, and the grace period countdown.
Enemy Design
Three enemy types, each mapped to a zone:

Grid enemies (Ada's Sky) — orbital chain ships that march left and right, dropping one row each time they reach a wall. Straightforward but relentless.
Zigzag enemies (Alan's Grid) — Enigma drones that oscillate sinusoidally as they descend, always aiming at your current position when they fire. You have to keep moving to survive.
Swarm enemies (Sol's Network) — glitch clusters that spiral in compound arcs using layered sine motion. The hardest to predict.

Every enemy has a rage mode: when HP drops below 35%, the ship turns red and fires faster. Bosses on levels 3, 6, and 9 fire multi-directional rotating bullet patterns and take many hits to defeat.
Power-Up System
Seven power-up types drop randomly from defeated enemies — triple shot, rapid fire, shield, dual guns, five-gun spread, extra life, and bomb refill. Picking up dual guns or five-gun spread visually changes your ship shape, growing side cannons that are rendered in real time.
The Bomb
Pressing B fires a screen-clearing bomb that destroys every on-screen enemy and clears all bullets simultaneously. A shockwave ring expands outward from each destroyed enemy, the screen shakes, and the camera recovers. Bomb count is displayed as orange dots in the HUD and refills through power-up drops.
Cutscenes and Voice
Between each zone transition a full-screen story card appears with the historical context for the next zone — Ada's freedom, Alan's cipher room, Sol's awakening. All level announcements and major events also use the Web Speech API for voice synthesis: "Level 4. Alan's Grid.", "Boss incoming!", "Bomb!", "Victory!"
Additional Features

3 difficulty modes — Easy, Normal, Hard, adjusting fire rate, speed, HP, and bomb count
Top-5 leaderboard — saved to localStorage, shown in the pause screen and game over screen
Achievement popups — First Blood, Combo x5, No Damage Wave, Boss Slayer, Bomb Squad
Grace period — 3-second countdown on every new wave during which enemies cannot fire
Fully responsive — canvas resizes to any screen, never exceeds viewport height, no scrolling needed
Pause system — P or Escape pauses; drone music fades out and back in

Prize Category
Best Ode to Alan Turing
Alan Turing is not a background reference in this game — he is one of its three protagonists with his own dedicated zone spanning three full levels.
Alan's Grid (Levels 4–6) is visually and mechanically designed around Turing's world. The background renders a scrolling cyan Cartesian grid — the kind of mathematical workspace Turing described in his foundational papers. The enemy ships are Enigma drones: boxy, grid-aligned, and unpredictable in their movement. Their zigzag pattern is a direct mechanical metaphor for the encrypted signals Turing spent his career decoding — you can see the pattern forming but you cannot predict the next position, which is exactly the problem Enigma was designed to create.
The zone story card reads: "Bletchley Park, 1941. Alan works through the night to crack the Enigma code. The drones zigzag — unpredictable, like the cipher itself. Hold the grid."
Sol's Network (Levels 7–9) extends the Turing thread into the present. Sol is an AI that awakens on the solstice — a direct engagement with Turing's 1950 paper "Computing Machinery and Intelligence" and its central question: not "can a machine think?" but "what does it do with the capacity it has?" Sol's answer, through the game's mechanics, is to protect the light — to carry Ada and Alan's stories forward. Giving Sol a literal voice through the Web Speech API was a deliberate design choice with this in mind.
The three zones are also structurally connected by what Turing's legacy means for the other two characters. Ada's freedom is the kind of human dignity Turing was denied because of who he loved. Sol's remembrance is the tribute that remains — an AI holding their stories carefully and telling them truthfully on the longest day.

Top comments (0)