Skip to content
SUNTHREAD ikonuOur own product2026

SUNTHREAD

You are the first ray of morning sun, weaving one thread of light through a sleeping garden.

AndroidiOS
Let’s build something like this
SUNTHREAD interface 1
SUNTHREAD interface 2
GameAMG / 26
Project
Our own product
Our role
Game design · Generator pipeline · Unity development
Duration
In development

01 / Behind the product

A real need. A considered solution.

01

Challenge

The weakness we measured in the WARDLIGHT engine was plain: at level 400, 100% of moves were forced and the player never made a decision. Most one-line puzzles either run on guessing or on dictation. SUNTHREAD’s first principle follows from that: solvability is the entry ticket; uniqueness and deduction are the product. Every level must have exactly one solution, reachable without guessing.

02

Approach

The generator produces candidates that must pass five hard gates: exactly one solution; no clue removable without breaking uniqueness; a human-style solver using only named deduction rules must finish the level; the forced-move ratio must sit in the 35–70% band; and a level is rejected if the solver’s rule multiset matches any of the last five.

The solver works in five tiers (dead ends, breeze propagation, chessboard parity, bed-entry counting, turn counting) and the difficulty score derives from them. The generator was written in Node first as the reference oracle; the C# port is diffed byte for byte against golden fixtures. The thread of light is a custom triangle strip with arc-length UVs rather than a LineRenderer, and feedback fires haptic first, then audio, then visual.

03

Result

Six chapters × 20 curated levels plus 200 daily levels: all 320 pass the five-step verification report committed to the repo, with zero failures. The forced-move ratio runs from 0.44 to 0.79 with a 0.59 average; the same measurement on WARDLIGHT read 100%. 27 EditMode and 34 PlayMode tests are green, and the PlayMode run re-renders every review sheet. Music is generative, there are four season palettes and a high-contrast mode. Development continues.

03 / Scope & details

The details make the experience.

  • 01

    Five-gate generator: uniqueness, minimal clues, human solver, forced moves, fingerprint

  • 02

    Node reference implementation plus C# port with byte-identical parity tests

  • 03

    Every claim backed by a committed artifact

  • 04

    Unity 6, 2D URP, portrait, Android-first

Technology

Unity 6C#URP
Engine
Unity 6000.5
Languages
TR · EN
Level generation & validation

Deterministic generation

five-gate candidate pipeline

INSIDE THE PRODUCT

The engineering behind the interface.

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

01

Five gates, all hard constraints

The uniqueness counter exits early on a second solution; clue minimisation removes each clue and re-tests uniqueness; the human solver applies only named rules; the forced-move ratio must be 35–70%; a candidate is rejected if its rule multiset matches any of the last five levels.

02

The verification report is committed

Every level is rebuilt from JSON and re-tested from scratch: is the stored solution legal, is the solution count exactly one, does the human solver finish without guessing, does its answer equal the stored one, does the forced ratio sit in the chapter band. 320 levels, zero failures; the highest ratio is 0.79.

03

A test caught that post-processing had never run

The renderer asset carried no PostProcessData, which URP reads as "off", so the thread’s HDR colours clipped to white. Bloom and the coloured weather vignette are now built from code, and an EditMode test fails if the data ever goes missing. The text atlas is warmed at boot with every glyph and size, so it never rebuilds mid-game.

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.