DOLLAR FOR DOLLAR

Two governments trade blows through one cross-river machine — you are the seam, and you keep the lights on as long as you can.

Desktop:
Drag from a factory to a crossing to reroute its flow. Click a crossing to surge it. That's all the levers there are — every one helps both banks.
Mobile:
Drag from a factory to a crossing to reroute its flow. Tap a crossing to surge it. That's all the levers there are — every one helps both banks.
Rate this game

No account needed.

Devlog

Devlog: DOLLAR FOR DOLLAR

At midnight the talks collapsed and the 50% tariffs went live. Hockey sticks, honey, auto parts. Carney called the terms "unfair and uneconomic" and promised dollar-for-dollar retaliation by September 8. Every outlet framed it the same way: two countries, squaring off.

I don't buy the framing. An auto part crosses the Detroit River seven or eight times before it's a car. Michigan and Ontario share a power grid. There is no "other side" of that river in any sense that matters to a piston. A tariff war between economies this integrated isn't a war, it's an autoimmune disease: a body attacking its own tissue and calling it defense. And "dollar-for-dollar" is the tell. Perfect symmetry of retaliation is only possible when you're punching a mirror.

So the game refuses to give you a side. You play the seam. A miniature Detroit and Windsor at dusk, one river, a bloodstream of trucks, and every part crossing, crossing back, crossing again, because nothing on this map is makeable on one bank alone. Both cities' lights run off one meter. They brighten together and dim together, always. Every lever you have, rerouting, surging a crossing, opening the Gordie Howe, helps both banks or neither. The decrees are the real ones, real dates, real quotes, and on September 8 the mirror decree lands and every wound the border carried northbound appears southbound too, reflected.

The whole argument ended up living in one line of arithmetic. I first wrote tariffs additively: each taxed crossing adds 50%, so three crossings cost you 150%. Felt like a spreadsheet. Then I made it honest. A part carries a cost multiplier, every gate multiplies it by one plus the rate, and delivered value is the reciprocal. Three crossings at 138% isn't 138%, it's 13.5x, and the car rolls off the line worth seven cents on the dollar. The trucks grow a black crust of tariff as they go, so you can watch a vehicle's worth get eaten lane by lane. Compounding isn't a mechanic I explain anywhere. You see it barnacled to the cargo.

The shared meter taught me something about stakes. In early builds a decent player could pin it at 100% from minute one to September 8, sixteen days of the game's central instrument sitting perfectly still. The fix was to let the ceiling fall. Every decree permanently lowers the best the grid can ever be again, so even flawless routing watches the maximum quietly sink. The lights never come all the way back. That one change turned the meter from a health bar into the thesis.

Pacing nearly killed it. My first cut ran a day in 27 seconds, which put September 8 seven and a half minutes in, and for the first two minutes nothing on screen changed. Cutting the day to 10 seconds sounded like changing one constant. It wasn't. Production and drain are both per-second, so a shorter day quietly stretches survival by the exact factor you shortened it. I had to rescale every term that touches the grid while leaving the physical machine alone: trucks drive at the same speed, the calendar just turns faster over them. Now the first decree hits at 33 seconds and the mirror lands around three and a half minutes, right when you've started to love the hum.

Two bugs earned their tuition. Every drag gesture was cancelling one pixel after it started, because the ground plane fired a pointer-leave the instant the cursor crossed anything standing on it; the fix was pointer capture, and suddenly rerouting felt like pulling water. And the audio stings were landing dead for hours because I was easing the drone's filter every frame at 60Hz, and an audio param timeline is last-writer-wins: every alert's flinch got overwritten 16 milliseconds after it fired. The hum is the score here, a heartbeat that thins and stumbles as the grid dies, and it turns out you can't hear a gasp if you're smothering it with reassurance sixty times a second.

The end screen doesn't congratulate you. It tells you how long you kept one body alive while it attacked itself, and how many dollars burned at the border on the way down. If you die before September 8, it tells you the retaliation landed anyway. It always lands on both banks. There was never anyone to fight on this map.

Watch

DOLLAR FOR DOLLAR · 4:59

Leaderboard

Loading…