Devlog
Idle Broker has six generator tiers and seven cities. The tiers are the shop you climb; the cities are the permanent multipliers you climb it in. Every city multiplied your income by six. Not one of them touched a single price. I knew that was wrong in principle for months before I found out how wrong it was in practice, and the answer was that the last city finished the entire shop in less time than it takes to read this paragraph.
The report was “slow early game, then it rushes”, which is the kind of feedback that is obviously true and completely useless. Slow compared to what? Rushes where? Every idle game speeds up — that is the genre. The question is whether it speeds up on purpose.
So I stopped reading the code and wrote something that could answer it. lib/economySim.ts is a discrete-event simulator that plays a whole run under a stated policy — buy the cheapest payback first, or climb the ladder tier by tier — and reports when each generator was first bought, when it was automated, and when the run crosses one, two, three and five stars. The important part is that it does not reimplement the economy. It imports the same lib/economy.ts the game charges you from. A simulator with its own copy of the maths measures the copy.
The generator ladder was fine. Past the opening two steps — which are deliberately even, after an earlier fix for a payback inversion — the gaps between tiers roughly double, and the top tier arrives right about at the first star: forty-nine minutes in, against fifty-two for the star. That is an idle curve doing its job. The “then it rushes” was not in the ladder at all. It was that the ladder got shorter in every city:
| City | Time to the top tier — before | after |
|---|---|---|
| New York | 48m 58s | 48m 58s |
| London | 7m 53s | 49m 05s |
| Tokyo | 33s | 49m 05s |
| Moon | 17s | 49m 05s |
Forty-nine minutes of shop in New York. Seventeen seconds of it on the Moon. Every city multiplied income by six and left the price tags where they were, so each step up the map compressed the whole six-tier ladder by another factor of six. By the last city the shop was not a progression, it was a formality — you bought everything at once because everything was free.
Advertisement
The fix is small and the smallness is the point. Four functions price things — a generator, a bulk buy, an automation, and the “how many can I afford” calculation behind the MAX button — and all four get their multiplier from one function. So the region factor goes in there, once, and every price in the game inherits it. A Hong Kong desk now costs 36× a New York one and earns 36× as much.
Before committing to the full factor I measured the half-measures, because “scale prices a bit” sounds like the moderate, sensible option:
| Price exponent | London | Tokyo | Moon |
|---|---|---|---|
| 0.00 — no scaling (the bug) | 7m 53s | 33s | 17s |
| 0.50 — square root | 20m 11s | 3m 12s | 33s |
| 0.75 — three quarters | 31m 28s | 11m 59s | 3m 12s |
| 1.00 — the full factor | 49m 05s | 49m 05s | 49m 05s |
Anything short of the full factor just moves the collapse further up the map. At three quarters the Moon still finishes the shop in three minutes. There is no moderate version of this: either prices carry the city's multiplier or the city eventually erases the shop.
Each of these is a line of code that looks optional and is not. I am writing them down because the version of me that comes back to this in a year will not remember.
Advertisement
This is the objection I expected, and it is a fair one. If income and prices both multiply by six, moving is purchasing-power-neutral. What did you buy with those stars?
The star bar. The prestige threshold grows ×3 per region while income grows ×6, and that gap is the entire reward. The shop plays the same length in every city, but the stars arrive about twice as fast in each one. Measured, on the ladder policy: three stars takes 1h 44m in New York, 54m in Tokyo and 30m on the Moon.
That factor-of-two per region is the pacing the map was always reaching for. It just used to be buried under a factor of six that deleted the shop instead.
I want to be straight about this rather than bury it. If you had a deep desk in a late city, this change is a one-time nerf and you will notice it. Your coins, your generators and your income are untouched — but what they buy moves. A Moon desk holding 120 of every generator used to be a hundredth of a second from its next unit, measured, and is now about eight and a half minutes from it.
That is the missing factor arriving all at once, and it lands you exactly where a New York player of the same size stands. It is also a one-time cost rather than an ongoing one: moving city now multiplies income and prices by six together, so a move is purchasing-power-neutral from here on, and after a single prestige everyone is on the measured curve.
No save was wiped and none needed to be. The plausibility floor still accepts every save written before the change, which is exactly why it was left unscaled.
The simulator should have existed first. Every number in this post was available from day one — the pricing functions were right there, and nothing about “income scales, prices do not” needed a tester to discover. What was missing was anything that would say so out loud. A balance problem that only shows up forty hours in is not going to be found by playing; it has to be computed.
The simulator now runs in the test suite, and two of those tests exist purely to stop it drifting away from the game: one asserts the ladder is region-invariant, and one asserts the simulator's own price exponent still equals what the shop charges. Without that second one a future change could quietly make the simulator describe a game that no longer exists, which is a worse failure than having no simulator at all. If you want the practical version of all this, it is in the prestige and regions guide; the curve that this one sits on top of is in the prestige curve that collapsed.