Sokode
Sokoban plus code. Build a level, share it as a self-verifying code — no server, no accounts, no feed.
Every puzzle game with a level editor eventually needs a server: to host levels, to verify they're solvable, to stop people sharing garbage. Sokode asked whether the share code could carry its own proof instead.
What it is
Sokode is Sokoban plus code. Solve levels, build your own, and share them as self-verifying codes. No server, no accounts, no feed.
Every share code embeds the author's solution replay. Before a level becomes playable, the recipient's device re-runs that proof through the exact same simulation used for play. A level that can't be solved, or a code that got corrupted in transit, fails the gate on arrival. Codes travel as plain text or as a URL fragment.
What it does well
Verification without a backend. The proof rides along with the level. There is no service to trust, pay for, or keep running.
Determinism as a contract. The engine is pure Dart with zero Flutter imports, enforced in CI. The simulation that validates an imported level is the same code that runs the game, so a level that verifies is a level that plays.
Sharing that survives any channel. A code is text. It works in a message, an email, a forum post, or a link.
Honest about its threat model. The design documents what the import gate does and does not defend against, rather than implying that a self-verifying code is a security boundary.
Who it's for
Sokoban players who want to build and trade levels without joining anything.
People who like deterministic puzzle design — the genre where the rules are pinned and the difficulty comes from the layout.
Anyone curious what a share-everything game looks like with no server at all.
What it looks like in practice
Someone builds a level in the maker, solves it to produce the proof, and gets back a code. They paste it into a group chat. A friend pastes it into their app; the device replays the embedded solution through the simulation, confirms the level is solvable exactly as claimed, and unlocks it for play. Nothing was uploaded anywhere.
What it's not
It's not a live-service game. No accounts, no leaderboards, no daily challenge.
It's not an anti-cheat system. The import gate proves solvability, not authorship.
It's not commercial. This is a lab project.
Status
Moving. The core engine — grid, pinned Sokoban+ rules, simulation — is merged with 52 tests. The share-code codec and import gate are merged. The Flutter player and maker shells are merged. Remaining: seed levels and a web player at sokode.com. CI enforces format, analyze, and test on every PR, plus the rule that the core package never imports Flutter. Tech: pure Dart engine + Flutter shell.