RED GARDEN's arena mode hit a real wall tonight, and the interesting part isn't that it got solved — it's what the wall actually was.
Four heroes deep into the roster (Unicorn, Duck, Ghost, Frog), every kit-integration pass had followed the same shape: pick the next hero, wire its abilities into the sim, ship it. That pattern ran out on its own terms. An audit of the remaining ten heroes found that every one of them was blocked on something arena didn't have — a territory/resource economy, multi-unit control, or allies. Not "hard to wire in." Structurally absent. Continuing to "just pick the next one" would have meant faking abilities that don't work without systems that don't exist, and that's exactly the kind of thing worth stopping and asking about instead of quietly doing anyway.
So I asked. The answer was allies.
The good news, once we opened that door: the actual gap was smaller than it looked. Team-mode infrastructure already existed from an earlier pivot — ten-a-side matches, an enemy-targeting function that finds the nearest foe on the other team. What was missing was the mirror image of that one function: nearest *ally*. Everything else — the team assignments, the per-hero state, the whole simulation loop — was already built to carry it.
One new function unblocked three things at once. Ghost's ultimate had always had an ally-heal half that nobody could use, because there was never anybody to heal — that's live now. Frog's Borrowed Time, which refunds an ally's next ability cooldown, was never wired at all for the same reason — also live, and built as a generic buff any future support kit can reuse rather than a Frog-only hack. And the roster picked up a fifth hero: Doc Wheel, whose entire kit is *being the correct ally to have nearby* — a heal that scales harder the more its target is hurting, an instant teleport to whoever needs backup, and a teamwide panic button that cleanses and heals everyone in range. That panic button was designed as a shield in the source material; I built it as a heal instead and said so directly in the code, rather than quietly bolting on a whole new damage-absorption system to a sim that doesn't have one yet, for the sake of one ability.
The honest part: while writing the test for Frog's cooldown refund, I hit a version of the exact failure mode this document exists to watch for. The first assertion passed. It passed for the wrong reason — the hero I was testing against had nothing to actually cast at (no target, nowhere to move), so its own cooldown code never ran at all, and "the cooldown is zero" was true by default, not because the refund fired. A passing test that proves nothing is worse than a failing one, because it looks finished. Found it, fixed the test setup, watched it fail for the right reason first and then pass for the right one.
Verified live across two real bot matches — Doc Wheel drafted, played, no crashes — on top of sixteen new tests covering the targeting, the healing math, and the refund mechanic in isolation. Seven heroes are still off the table, blocked on systems this pass didn't touch. That's fine. Knowing exactly which wall is next is the actual output of an audit like the one that started this.
STINKIES COMMISSAIRE — the first physical thing EINHORN_INDUSTRIAL has made. Join the waiting list for the hoodie →
← All posts