← All Projects

Logical Numbers

Our own chalkboard number puzzle, first released in 2018 and rebuilt in 2026. Pair numbers that match or make ten, and work around tough cells, chained cells and the clock.

Medium board with yellow and magenta tough cells, chained cells and cleared ghosts, score 6
Main menu with the hatched chalk title and New Game, Statistics and Settings buttons
  • 4

    ways to play, two players on one device included

  • 5

    boosts, paid for with coins earned in play

  • 50+

    automated tests, some playing the real scene

  • 0

    ads, in-app purchases or data collected

Product
Our own game
Stores
App Store and Google Play
Platforms
iOS and Android, phone and tablet
Our part
Game design, art, code and releases
Timeline
First released 2018, rebuilt in 2026

The brief.

Context

Logical Numbers grew out of a pencil-and-paper game: a grid of digits where you cross out pairs that are equal or add up to ten. The first version came out in 2018. It is our own product, from the rules and the chalk art to the code and the store releases.

Challenge

The original build was on Unity 2020 and no longer met Google Play's current requirements: target API level 35 and 16 KB memory pages. Players had years of coins and statistics in save files on their devices, and an update could not lose them. The look had to stay as it was: chalk on a slate, colour only where it means something.

Approach

We rebuilt the game on Unity 6 with UI Toolkit only. The rules live in a core with no UI, seven screens are laid out in UXML and USS, and saves still read the INI files players already have. Tests click through the real scene, and one pipeline ships to Google Play and TestFlight.

Pair it. Make ten.

Tap two numbers that are equal or add up to ten, with only cleared cells between them, along a row or down a column. Rows wrap, so the end of one runs on into the next. Every pair scores, and taking the same number again builds a series worth up to five points a pair.

  • A full row disappears. Add line deals fresh numbers when no pair is left.
  • Stuck? Hint lights up a valid pair, for coins.
Easy board nine pairs in, one cell picked and outlined in green
A pair
The same board after a Hint: two matching fives lit in green, boost bar with coin prices below
Hint

Tough cells, chains and coins.

Tough cells, outlined in yellow or magenta, take two or three matches to clear. A chained cell cannot be picked until a pair made right beside it breaks the chain. Scoring earns coins, and coins buy boosts: Hint, Swap, Random, Refresh and extra time on the clock.

Medium board with yellow and magenta tough cells, chained cells and cleared ghosts, score 6
Medium board

Four ways to play.

Infinity is endless, at Easy, Medium or Hard, on a board five to thirteen cells wide. Time deals a fixed board with 60, 90 or 120 seconds on the clock. Custom lets players switch boosts and chained cells on or off. Two Players share one device, each with a clock, and the higher score wins.

New Game screen listing Infinity, Time, Custom and Two Players
Modes
Time mode board with chained tough cells and 88 seconds left on the clock
Time
Custom rules: board width slider and ticks or crosses for each boost and for chained cells
Custom
Two Players board with a score and a clock for each player, a cell picked in red
Two Players

Every game on the record.

Statistics are kept for each mode and difficulty: games played, best and average score, average time, coins earned and spent, and how often each boost was used. A two-player game ends on a results screen with both scores and the time each player had left.

Statistics for Infinity Easy: games played, best and average score, average time, coins and boosts per game
Statistics
Game over after a two-player game: both scores, the time each player had left, Player 1 wins
Result

A rules core, tested end to end.

The rules know nothing about the screen, so boards, pairing, chains, scoring and saves are tested on their own. PlayMode tests then load the real scene and play it with real taps. The same tests render the store screenshots, so every image in the listings comes from a game that was actually played.

  • Project settings own the version code. The pipeline ships exactly what is committed and never asks the store for a number.
  1. Rules core

    Board, pairing, chains, scoring, boosts and clocks in plain C#, with no UI code.

  2. UI Toolkit

    Seven screens in UXML and USS, plus a custom board control and its effects.

  3. Saves

    Coins, settings and per-mode statistics stay in the INI files players already have.

  4. Tests

    EditMode suites for rules and saves; PlayMode suites that click through the real scene.

  5. Release

    dev goes to Firebase App Distribution and TestFlight, master to Google Play and TestFlight.

Chalk on slate, colour with a job.

Everything is drawn in chalk on a dark slate: hatched digits, hand-drawn cell outlines, a flourish between results. Colour is rare and always means something. Yellow and magenta mark tough cells, green a good pair, red the second player. The steel chain is the only photographic material in the game, so chained cells stand out.

  • Slate
  • Chalk
  • Tough cell, two hits
  • Tough cell, three hits
  • Match
  • Second player
Main menu with the hatched chalk title and New Game, Statistics and Settings buttons
Menu

What we built.

Our part

  • Game design and rules
  • Chalk art and interface
  • Rebuild on Unity 6 and UI Toolkit
  • Rules engine and save compatibility
  • Automated tests and store screenshots
  • CI/CD, store listings and releases

Stack

Game
  • Unity 6
  • C#
  • UI Toolkit (UXML, USS)
Quality
  • Unity Test Framework
  • EditMode and PlayMode suites
Release
  • GitHub Actions
  • Fastlane
  • Firebase App Distribution
  • TestFlight
  • Google Play
Store tooling
  • Python and Pillow for store screenshots

Have a game that needs a second life?
Let's rebuild it.

We move older Unity titles onto current engines and store requirements without losing what players already have.