🏔️ SkiSweeper – Race the Yeti, Solve the Puzzle
A retro-modern mashup of SkiFree’s chaos and Minesweeper’s brain-burning strategy.
Inspiration
If your childhood featured a beige PC running Windows 3.1, chances are you’ve met two icons:
- SkiFree’s endlessly optimistic skier (who could yeet himself into orbit off a rainbow jump), and
- The Yeti who did not care about your hopes, dreams, or high scores.
Those moments — the backflips, the “Oof!” crashes, the sprint of pure panic when the Yeti spawned — stuck with us. And while revisiting SkiFree history recently, we kept wondering:
What if hitting a rock didn’t just make you skid?
What if the game suddenly tested your brain as well as your reflexes?
That spark led to SkiSweeper, a hybrid of SkiFree’s frantic downhill action and Minesweeper’s tactical number-crunching. It’s the Windows 90s crossover we wish had existed.
What it does
SkiSweeper fuses two classic games into one seamless arcade–puzzle loop:
🎿 Infinite Ski Mode
Dodge, jump, and trick your way down a procedurally generated mountain filled with:
trees, rocks, moguls, snowboarders, loose dogs, stumps, ramps, booms, lift poles — the full SkiFree chaos buffet.
- Perform rotation-based tricks
- Crash with a delightfully crunchy retro “Oof!”
- At 2 000m, meet the Yeti (he still runs faster than you think)
- Yes, there’s a hidden speed boost… SkiFree fans will find it 😉
💣 Minesweeper Mode
Hit a boom and instead of dying, you’re pulled into a persistent 8×8 Minesweeper board.
You get three moves to think fast:
- Reveal tiles → earn points equal to their number
- Flag mines → protect your score
- Misclick a mine → lose 10 points and feel the boom
Then you’re yeeted back onto the slope with a little more knowledge (and a little more fear).
🧮 Scoring
- 1 point per meter skied
- Tricks: +10 to +50
- Numbers revealed: +1 to +8
- Yeti kills: +10
- Mines: –10
The loop is addictive: adrenaline → puzzle → adrenaline → puzzle.
🎨 Themes
Two visual vibes:
- Classic Windows 3.1 — chunky pixels, nostalgic charm
- Haunted Halloween — spooky palette, creepy lighting, a Yeti that looks extra untrustworthy
How we built it
Building SkiSweeper felt like renovating an old alpine lodge into a modern puzzle escape room. We approached development with spec-driven iteration, drawing inspiration from other hackathon teams who treated design docs as first-class citizens.
🧩 Architecture
We use a modular MVC-inspired structure:
- Engine: 60fps loop, input, rendering, state transitions
- Controllers: Ski mode + Minesweeper mode logic
- Models: Skier, obstacles, Minesweeper cells, Yeti, stats
- Managers: Audio, scoring, themes, asset loading
- Generators: Procedural slope + Minesweeper board
Everything runs with dependency injection and event-based messaging so components stay decoupled and easy to extend.
🛠️ Tools & Tech
- Vite 5.0 — dev server + build pipeline
- Vanilla JavaScript + ES modules
- HTML5 Canvas — crisp pixel rendering with no smoothing
- Web Audio API — retro sound effects
- Vitest + fast-check — unit + property-based tests
🤖 Using Kiro IDE
Kiro IDE became our co-pilot during the sprint. We leaned heavily on:
Spec Mode:
Defined behaviors for physics, scoring, collision rules, and procedural generation before writing any implementation. This prevented AI-generated guesswork and kept systems aligned.Vibe Mode:
Used to shape scaffolding for modules, improve readability, and generate starter test cases. Vibe Mode’s “coding by mood” approach kept the structure consistent while letting us explore creative redesigns quickly.Automated Docs & Tests:
Kiro helped generate initial documentation stubs and test harnesses directly from our spec files — lifesavers during rapid iteration.
Working with Kiro felt like skiing with flags marking the safe path: fast, guided, and surprisingly freeing.
Challenges we ran into
🎮 1. Designing two games in one
Balancing high-speed arcade chaos with a calm puzzle moment took many iterations. Too little skiing felt slow; too much skiing made Minesweeper irrelevant. Play-testing helped shape a rhythm that feels both frantic and cerebral.
⛷️ 2. Recreating the “SkiFree feel”
Early physics were too realistic — players didn’t laugh when they crashed.
We intentionally:
- Increased jump arcs
- Loosened hitboxes
- Added the cartoonish ragdoll wipeouts
- Reincluded the iconic “Oof!”
Sometimes accuracy takes a backseat to charm.
🗺️ 3. Procedural generation without unfairness
Our first slopes accidentally produced:
- three booms in a row
- mogul walls
- rock clusters forming accidental fortresses
Property-based tests helped catch extreme edge cases.
🧠 4. Spec-first mindset shift
Our hardest mental shift was focusing on what we wanted before how we’d code it. When specs were vague, Kiro invented its own logic (including a version of the Yeti with… questionable abilities). Clear specs prevented these “AI creativity surprises.”
🎨 5. Visual cohesion across themes
SkiFree pixels, Minesweeper icons, and a Halloween aesthetic all mashed together required several art passes.
Getting the Yeti “menacing yet lovable” turned into a team sport.
Accomplishments that we're proud of
- A fully playable hybrid game running directly in the browser
- Seamless transitions between Ski and Minesweeper modes
- A rotation-based trick system that rewards skill
- Infinite slopes with balanced difficulty curves
- Two polished themes — nostalgic + spooky
- 50+ tests, including property checks that preserved sanity during procedural tuning
- A Yeti AI that feels chaotic but fair (mostly)
What we learned
🎯 Nostalgia is a powerful design guide
Blending two simple retro mechanics created something new, delightful, and familiar.
📐 Specs > Guessing
Clear specifications kept AI tools grounded and prevented misinterpretations. Kiro’s spec-first workflow was a game-changer.
😎 Fun beats features
Fancy systems don’t matter if the core loop isn’t satisfying. Early testers taught us this faster than any error log.
🧪 Testing is your future self’s thank-you note
Property-based tests saved us from slope-generation disasters and rare Minesweeper edge cases.
What’s next for SkiSweeper
🔗 Trick combos & multipliers
Chain flips, spins, and stylish landings for score streaks — including special buffs like temporary invincibility or Minesweeper hints.
🧑🤝🧑 Multiplayer chaos
- Race friends on identical seeded slopes
- Compete in puzzle time trials
- Team up to outsmart two Yetis
- Global leaderboards for bragging rights
📱 Mobile version
Touch gestures + tilt steering for skiing on the go.
🎁 Seasonal events & Easter eggs
Holiday themes, summer slopes, and maybe even the mythical “third Yeti.”
If the internet debated it, we’re probably adding it.
Thanks for strapping in. Now get out there, carve some powder, and try not to step on any mines!
Built With
- javascript
- kiro
- vite


Log in or sign up for Devpost to join the conversation.