Skip to content
Puzzle Reveal ikonuOur own product2025

Puzzle Reveal

A picture puzzle that reveals itself piece by piece.

iOSAndroid
Let’s build something like this
Puzzle Reveal interface 1
Puzzle Reveal interface 2
GameAMG / 25
Project
Our own product
Our role
Game design · Unity development · iOS release
Duration
4 months

01 / Behind the product

A real need. A considered solution.

01

Challenge

Match-3 needs to hold the player inside a 60–80% win band; too easy bores, too hard drives people away. In the first version difficulty came from a formula, and past level three the game became unwinnable. Then there was release: in the chain from Unity to the App Store a single missing plist key meant the app crashed on launch.

02

Approach

We dropped the formula and hand-tuned 50 levels: each has its own picture, tile count, move limit, blocker mix (ice, box, chain) and goal type, with every fifth level as a breather. The difficulty manager targets a 65% win rate and stages a near-win moment inside the last 10% of moves. Beyond 50, endless mode cycles the same pictures. Piggy bank, season pass, daily challenge and mascot live in separate managers. The release chain is scripted: compile, visual tests, build number, iOS export and plist gates (AdMob id, ATT copy, SKAdNetwork) in one command; if a gate fails the chain stops.

03

Result

Live on the App Store as PuzzleReveal: Match & Reveal, version 1.1.2. The scripted build and plist-gate approach established here is reused across our later games. A softlock guard releases the board automatically if the processing flag gets stuck, so no error can brick a level permanently.

03 / Scope & details

The details make the experience.

  • 01

    50 hand-tuned levels, each with its own picture; endless mode beyond

  • 02

    A difficulty manager targeting a 65% win rate with a staged near-win moment

  • 03

    Ice, box and chain blockers; four goal types

  • 04

    Piggy bank, season pass, daily challenge and mascot

  • 05

    Scripted iOS build and submission chain with plist gates

Match and revealSwipe to swapIce, box, chainPower-ups

Technology

Unity 6C#URPRevenueCatSupabaseFirebase
Engine
Unity 6000.5.0f1
Levels
50
Languages
TR · EN

INSIDE THE PRODUCT

The engineering behind the interface.

Systems we built and concrete problems we addressed in this project.

01

A hand-tuned difficulty curve

Levels 1–3 are a tutorial zone (~90% win rate, 4 gem types), 4–8 a ramp (~75%, 5 types), 9–15 the core (~65%, 5–6 types), 16–20 a challenge zone (~55%, 6 types); every fifth level is a breather. The old 100 × level formula made the game unwinnable past level three.

02

Near-win state is reset

If the player quit to the menu during a near-win the flag stayed set and the next level reported "so close" on its first move; the flag now resets at every level start. A season pass bought with real money no longer runs the gem-spend path, closing a double charge.

03

Build gates catch the crash at build time

The chain looks for the AdMob app id, ATT description and SKAdNetwork entries in Info.plist and the screen-guard class in the Xcode project; if any is missing it stops. These gates were added after a launch crash in build 13.

Your idea could be next.

What could we build for you?

From a first release to a growing platform. Let’s plan the design, development and launch together.

Tell us about your project

From Türkiye to the US, UK, Australia and everywhere in between.