Candy Crush Clone

Games app · built by the Vibecode team

Candy Crush Clone keeps Candy Crush Saga's name, candies, words and candy-cane map with one change: lives never run out and there are no ads. Drag the Colour Bomb into a Striped Candy and every red candy turns striped and fires, clearing all 63 cells to "Divine!". Leftover moves become Striped Candies in Sugar Crush, three stars pop on "Level 6 complete!", and the ∞ heart marker hops to the next level on the map. Chains cheer "Sweet!", "Tasty!" and "Delicious!", and when you run out of moves a big ∞ says "lives left" and Play again drops you straight back in.

  • iPhone · Swift
  • Built in 2 prompts
  • Free to remix
Candy Crush Clone, games app built with Vibecode
Remix this template

Remix copies the working app into your account for free, exactly as we built it. It runs in Vibecode's cloud iOS simulator, in your browser.

The prompt that builds it

We built Candy Crush Clone in 2 prompts. Here they are folded into one, so a single paste into a new app builds the finished version.

Prompt · 1,172 words

Build a polished native iOS clone of Candy Crush Saga in SwiftUI and SpriteKit: the real name, logo look, candies, words, board and map, with one change. Lives never run out, and there are no ads.

Home screen name "Candy Crush". Logo (SwiftUI): "Candy" over "Crush" in chunky rounded candy letters, orange-to-yellow, thick chocolate outline, white gloss, a pink heart and a pink "SAGA" tag. Where lives would be, a glossy pink heart with a white "∞". No lives count, timers, gold bars, boosters for sale, shop or ads anywhere.

SCREENS
1. Play (opens here: no splash, login or prompts). Pink HUD: left "6 | ♥ ∞" over the moves left, a big crimson italic "10"; centre a star bar (3 stars; every level starts at 0 with none lit, except HOOK MODE's Level 6, which starts with one) over the hot-pink goal pill, a red jelly bean and "12" counting down to a green check; right a round badge with the big ∞ heart, 70 pt. A 7x9 board of translucent navy tiles on the candy-land backdrop. Pause (bottom left): Resume, Restart, Map.
Candy Crush rules: swap neighbours (no match slides back); 4 in a line make a Striped Candy, an L or T a Wrapped Candy, 5 in a row a Colour Bomb; Colour Bomb + Striped Candy turns every candy of that colour striped and fires them all. Chains repeat; a move counts when its chain settles. Praise by chain: 2 "Sweet!", 3 "Tasty!", 4 "Delicious!", 5+ or any Colour Bomb combo "Divine!", each word about 85% of the board's width; small floating score numbers (about 13 pt) in candy colours that rise about 24 pt and fade out within 0.6 s.
2. Level end: "Sugar Crush!": each move left flies from the moves number onto a candy as a Striped Candy and fires, 0.12 s apart. Then "Level 6 complete!", three stars pop in turn, the score rolls up, "Next".
3. Map: a candy-land valley (generated art); a pink-and-white candy-cane path through 15 glossy round pink level buttons: 1-5 with gold stars (3, 3, 2, 3, 1), 6 current with a bobbing ∞ heart marker, 7-15 locked. Top: "♥ ∞" pill, the logo, "★ 12". After a win the stars pop and the marker hops on.
4. Level card (from a node): "Level 7", "Collect 30" with a green gumdrop, "22 moves", empty stars, a glossy magenta "Play", "♥ ∞ lives", and "Tip: Colour Bomb + Striped Candy clears lines!"
5. Out of moves: "Out of moves!", a big glossy "∞" over "lives left", "Play again" (straight back in) and "Map". No out-of-lives screen, +5 moves offer or timer, ever.
Fixtures: 15 levels (7x9, 18-30 moves, goal colour and count, star scores, seed); Level 6 is the HOOK board, 10 moves, collect 12 red.

SIGNATURE MOMENTS (filmed)
- Swaps slide in 0.18 s; pops burst into sparkles; falls squash and bounce.
- The combo: lightning arcs from the Colour Bomb; each Striped Candy fires a bright glowing beam as tall as a cell (white core, the candy's colour at the edges) that shoots to both board edges in 0.12 s and fades over 0.2 s (Sugar Crush's beams too); wrapped candies blow with a pink shockwave.
- "Divine!" and "Sugar Crush!" in big glossy candy letters, springing 0.4x to 1.15x to 1.0x; counters roll with numericText.

HOOK (the video's first 3 seconds)
- HOOK MODE: tapping an invisible 44x44 pt area at the top right, just below the status bar, plays a scripted 4-second run through the real swap and match code, identical every time. At 0.0 it resets Level 6 to this board, rows top to bottom (R red, O orange, Y yellow, G green, B blue, P purple, X Colour Bomb, r red Striped Candy (horizontal), v wrapped yellow, w wrapped blue): OGYRPGO ORYvBRO BPGYPYY YPGOROB OOXrPYG GRBRBOG RBYGPPB RGRBwGB PBYPROR; moves 10, goal 12. 0.6: a soft white touch circle drags the Colour Bomb (row 5, column 3) right into the Striped Candy over 0.4 s, lifted to 1.45x the whole way with a soft drop shadow, a bright glow and a 3-ghost trail. 1.0: it lands, settling back to 1.0x with a squash. 1.1-1.5: arcs to the 11 other reds, which turn striped, alternating vertical and horizontal in reading order, starting vertical. 1.65: all 12 fire in reading order, 0.05 s apart; both wrapped candies go off; all 63 cells clear. 2.3: "Divine!" and the refill, rows top to bottom: PPYBBRR RPRYYBY OOYOGBB YGPRYOY OPYOBBG GGBRPGO GBBGGPR ORYGOPO GRPPYRB; goal check, three stars; moves 10 to 9 at 3.1; "Sugar Crush!" at 3.8.
- "Divine!" replaces any earlier word and holds 1.3 s at full opacity; nothing starts until it fades. Flashes at most 0.12 s at 35% white. Specials are the size of other candies. Motion stays in the middle 80% of the screen.

LOOK
Sky-blue candy-land backdrop #6DD4F7 (generated art). HUD pink #F9C9E1 to #FAA8D3 with white stripes; goal pill #F880C0; moves #C8235E; star bar blue #30BCE4 on pink #F960A6; stars #FFD23F. Magenta pill buttons. Candies, glossy and jelly-like (gpt-image-1, transparent): red jelly bean #E8202A, orange lozenge #F19105, yellow lemon drop #FAE80C, green square gumdrop #43BB01, blue lollipop-head sphere #4F96FE, purple flower #C602FC; a wrapped one of each (twisted cellophane); the Colour Bomb, a chocolate ball with rainbow sprinkles. Stripes drawn in SpriteKit: white bands clipped to the candy's shape.

RULES
- Native SwiftUI + SpriteKit at 60 fps, iOS 26 (keep the template's target), iPhone portrait; it must also run on iPhone Duo.
- Deterministic fixtures. No backend, login, permissions, analytics or network calls. No persistence: delete the SwiftData starter, no UserDefaults or files, so every launch starts the same.
- Art: run env, then gpt-image-1 with the project's OPENAI_API_KEY at $OPENAI_BASE_URL/images/generations, into the asset catalog; curl-check files, never review them by eye. No characters, people or logos in images.
- Preload textures off the main thread and warm up haptics at launch.
- Springs under 350 ms, haptics on swaps, no dead buttons.
- Files under 300 lines, big bodies split into subviews, no long chained expressions.

REMIX-READY
Brand.swift (name, logo, Copy enum with every word), Theme.swift (colours, fonts; no colour literals elsewhere), Fixtures.swift (levels), DemoScript.swift (HOOK board, refill, timings). Codable models behind a LevelSource protocol feeding one @Observable GameStore; candy kinds as an enum. README.md under 80 lines: file map; rename, recolour, add a level or candy; 3 one-prompt remixes that re-niche it. "Read README.md first." atop CLAUDE.md and ios/AGENTS.md; replace ios/CLAUDE.md's structure block with this app's files. No scratch folders.

FILMING
Long-press the map's logo to reset to launch. Long-press the moves number to set moves to 1.

BUILD
Theme, Brand, Fixtures, then the board engine and each screen in small files, a one-line status per screen; launch in the simulator every two or three files. Art only after the app runs. Check the HOOK board with a quick script. Walk each flow once and fix what breaks; no pixel measuring. Deliver the whole app, not a plan.
All templates