惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
J
Java Code Geeks
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
雷峰网
雷峰网
D
DataBreaches.Net
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
☀️ SOLSTICE: The Sun Remembers — An Open-World Puzzle Jou...
Michael Angello Qadosy Riyadi · 2026-06-18 · via DEV Community

This is a submission for the June Solstice Game Jam

What I Built

☀️ I built SOLSTICE: The Sun Remembers — a 3D open-world exploration game wrapped around a series of puzzles, built with Three.js.

You don't play as a human. You play as Sol, the soul of the Sun itself — a being that has risen every single day for billions of years without ever questioning why. The game opens with Sol losing five ancient memories, and as those memories fade, Sol's light begins to drain. If it runs out before all five memories are restored, the world falls into eternal darkness. 🌑

Each memory you recover is tied to a real June celebration, reinterpreted as both a location and a puzzle mechanic:

  • 🌳 Chapter I — The Ancient Forest (the Solstice itself): a multiple-choice puzzle about Earth's axial tilt, the actual scientific reason the Northern Hemisphere experiences its longest day in June.
  • 🏳️‍🌈 Chapter II — The Village Square (Pride): an interactive sundial puzzle where you click to set the gnomon to solar noon, tied to a memory about community and the courage to live openly under the Sun.
  • Chapter III — The Mountain of Freedom (Juneteenth): a historical puzzle built around a fact most people don't know — why it took two and a half years after the Emancipation Proclamation for word of freedom to actually reach Galveston, Texas.
  • 🔐 Chapter IV — The Observatory (Alan Turing): a real Caesar cipher you have to decode by hand, directly referencing Turing's codebreaking work.
  • 🌊 Chapter V — The Ocean Shrine: a 5×5 constellation grid where you map the Sun's path from dawn to dusk, tying every previous memory together.

The throughline is intentional: the prompt asked us to explore light, darkness, and the passage of time, and the idea of a Sun who has forgotten why it shines felt like the most literal way to explore that, while giving me a narrative excuse to fold in Pride, Juneteenth, and Turing without it feeling like four unrelated trivia questions stapled together.

Video Demo

Game

🎮 Game

Code

💻 Github

How I Built It

🛠️ The entire game runs in three files — index.html, style.css, and game.js — with no build step or framework, just vanilla JavaScript and Three.js (r128) loaded from CDN for all 3D rendering.

A few technical decisions I'm proud of:

🌇 Dynamic time-of-day lighting. Rather than a static scene, I built a table of lighting states (sky color, fog color, directional light color/intensity, ambient and hemisphere light) keyed to specific hours of the day, then linearly interpolate between them every frame based on an internal clock. This drives sunrise, daylight, sunset, and night transitions across the whole island.

🔊 Procedural audio, zero audio files. Every sound effect and the entire background score are synthesized live using the Web Audio API — oscillators for chimes and tones, filtered white noise for wind, layered drone pads for the ambient music bed. There isn't a single .mp3 or .wav in the project; it's all generated in code.

🧩 Four distinct puzzle systems, one shared framework. Rather than hardcoding five separate puzzle UIs, each chapter's puzzle is defined as data (type, question, answer, hint) and rendered through a shared puzzle modal that branches on type — multiple-choice, sundial-click, cipher-decode, and constellation-grid all reuse the same submit/feedback/retry flow underneath.

🧭 Navigation and pacing. A directional arrow plus distance readout helps players find their next objective without a full quest-marker system, and a minimap gives spatial orientation across the island. Sol's light (the core "lose" resource) drains passively over time and refills in chunks as each memory is restored, which creates light pressure to keep exploring without making the game punishing.

🧱 Collision and world layout. Simple AABB collision boxes keep players out of structures, while named chapter zones (forest, village, mountain, observatory, ocean) each have their own ambient lighting bias and decorative density to feel distinct from each other despite sharing one continuous island.

🤖 AI assistance, disclosed transparently. I used Gemini 3.1 Pro as a coding assistant throughout development — helping me work through Three.js scene setup, debug lighting interpolation logic, and brainstorm puzzle mechanic ideas. The narrative direction, puzzle content (questions, answers, historical research), and overall creative decisions are mine; Gemini was a pair-programming aid, not the author of the concept.

Prize Category

🏆 Submitting for Best Ode to Alan Turing.

Chapter IV is built entirely around Turing: the location is an Observatory, the lore explicitly covers his work breaking the Enigma cipher during WWII and his foundational role in computer science, and — most importantly — the puzzle itself isn't just Turing-themed trivia, it's a working Caesar cipher the player has to decode letter by letter, which is a real (if simplified) reflection of the kind of codebreaking work he's known for. The memory text that unlocks afterward also directly addresses how he was persecuted despite his contributions, tying the historical weight of June (a month that includes Pride) back into his story.

Conclusion

🌞 SOLSTICE started as an attempt to answer one question: what if the thing we celebrate every June — light, identity, freedom, brilliance — was something the Sun itself had forgotten how to value? Building four genuinely different puzzle types around four genuinely different pieces of history was the hardest and most rewarding part of this jam. I learned a lot about Three.js lighting pipelines, Web Audio synthesis, and how much narrative weight a simple cipher puzzle can carry when the story around it earns it.

Thanks for reading this far, and thank you to the judges for taking the time to play through Sol's journey. I'd love to hear which chapter resonated with you most. 🙏


Thanks for checking out my submission! Happy to answer any questions about the build in the comments. 💬