Hey DEV community! I'm Nithish. I built June Jubilee, a touch-first iOS arcade game made with SwiftUI and SpriteKit for the June Solstice Game Jam. It is inspired by the June solstice and the many celebrations, histories, and moments of joy that June holds.
This is a submission for the June Solstice Game Jam.
What I Built
June Jubilee is an iOS arcade game where you guide a small keeper of light through a night sky full of falling June celebrations.
The goal is simple:
- Collect celebration tokens.
- Avoid shadow orbs.
- Keep the solstice meter balanced between night and day.
- Score as high as possible before time runs out.
The game uses June as more than a visual theme. Each celebration changes how the game plays:
- Solstice tokens stretch the day side of the balance meter.
- Pride tokens reward confident streaks.
- Juneteenth tokens restore harmony by recentering the solstice meter.
- Alan Turing tokens open a timed binary cipher challenge.
- Soccer, sushi, and flip-flop tokens bring in the lighter, playful side of June.
The result is a small arcade game about holding many kinds of June light at once.
Connection to the June Theme
The June solstice is a turning point: longest day for one half of the world, shortest day for the other. I wanted that idea of balance and transition to become the core mechanic.
That is why the game has a Solstice Balance meter. Collecting different tokens pushes the meter toward day or night, and players earn better scores when they keep it near the center. It is a mechanical reminder that June contains contrast: celebration and reflection, history and joy, light and shadow.
The game also honors several June celebrations:
- Pride Month, through streak-based celebration tokens and bright identity-centered scoring.
- Juneteenth, through harmony-restoring tokens that represent liberation, resilience, and joy.
- Alan Turing's June birthday, through a code-breaking mechanic inspired by binary logic and early computing.
- World Cup energy, International Sushi Day, and National Flip-Flop Day, through playful tokens that keep the game lively.
Features
- Built for iOS with SwiftUI and SpriteKit
- Touch-drag movement for fast mobile play
- Falling celebration tokens with different scoring and balance effects
- Solstice day/night balance meter
- Shadow hazards that break streaks and disrupt balance
- Timed 90-second arcade loop
- Best score saved locally with
UserDefaults - Animated SpriteKit particles and falling starfield
- End screen with final score and replay button
- Alan Turing binary cipher bonus mechanic
Video Demo
Code
June Jubilee
June Jubilee is a touch-first iOS arcade game made for the June Solstice Game Jam. The player guides a small keeper of light through falling June celebrations, collecting as many as possible while keeping the solstice meter balanced between day and night.
Theme Fit
The game treats June as a constellation of transitions and celebrations:
- Solstice tokens stretch the day and challenge the player to restore balance.
- Pride tokens reward streaks and celebrate authenticity.
- Juneteenth tokens recenter the balance meter as a symbol of restoration, liberation, and joy.
- Turing tokens open a timed binary cipher. The player must collect falling
0and1tiles in the displayed order to crack the code. - Soccer, sushi, and flip-flop tokens bring in June's playful global and specific celebrations.
How to Play
Open JuneJubilee.xcodeproj in Xcode, select an iPhone simulator, and run.
- Drag anywhere on the screen to move the light keeper.
- …
Project name: JuneJubilee-Game
Built with:
- Swift
- SwiftUI
- SpriteKit
- Xcode
How I Built It
The app is split into a SwiftUI interface layer and a SpriteKit gameplay layer.
Project Structure
JuneJubilee/
├── JuneJubileeApp.swift — App entry point
├── ContentView.swift — SwiftUI HUD, start screen, end screen, and game model
├── GameScene.swift — SpriteKit arcade scene, physics, tokens, hazards, and cipher logic
└── Assets.xcassets — Asset catalog placeholder
SwiftUI for App Flow and HUD
SwiftUI handles the app lifecycle, scoreboard, solstice balance meter, cipher display, start panel, and final results panel.
The main game state lives in an observable model:
@MainActor
final class GameModel: ObservableObject {
@Published var phase: Phase = .ready
@Published var score = 0
@Published var dayBalance = 0.5
@Published var timeRemaining = 90
@Published var streak = 0
@Published var cipherTarget = ""
@Published var cipherProgress = ""
}
This made it easy for SpriteKit gameplay events to update the SwiftUI HUD in real time.
SpriteKit for Gameplay
SpriteKit powers the falling tokens, collision detection, particle bursts, touch movement, and hazards.
Each token has a theme, score value, color, symbol, and balance effect. For example, Juneteenth tokens restore the meter to the center, while solstice tokens push the game toward daylight.
case .juneteenth:
model.dayBalance = 0.5
default:
model.dayBalance = min(0.98, max(0.02, model.dayBalance + token.kind.dayShift))
That helped make the June theme part of the rules, not just the artwork.
Solstice Balance
The balance meter is the heart of the game. Players get more points when they collect tokens while the meter is close to the center.
let balanceBonus = 1.0 - min(1.0, abs(model.dayBalance - 0.5) * 2.0)
let earned = token.kind.score + Int(balanceBonus * 35) + streakBonus
This creates a nice tension: chasing every token is tempting, but smart players also watch the balance between day and night.
Prize Category
Best Ode to Alan Turing
I am submitting June Jubilee for Best Ode to Alan Turing.
Alan Turing's legacy is represented through a playable code-breaking mechanic. When players collect a Turing token, the game generates a short binary sequence and displays it in the HUD. Then 0 and 1 tiles begin falling into the scene.
The player has to collect the bits in the correct order before the cipher fades.
- Correct bit: advances the cipher and gives points.
- Wrong bit: resets the cipher progress and breaks the streak.
- Completed cipher: awards a large bonus and releases extra June light tokens.
This mechanic is inspired by binary logic, algorithms, and code-breaking. I wanted Turing's presence to be felt through interaction instead of only through text or decoration.
The game also connects Turing to June through Pride Month. Turing was a foundational figure in computing and a gay man persecuted for his identity. Including him in a game about June felt like a way to honor both his intellectual legacy and his human story.
What I Learned
This project reminded me how much a game theme can improve when it becomes a mechanic.
At first, June could have been represented only through colors and token names. But the game became more interesting once each celebration changed the rules: Pride rewards streaks, Juneteenth restores balance, solstice light shifts the meter, and Turing opens a binary challenge.
The biggest design lesson was that small arcade mechanics can still carry meaning when the rules are chosen carefully.
Final Thoughts
June Jubilee is a tiny festival in motion: part solstice balancing act, part celebration collector, part code-breaking sprint.
It is a game about movement, transition, and keeping many kinds of light in harmony.
Happy June, happy solstice, and happy Pride Month!











