Devlog
Every idle game I had played worked the same way: you buy a generator, a number goes up, and that number is added to your balance forever, a slice at a time. I built Idle Broker that way first. Then I threw the engine out and replaced it with something that produces the exact same average income and feels nothing like it. These are the notes from that rewrite — what changed, what it broke, and the one number that turned out to matter more than the design.
A coins-per-second engine is trivial to write. You keep a running total of everything the player owns, multiply by the tick length, and add it. Twenty times a second, forever. It is also, I eventually admitted, completely inert. The player buys a thing, the rate goes from 4.2 to 4.7, and nothing else in the world acknowledges that this happened. There is no event. There is no moment. There is a slightly faster smear.
The theme made this worse rather than better. Idle Broker is set on a trading floor, and trades are not a smear — a trade is placed, it takes time, it settles, money arrives. The mechanic I had written was actively contradicting the fiction on the screen. So the generators stopped paying passively and started running timed trades: a trade begins, runs for a fixed duration, and pays a single lump sum when it settles.
The button kept a trade of its own for a while: three seconds, one dollar. It came out later, and that is its own small story — see the postscript at the end.
Advertisement
The constraint I set myself was that the economy must not move. Idle game curves are fragile — every cost, every quest reward and every prestige threshold is tuned against expected income, and if that income shifts, all of it drifts with it. So the payout of one completed trade is defined as:
payout = baseRate × baseDuration × 4 × count × multipliers
Divide that by the duration and the duration cancels out. Average income per second is baseRate × 4 × count, which is the old passive rate times a flat four. Same shape of curve, bigger and rounder numbers on screen. The only thing that changed is that the money now arrives in visible steps instead of a trickle.
Durations are staggered so the desk never falls into lockstep. The cheapest generator settles fastest, which also means the early game has something happening every few seconds:
| Generator | Trade length | Base rate | Payout per trade, 1 owned |
|---|---|---|---|
| Intern | 5s | 0.1 | $2 |
| Coffee Cart | 6s | 0.5 | $12 |
| Stock Portfolio | 8s | 4 | $128 |
| Investment Fund | 10s | 20 | $800 |
| Hedge Fund | 12s | 100 | $4800 |
| Crypto Exchange | 15s | 400 | $24000 |
An Intern pays $2 every five seconds. A Crypto Exchange pays $24,000 every fifteen. Both are worth exactly four times their old passive rate, and both now produce an event you can watch land.
Owning more of a generator speeds its trades up — at 10, 25, 50 and 100 units the duration drops to 93%, 85%, 72% and finally 60% of base. The intent was flavour: a bigger desk works faster. What I did not think through is that the payout formula uses the base duration while the income calculation divides by the actual one.
Which means the speed-up is not cosmetic. It is a straight income multiplier of 1 ÷ 0.6 — a hair under 1.67× — for taking a generator to a hundred units. I found this by staring at a spreadsheet wondering why a stack of Interns was outperforming my model.
I kept it. It gives depth to a decision that is otherwise pure arithmetic — going wide on one tier beats spreading thin, and the milestones give you something to aim at that is not just the next unlock. It is the only piece of this economy I did not design on purpose, and it is probably the most interesting one.
Advertisement
The header number stopped meaning what it said. “Return/s” used to be a fact — it was literally the number being added every tick. Now it is an average across trades that have not settled yet. Players watched their balance sit still for eight seconds and reported the game as broken. It was not broken; the display was lying by omission. The fix was not code, it was explaining it in the guide and putting a progress ring on every generator so the waiting is visible.
Progress rings are surprisingly expensive. The first version re-rendered every generator row about fifteen times a second to move the fill bar. On a phone with a dozen generators running, that is a measurable amount of a battery for an animation nobody is studying closely. The bars are now a pure CSS keyframe handed a duration — React sets it once when the trade starts and does not touch it again until it settles.
Existing saves had to survive it. Anyone mid-run owned generators that, under the new rules, would earn nothing until someone told them to start trading. Loading an old save silently grants automation on everything already owned, so returning players keep the income they went to sleep with instead of waking up to a dead floor and a support e-mail.
The button that placed its own three-second, one-dollar trade is gone. It was the last thing in the game that contradicted the rule everything else follows — your assets earn, you don't — and it was quietly teaching new players the wrong lesson for the first minute of their run.
One press now starts a trade on every asset you own that isn't automated, with a badge counting how many that is. The button visibly loses purpose as you automate, which is exactly the arc the game is about. Two things had to be fixed to make that safe. A run with no click income and nothing owned cannot earn at all, so every run — including every prestige — opens with enough seed capital for one Intern. And Midas Touch, which multiplied click income that no longer exists, now adds its bonus to trades you start by hand and not to automated ones. That turned out better than what it replaced: there is now a reason to keep touching the game after the floor runs itself.
Deleting a mechanic is cheaper than it looks and more expensive than you expect. The delete itself was twenty minutes. Finding everything that quietly depended on it — an upgrade, the tutorial's ordering, a quest chain sized for an auto-clicker that had already been removed months earlier — was the rest of the day.
The early game is measurably slower to enjoy — the numbers are small and an Intern takes five seconds to pay. That is a real cost and I do not want to talk around it. But it buys the thing the genre is actually about: the moment you buy your first automation and the desk starts working without you is now a genuine change of state, not a slightly steeper line on the same graph. You went from doing the work to owning the work.
If you want the numbers rather than the reasoning, the automation payback guide works out when each tier pays for itself, and the next devlog covers the prestige curve that collapsed on me twice before the arithmetic held.