Inspiration
Two things inspired this game. One was the film Don't Look Up, where the pressure isn't from physics or science but from acting under uncertainty. The other was real news. NASA's DART probe nudged an asteroid's orbit in 2022. Apophis will pass closer than our satellites in 2029. In 2024, asteroid 2024 YR4 briefly had a 1-in-32 chance of hitting Earth, then new data erased the danger.
All of these stories has the same shape. Early on, you know little, and acting first is risky. Acting late is certain but can be too late. We wanted to make a game that makes you feel that trade off, not just read about it.
What it does
You pick a real asteroid, from a famous one like Apophis or Bennu to one passing Earth this week, and defend against a “what if it hit” scenario built on its real orbit. A cloud of dots on a 3D globe shows where it could land. It shrinks as more observations arrive. You can spend a limited budget on telescopes, radar, a probe, kinetic impactors, gravity tractors, shelters and evacuations. A nuclear burst is available as a last resort. You can attempt the daily challenge, which gives everyone the same rock and the same budget, with a top-5 leaderboard based on how many points you get. Dr. Okafor, an AI chief scientist, advises you as you go, and a narrator and score react to rising danger.
How we built it
The simulation is a simplified but accurate model. The asteroid’s closest approach is a Gaussian uncertainty in the impact plane. We sample it 4,200 times to make the dots. The effective target is bigger than Earth because gravity pulls the rock in. The full equation for the simulation is available on the github repo's readme.
Frontend: TypeScript and three.js, with custom GLSL shaders for the glowing dot cloud, the fire tail and the 3D blast zones. The globe, impact scenes and ending cinematics all run in the browser. Backend: a Cloudflare Worker that serves the game, proxies NASA and JPL data with edge caching, and runs the AI. A D1 database stores the daily leaderboard and replays. AI Agent (Dr. Okafor): Groq’s gpt-oss-120b with a free API key. Sound: the narrator is pre-recorded with an AI text-to-speech, with royalty-free effects and ambience, all implemented for a better user experience.
Challenges we ran into
Making the asteroid and dots simulation work: Early on the rock appeared on one side of Earth while the dots appeared on the other, and we completely rebuilt the geometry so the drawn path, dots, and impact point all come from one calculation, verified manually. Misses that looked like bugs: When the outcome was that the asteroid misses, the path was drawn thousands of kilometers away from Earth, looking random, and we lowered those measurements so they read as a clear miss. Sound: Ambient sounds were much louder than the narrator, and sometimes didn't play, and everything was levelled to balance out the volumes. 3D models: Lots of the assets used didn't load until you were far into the game, showing glitchy placeholder models, but a simple loading screen fixed this. Cinematic scenes: Short cinematic scenes had to be checked and perfected by reading the game’s state and stepping animations by hand.
Accomplishments that we're proud of
Creating an accurate simulation to the real world, giving you an idea of what would actually happen. Implementing all the 3D models and sounds was a long and complicated process, even with AI helping, as everything had to be done manually by hand.
What we learned
Showing uncertainty is a design problem as much as a math problem. Players understood a visual of shrinking cloud of dots instantly, where paragraphs about probability lost them. A game can be accurate to real world physics and still be fun if you simplify the right things.
What's next for Don't Look Up
Better physics: model the asteroid's rotation and effect of sunlight on it's orbit so the measurements are more accurate Better damage: add tsunamis, firestorms, dust, a real population map, not only 88 cities and an average density for the rest Co-op mode: each player runs certain areas New scenarios: comet impacts with only months of warning, a binary asteroid like Didymos, and a historical what if such as Tunguska Sandbox: a mode where you design your own asteroid More voices and languages: each character has more languages supported, for example Spanish
Built With
- cloudflare-d1
- cloudflare-workers
- cloudflare-workers-ai
- groq
- nasa-jpl-sbdb-api
- three.js
- typescript
- vite
- webgl
Log in or sign up for Devpost to join the conversation.