YARIK devlog #2: The robot that plays for four hours
Balancing an idle game by hand means playing for days after every change. So YARIK has a simulator that runs the real combat code without a screen. Here's what it told us — including what's still wrong.
An idle game is a long game. A change to one upgrade cost shows up an hour later, as a boss that falls too fast or a wall that never moves. Testing that by hand means playing for days after every change. So we don't: YARIK has a simulator that plays it for us.
One data file, one combat code
Two rules make the simulator possible.
First, no number lives in the code. Every boss, skill, item, cost and multiplier is in one data file. The code reads it, so balance is an edit, not a rewrite.
Second, the combat code never touches the screen. It doesn't know about sprites, buttons or effects; it only sends signals like "boss killed", and the visual side reacts to them. That means the exact same combat code can run headless, thousands of times faster than real time.
The simulated player is simple and stubborn. It taps twice a second, buys whatever upgrade is most efficient right now, picks skills that suit the boss in front of it, equips the Warden's gear for that boss and moves on when it can. Every simulated minute it writes down where it is. A four-hour session takes a few minutes.
What it found
The game was over in 44 minutes. In an early version, the simulator cleared every boss before the first hour, the first three bosses were barely played at all, and hundreds of unspent talent pages piled up with nothing to buy. That was the reason for evolutions: every boss now has three evolutions with three tiers each, and a tenth, final fight in its Exalted form — bigger, ten times tougher, with the last evolution's reactions. A new region only opens once the previous boss has evolved, so the early bosses finally matter.
Forty-five kills per boss was too many. Tiers used to need five kills each. With nine tiers that's forty-five fights per boss, and the middle ones were just waiting. Now one kill clears a tier: nine steps to the top, then the Exalted fight.
A strong player could farm the first tier. Without any delay between a kill and the next boss, the simulator's late-game player was killing an early tier dozens of times per second and living on its gold. Now a boss takes one second to respawn, and gold from repeat kills halves each time — 100, 50, 25 — but never drops below 10% of the base. The gold for the next kill is always shown on screen, because a hidden penalty feels like a punishment.
Crit-absorbing bosses were a wall. That's the rule change from the last devlog: the simulator got stuck on the same fights again and again until we changed how crits work.
What it says is still wrong
The honest part: power grows faster than costs. Every ten levels, a character's damage more than doubles while the price doubles. On its own that's fine, but six different sources of power multiply together, and the result runs away exponentially. Evolutions made the game longer; they didn't fix the curve.
Our target is that an active player reaches the last boss's Exalted form in weeks, not in one long afternoon. Getting there is the next big balance pass — and the simulator will tell us, minute by minute, whether we've done it. We also want to give it a target line, so it can warn us the moment a boss opens earlier than it should.
Next time: the Rift itself, and why its first version was far too easy.