Skip to content
WARDLIGHT ikonuOur own product2026

WARDLIGHT

Escape a dark dungeon with one continuous line of light. Lantern flames are your lives.

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

01 / Behind the product

A real need. A considered solution.

01

Challenge

If level generation applies rules first and tests solvability after, the generator throws away most candidates and some unsolvable levels slip past the test.

02

Approach

We applied a "solution first, rules derived" principle. The generator produces a valid Hamiltonian path first, then derives every mechanic from that path. Every level is therefore solvable by construction rather than by testing. The level is the seed: `seed = (uint)(level * 2654435761)`, so level 1202 is identical for every player on every device.

03

Result

3200 levels swept, all solvable. The same 3200 generated twice, byte-identical output. Engine-independent core: the `Wardlight.Core` layer has zero UnityEngine references, enforced by asmdef. All external services sit behind interfaces, so the game runs in-editor with no SDKs at all.

03 / Scope & details

The details make the experience.

  • 01

    3200 levels swept, all solvable by construction

  • 02

    Byte-identical output on regeneration

  • 03

    Zero UnityEngine dependency in the Wardlight.Core layer

  • 04

    Ads, purchases, analytics and cloud sync all behind interfaces

Numbered wardsLantern flamesThe WardenOrthogonal line

Technology

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

Deterministic generation

seed = (uint)(level * 2654435761)

3,200 levels swept

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.