How we generate a mine that's fair for everybody
Procedural generation is supposed to be the great equaliser — infinite worlds, endless replay value. It also quietly wrecks leaderboards, because no two players are competing at the same thing. Here's the problem, and the fix we built into Strata.
When we started building Strata, the plan was the obvious one: every player gets their own randomly generated mine. It's the standard approach, it's cheap, and it means nobody ever runs out of world. We built it that way, played it for a while, and slowly realised we'd created a leaderboard that meant nothing.
The problem nobody mentions about random worlds
A mining game lives or dies on what's under you. In Strata's world there are ore clusters, buried ruins holding artifacts, pockets of water and lava, unstable gravel, and five sealed vault chambers that are the whole point of the game. All of that is placed by the generator. Which means two players starting a run are not attempting the same task.
One player's shaft happens to open onto a dense ore seam eight metres down and funds a drill upgrade in the first three minutes. Another player cuts through forty metres of empty clay, burns most of a fuel tank, and comes back up with nothing. Both played well. One is now two hundred places higher on the board.
You can paper over this by generating "fairer" worlds — enforcing a minimum ore density near the spawn, guaranteeing an easy early find. We tried that. It helps a bit and costs a lot: the more you constrain the generator, the more every world starts to feel like the same world, and you've traded away the exact thing procedural generation was for.
The fix: everybody digs the same world
The change we landed on is almost embarrassingly simple. Strata generates one world per week, and every single player digs that same world. It's cut fresh every Monday at 00:00 UTC, and it lasts seven days.
Suddenly the leaderboard is a real contest. The ore seam that made someone rich is available to you too — three metres left of the shaft, exactly where it was for them. The Magma Seal is in the same column for everybody. Nobody got a kinder world, so a higher score means somebody made better decisions, explored more intelligently, or simply put in more hours. That's what a leaderboard is supposed to measure.
It also does something we didn't anticipate: it makes the game social without any social features. Players are all working on the same puzzle at the same time. "Has anyone found the Granite Seal yet?" is a meaningful question in a shared world and a nonsense one in a private one.
How a whole world fits in one number
Here's the part that makes this practical. We don't store the world anywhere. A world of 200 columns by 1,400 rows is 280,000 tiles, and keeping a copy of that for every week — and shipping it to every player — would be silly. Instead the world is derived.
The recipe has two steps. First we take the current ISO week number and year and turn it
into a short, human-readable key: something like 2026-W32. Then we hash that
string down to a single integer, and that integer is the seed for the generator.
The generator itself is deterministic. Feed it the same seed and it produces exactly the same 280,000 tiles, in the same order, every time — the same strata boundaries, the same gravel, the same lava pockets, the same vault columns. So "the world for week 32 of 2026" is not a file. It's a calculation that anyone can run and everyone agrees on.
That has three useful consequences:
- No coordination is needed. Your browser works out the week, derives the seed, and builds the world locally. The server does the same thing independently. Neither has to tell the other anything, and they can't disagree.
- Rotation is free. Nobody has to run a job on Monday morning to build a new world. The week number changes, so the seed changes, so the world changes. The rotation is a side effect of the calendar.
- The server can check your work. This is the big one, and it's what makes the leaderboard trustworthy at all.
Why a shared seed is also an anti-cheat measure
Because the server can regenerate your exact world from the same seed, it independently knows what's in every tile. When your client says "I just mined ore at column 84, row 512", the server doesn't take that on faith. It regenerates the world, looks at column 84 row 512, and checks two things: was that actually an ore tile, and has anyone already claimed it on your save?
If either check fails, no credits are awarded. The same applies to artifacts and, most importantly, to the five Seals — a Seal's identity is derived from the depth band its tile sits in, so the server can tell you recovered the Granite Seal specifically, and a client can't simply announce that it has all five.
We think this is worth spelling out because it's a genuine design benefit that falls out of a decision made for a completely different reason. We picked a shared world to fix the leaderboard's fairness. It happened to also make the leaderboard hard to fake.
What a week does to the pacing
The last thing the weekly cycle bought us was a rhythm. Strata's real objective — the Deepstone Compact — is a long arc: find five Seals scattered from 48 to 1,105 metres down, open the Core Vault at 1,330, and carry what's inside all the way back to the surface. Nobody does that in one sitting, and it would be a strange thing to attempt in a world that only existed for you.
A week is about the right window. Long enough that the Compact is a real goal you can chip away at across several evenings; short enough that a bad start isn't permanent. When the world rotates, your progress in it is archived, a fresh expedition begins, and the boards clear. Achievements you've earned stay with you across every world you've ever dug — the reset is a new race, not a punishment.
Would we do it this way again?
For anything with a leaderboard, yes, without hesitation. The instinct with procedural generation is that more variety is always better, and for a purely solo experience that's probably true. But the moment you put a scoreboard next to it, variety between players stops being a feature and starts being noise in your measurement. A shared seed costs you almost nothing technically and it turns a ranking of luck into a ranking of skill.
The version we'd warn against is the middle ground — a random world per player plus a leaderboard, which is where we started and where a lot of games sit. It looks fair. It isn't. It's just difficult to notice, because the players who got good worlds have no reason to complain and the players who didn't assume they were bad at the game.