Balancing 2,775 skill combinations: how the Forge in Wrecking Ball was tamed
The Forge is the feature I was most excited about in Wrecking Ball, and the one most likely to break it. Take any two ball skills that have reached level 5 in the workshop and fuse them into one: a single slot that does both. Explosive plus Burning. Chain lightning plus Poison. Prism plus Demolition.
With 75 skills, that's 2,775 possible pairs. No person can test 2,775 combinations. So the Forge was balanced the way everything else in this game is: by simulation, with the numbers written down.
The rules
- Both parents must be level 5 or higher, and the forged skill sits at the average of their levels, rounded down.
- While a forged skill exists, its parents leave the pick pool, and each skill can only be in one forge. Forging is a trade, not a free extra.
- Up to 10 forged skills. Unforging is free between runs.
- The daily run has no forged skills, so everyone plays it on equal terms.
Every one of the 2,775 pairs has its own name, in all 12 languages, generated in one batch and checked by a script for uniqueness, length and a blocklist. Each forged card is drawn in code: the two parents' cards cut diagonally, half each.
215 signature forges
Most pairs simply do both parents' effects. 215 of them are signature forges with a twist of their own, built from 47 twist types:
- Explosive + Burning: blasts set the bricks they hit on fire.
- Critical + Chain: crits throw lightning at three bricks.
- Frozen + Heavy: frozen bricks shatter, taking much more damage, and the shards hit their neighbours.
- Heavy + Sniper: hits tougher bricks harder, the toughest on the board hardest of all.
Each twist scales with the forged level and has its own cap, and the tests check that every twist actually changes the shot.
The baseline: weaker parent, slightly boosted
A forged slot's balls take the weaker parent's power factor ×1.15, and all their damage is ×0.85. Both mechanics already stack (a ball that explodes and burns gets value from both), so a forge doesn't need much on top. That rule alone kept most pairs sensible.
Most, not all.
Finding the runaways
A tool plays every pair at level 80 and compares it with the best single skill. Any pair over 1.3× that line is a runaway. Then, because deep boards break by cascades and level 80 saturates, a second tool takes each runaway to level 140 and bisects for the cap that brings it back in line.
The caps scale everything a pair does: its damage, blasts, chains, damage floor and Acid's health cut included. The final result: 71 of the 2,775 pairs are capped, with a median cap of 0.69. Ten pairs are capped below 0.1, mostly Acid pairs: Acid's cut to maximum health ignores depth, so paired with anything that hits often, it runs away by level 140.
The bug the Forge found: 400 hits a second
The most valuable thing the Forge simulation did was find a bug that had nothing to do with forging.
When I first ran the forged builds, every run hit the simulator's level-160 limit. Some pairs were doing absurd damage, and they weren't the ones I'd expected. The cause was hit floods: balls embedded inside bricks were hitting them on every physics step, 400 times a second. Different skills got there in different ways:
- Prism's piercing or Phasing running out while the ball was inside a brick,
- Big Ball growing into the bricks around it,
- Mortar lobs bounced back down by steel,
- Sniper re-aiming into the brick it had just bounced off,
- balls that pierced into a sealed pocket and rattled there until the shot timed out.
Forged pairs made it obvious, because a pass-through ball touching a new brick every few steps also fired its partner's area effect every time.
The fix:
- a ball inside a brick slides out without hitting it again,
- four times a second, a flood fill finds balls with no open path out of the board, and they drop back to the launcher,
- as a backstop, a ball can hit the same brick at most once every 0.05 seconds.
Nine skills that had quietly relied on floods were refit. Afterwards, the strongest pair fell from ×80 a plain ball to ×63, and the median pair from ×5.3 to ×3.4. One maxed run in four reaches the simulator's limit, not every run, which is where a game about breaking the game should be.
What I'd tell anyone adding combinations
- Count the combinations before you design them. Pairs grow with the square of the list. 75 skills is 2,775 pairs, and 100 would be 4,950.
- Balance the rule, then cap the exceptions. A simple baseline (weaker parent, small bonus) handles almost everything, and a measured cap list handles the rest.
- Test relative to your best single option, not against a fixed number, so the line moves when the game changes.
- Your strongest combinations are a bug detector. If something is wildly over, look at what the ball is physically doing before touching the numbers.