Inspiration

ARC-AGI-3 measures interactive reasoning: an agent is dropped into an environment with no instructions and has to work out the rules by acting and observing. I wanted to know what that feels like from the inside - as a human. UNKNOWN is an independent game built around that question. It is not affiliated with or endorsed by the ARC Prize Foundation.

What it does

UNKNOWN gives you a board of shapes whose names and roles you do not know. There is no tutorial, no arrows, no goal marker you can trust. You move, you bump into things, you watch what changes, and you form a hypothesis about how this world works. That hypothesis is the game.

  • 10 worlds x 5 levels, 50 levels in all
  • Fully turn-based and deterministic: nothing moves until you do
  • Each world runs on a different law - invisible walls, rewired causes, disguised shapes, order the world remembers, a map you only see for two turns, a goal you must infer, a machine that keeps running
  • What you work out in one world becomes a tool in the next
  • After each clear you can mark the exact action where the rule "clicked" for you
  • Plays offline; your play records stay on your device

How we built it

Kotlin + Jetpack Compose, with the game engine as a separate pure-JVM module that has no Android dependency. The engine is a single pure function reduce(state, action): the same 50 level files drive the game, a breadth-first solver, and the acceptance tests.

That solver is the design tool. Every level is machine-checked for: a solution exists, no state is a dead end, every cell is reachable, and the optimal action count matches the level's metadata. Late levels also have "policy tests" - the suite walks the board pressing every lever it can reach, in four sweep orders, and asserts the level does not fall to that. Several levels were redesigned after a test like that failed, not after a playtester complained.

Ads are AdMob banners on the home, level-select and clear screens only - never on the board - loaded through RevenueCat Ads so impressions show up in the RevenueCat dashboard.

Challenges we ran into

The hard part was difficulty. Early levels were cleared in seconds; later ones fell to "press everything you see". The fix was not longer levels but levels that keep a decision after the insight: a near portal that drops you on the wrong side, two levers that drive the same variable so pressing both cancels out, a route where the optimal first move points away from the goal. Each of those is now an assertion in the test suite.

The other challenge was honesty about tests. A helper that was supposed to prove "late levels resist simple policies" returned false for every reach-the-goal level, so the assertion passed without checking anything. Fixing the test surfaced three real design flaws.

Accomplishments that we're proud of

  • 50 levels, every one solver-verified, zero dead ends, 100% cell coverage
  • A closed test with 12 testers for 14 days: three reported issues, all fixed and shipped during the test
  • Two languages, offline, a 3.6 MB install

What we learned

"Understanding" is measurable. The engine records every action and every observation, and the clear screen asks where the rule clicked. That turns a puzzle game into a small instrument for looking at how people learn an unexplained system - which is exactly the question ARC-AGI-3 asks of machines.

What's next for UNKNOWN

A human baseline: compare how quickly people reach the insight across worlds, and use that to tune the curriculum. New worlds that need new laws, not just new boards.

For the judges

No promo code is needed: the entire game is free and there are no premium features. Install from Google Play (available in the US) and play all 50 levels.

Monetization is a single RevenueCat Ads banner, shown only on screens where the player is not thinking - home, level select, and the clear screen. The board itself is never covered and never interrupted.

Built With

  • admob
  • android
  • cloudflare-workers
  • jetpack-compose
  • kotlin
  • revenuecat
  • room
Share this project:

Updates

Submission history