This is a submission for the June Solstice Game Jam
What I Built
SOLSTICE CIPHER is a code-breaking deduction game about racing the dying light of the longest day - and a love letter to Alan Turing.
On June 21, the sun lingers longer than on any other day of the year. In the game you stand at a solstice observatory where 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 you make burns one hour of daylight - the sun slides down its arc, the sky bleeds from noon-blue to golden dusk to indigo night, and stars come out. When the last light dies, darkness wins.
The deduction engine that grades your guesses isn't a generic hint box - it's The Bombe, the electromechanical machine Alan Turing designed to break the Enigma cipher. You can even spend a limited Bombe Assist to let it run a deduction and lock one position for you.
🎮 Play it now (no install, runs in the browser):
Full screen:
Designed keyboard-first for laptops - you can play the entire game with the arrow keys and number row.
My goal was to make something a judge can understand in five seconds but that still rewards real thinking - and to tie three June threads together in a single mechanic instead of bolting a theme onto an unrelated game.
How it connects to the theme:
- ☀️ The solstice & the passage of time - daylight is the resource. The sun's position, the sky gradient, and the rising stars are all driven by how many guesses you've spent. The "longest day" gives you the most daylight of the year to work with.
- 🌗 Light vs. darkness - the literal win/lose condition. Crack the code and the beacon fires; run out of light and night falls.
- 🧠 An ode to Alan Turing - June is Turing's birth month. Code-breaking is the gameplay, and the feedback machine is his Bombe.
- 🏳️🌈 A quiet nod to Pride - the signal you decrypt is the six-color light spectrum / rainbow. Turing, the father of modern computing, was persecuted for being gay; decoding a rainbow in his honor felt right for June.
Code
🌞 SOLSTICE CIPHER
Crack the light before the longest day ends.
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
About
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.
Theme connection
| Thread | In the game |
|---|---|
| ☀️ Solstice |
How I Built It
The whole game is one self-contained HTML file - no engine, no framework, no build step, and no external assets beyond two Google Fonts. Open the file and it runs. That constraint kept the project honest and made it trivial to host and review.
The stack:
- HTML5 Canvas for the living sky (sun, stars, light-motes, particles, screen shake)
- DOM + CSS for the game board, glassmorphism HUD, and animations
- Web Audio API for procedural retro-machine tones (no audio files)
- Vanilla JavaScript for all game logic
1. The deduction core. At heart this is a Mastermind variant with duplicates allowed. The Bombe grades every guess in two passes - first the exact hits, then the leftover color matches:
function evaluate(guess, secret){
let exact = 0, partial = 0;
const sc = Array(6).fill(0), gc = Array(6).fill(0);
for (let i = 0; i < guess.length; i++){
if (guess[i] === secret[i]) exact++; // right color, right slot
else { sc[secret[i]]++; gc[guess[i]]++; } // tally the misses
}
for (let k = 0; k < 6; k++) partial += Math.min(sc[k], gc[k]); // right color, wrong slot
return { exact, partial };
}
2. Daylight as a clock. There's no countdown timer - guesses are the clock. A single fraction, f = guessesUsed / maxGuesses, drives the entire atmosphere. The sky is three keyframes interpolated by f, and the sun follows a parametric arc that accelerates toward the horizon as the light runs out:
const SKY = [
[[42,140,255],[170,214,255]], // noon
[[255,138,71],[255,205,150]], // golden dusk
[[8,10,40],[26,22,58]], // night
];
// ...
const sx = W * (0.5 + 0.42 * f); // drift toward the western horizon
const sy = H * (0.17 + 0.62 * f * f); // fall, accelerating, as daylight fades
Stars fade in only after f passes ~0.4, so dusk literally reveals the night sky as you run low on time.
3. The Bombe Assist. Pressing B spends one of two charges. It picks an unsolved position (preferring one you've currently got wrong), reveals the correct color, and locks the slot - a small homage to Turing's machine narrowing the search space. It costs you score, so it's a real trade-off, not a crutch.
4. Feel & juice. Correct decrypts trigger staggered particle bursts in the spectrum colors plus a Web Audio arpeggio; wrong guesses get a low buzz and the lose screen shakes the canvas. All of it is keyboard-driven so it demos cleanly.
Design decisions I'm happy with:
-
Keyboard-first (
←→move,↑↓/1–6set color,Enterdecrypt,BBombe) so laptop players never touch the mouse. -
Colorblind-friendly - every orb is labeled
1–6, so the puzzle is solvable by number alone, not just by hue. -
One fraction to rule the mood - reusing
ffor sky, sun, and stars kept the atmosphere perfectly in sync with the stakes for almost no code.
Difficulty ramps endlessly: codes grow from 4 → 5 → 6 symbols, daylight scales 10 → 12 → 14 guesses, and your score (level × 100 + daylight saved × 15 + Bombe charges held × 40) carries across levels until darkness finally wins.
Prize Category
🏅 Best Ode to Alan Turing
This game honors Turing in its mechanics, its narrative, and its timing:
- Mechanics - the gameplay is code-breaking. The machine that evaluates your attempts is named The Bombe, after the real device Turing built to break Enigma, and the Bombe Assist mirrors how that machine eliminated impossibilities to narrow the solution space.
- Narrative - the framing leans into June as Turing's birth month and casts deduction as the light that holds back the dark.
- Design - the cipher you decode is the six-color light spectrum, a deliberate Pride reference honoring Turing, who was prosecuted for being gay and only pardoned decades after his death. Breaking a rainbow code in his name ties the solstice, Pride, and computing history into one image.
Thanks for playing - and happy solstice. 🌞

Top comments (0)