A code-breaking deduction game about racing the dying light of the June solstice β and a love letter to Alan Turing.
βΆ Play it now Β· Built for the DEV June Solstice Game Jam 2026
A scrambled light-signal pulses over the horizon: six colors of the spectrum locked in a hidden order. Your job is to decrypt the sequence before the sun sets.
Every guess burns one hour of daylight β the sun slides down its arc, the sky bleeds from noon-blue to golden dusk to indigo night, and the stars come out. Crack the code and the beacon fires; run out of light and darkness wins.
The machine that grades your guesses is The Bombe β the device Alan Turing designed to break the Enigma cipher.
| Thread | In the game |
|---|---|
| βοΈ Solstice & passage of time | Daylight is the resource. The sun, sky, and stars are all driven by how many guesses you've spent. |
| π Light vs. darkness | The literal win/lose condition β decrypt the signal, or let night fall. |
| π§ Ode to Alan Turing | June is Turing's birth month. Code-breaking is the gameplay; the feedback engine is his Bombe. |
| π³οΈβπ Pride | The signal you decode is the rainbow light spectrum β honoring Turing, persecuted for being gay. |
- π¨ Living sky β a Canvas day/night cycle (sun arc, fading stars, drifting light-motes, a ghost moon) driven entirely by your remaining daylight.
- π§© Real deduction β a Mastermind-style cipher with duplicate colors and gold / hollow feedback pegs.
- βοΈ The Bombe Assist β spend a charge to let Turing's machine lock one correct position (2 per level).
- π Procedural audio β retro machine tones via the Web Audio API (no sound files).
- π Endless ramp + scoring β codes grow 4 β 5 β 6 symbols; high score saved locally.
- β¨οΈ Keyboard-first and colorblind-friendly (every orb is numbered 1β6).
- π¦ One file, zero dependencies, no build.
You're trying to match a hidden sequence of colored light-glyphs. After each guess, The Bombe tells you how close you are:
- π‘ Gold peg β right color, right position
- βͺ Hollow peg β right color, wrong position
Use the feedback to deduce the exact order before your daylight runs out.
| Key | Action |
|---|---|
β β |
Move the active slot |
β β |
Cycle the color of the active slot |
1β6 |
Set a color directly (auto-advances) |
Enter / Space |
Decrypt (submit your guess) |
B |
Bombe Assist β lock one correct position |
R |
Reset the run |
M |
Mute / unmute |
Mouse and touch work too (click an orb to cycle it, click a color in the legend to set it), but the game is tuned for a laptop keyboard.
No toolchain required β it's a single static file.
git clone https://github.com/longphanquangminh/solstice-cipher.git
cd solstice-cipher
# then just open the file:
open index.html # macOS
# xdg-open index.html # Linux
# start index.html # WindowsOr serve it (recommended so localStorage high-scores persist):
python3 -m http.server 8000
# visit http://localhost:8000- Make sure the game file is named
index.htmlin the repo root. - Settings β Pages β Build and deployment β Source:
Deploy from a branch, branchmain/ root. - Your game goes live at
https://longphanquangminh.github.io/solstice-cipher/.
- HTML5 Canvas β sky, sun, stars, particles, screen shake
- DOM + CSS β board, glassmorphism HUD, animations (Space Grotesk + Space Mono)
- Web Audio API β procedural sound effects
- Vanilla JavaScript β game logic, no framework
round score = level Γ 100 + daylight saved Γ 15 + Bombe charges held Γ 40
Your total carries across levels until night finally falls. Best score is stored in localStorage.
solstice-cipher/
βββ index.html # the entire game (markup, styles, logic)
βββ gameplay.png # screenshot for README / repo card
βββ README.md
- Fully playable with the keyboard alone.
- Every color glyph carries a number (1β6), so the puzzle is solvable without relying on hue.
- High-contrast HUD and large, glowing targets.
MIT β free to play, fork, and learn from.
Made for the June Solstice Game Jam. Happy solstice. π
