RANGEBLENDS · ADDRESSED RANDOMNESS

Store the path,
not the palace.

A world is the word that made it. A save is a seed and what the player did. Nothing in between is generated or kept, because every value is addressed by where it belongs rather than drawn from a stream — so roll("loot", 4912, 20) costs exactly what index 1 costs, and gives the same answer on every machine, forever.

Four ways of answering are on offer here. Three of them are good. One is kept because it can be seen to fail, and that is the most useful thing on this page.

1A village that was never stored

Each house asks the law for its walls, roof, door and lamps, keyed by its own column. No table, no noise field, no seed stream to keep in step. Change the word and the village changes; change the backend and you change what is doing the answering.

2The bench: which answers are even?

Ask each backend the same question four thousand times — one house after another, eight choices each — and count what comes back. An even spread means a village of mixed roofs. An uneven one means a village that looks copied.

This runs when you press it, here, now. The bars are the eight counts.

backenddistinctlowesthighestspreadthe eight counts

Press the button and it will count.

3Nobody could have cheated

The same law does provably fair play. The house commits to a secret before anything happens and publishes only its fingerprint. The player adds a word of their own. Every roll is then a pure function of both — so the house cannot steer it, and the player cannot predict it.

Afterwards the secret is revealed and anyone recomputes the whole session. Alter a single roll in the record and the check fails.

Press Commit, play, reveal.

4What it does not claim

The card is plain about the limits, and so is this page. qrand takes the Legendre symbol modulo the Mersenne prime 2^61 − 1; character sums are bounded, so it cannot have long-range correlation — but the modulus is public, so it is not for anything an adversary profits from. gamerng is fine for loot and terrain and no further. The keyed blake2b backend is the default because it is the one that holds up when someone is trying.

And edge stays in the list on purpose. A kit that only ships the things that work teaches you nothing about how to tell. Run the bench and watch it come apart: that is the point of keeping it.

What the law decides ↗ How a law makes a place ↗