In this post (9 sections)
The best feedback this game has ever had was a shrug.
A friend played a long run of Endless mode on the new build, got to about two million dollars, and said it was pretty fun — and then, almost as an afterthought: “There really weren’t that many fights, or action, or random things happening where I get options.” They’d also tried to attack one of the game’s big suppliers, died instantly, and couldn’t scroll the little log that was supposed to explain what had happened.
Every one of those is fixable. The interesting part was finding out how big the “nothing happens” problem really was.
Measuring boredom
The game already has a simulator that plays the real engine with bots. So we pointed it at the question: in a normal 30-day run, how often does the game actually ask you something?
The answer was a little embarrassing. On average a run produced:
So the game felt busy — it interrupted you constantly — but almost none of those interruptions asked you to decide anything. A price spike in Miami is information, not drama. That’s the difference our playtester was feeling.
A director for the city
Games that feel alive usually aren’t rolling independent dice for every event. Left 4 Dead famously used an “AI director” that watches the tension and decides when the next wave should hit; RimWorld has storytellers with different temperaments. We borrowed the idea, small.
Drug Warz now has a director that runs every night. If nothing interesting has happened for a while, the chance of a scene goes up — 45% after an eventful night, then 65%, then 85%. When a scene fires, it’s drawn from a deck of 44 story events, each with its own requirements and cooldown:
- On the street: a stranger with half-price product that’s a little too cheap, a door kicked in at 3 AM, a kid mugging an old lady two blocks from your corner, a rapper who wants you on retainer and films everything.
- With your crew: someone’s count is light again; someone got arrested and this is their one phone call.
- With the plugs: a supplier wants an exclusive, or needs a suitcase moved across town, or sends a photo of you taken yesterday.
- As you get rich: a reporter digging into you, a councilman who’d like a “donation”, a contract on your head, a private island for sale, and — once — a man in a very good suit from an agency that doesn’t have a name.


Some choices come back. Leave a crew member in jail and, a few days later, you may hear they’re talking to the district attorney. Rob a rival crew and they’ll find you. A plug you did a favor for remembers. None of this is complicated code — each scene can schedule a follow-up for a future night — but it’s what makes the city feel like it’s paying attention.
Not everyone wants the same amount of chaos, so you now pick a pace when you start a run:

The trap of scaling everything
Here’s a lesson we learned the hard way. A $500 bribe is a big deal on day 3 and meaningless at $50 million. So story events scale their numbers with your wealth.
Our first version scaled them a little too faithfully. The simulator immediately showed rich players stalling: a careful player sees a couple of hundred scenes a year, and if each cautious answer costs even 2% of your fortune, that quietly eats your growth. Worse, a few costs were written as a percentage of the cash in your pocket — which meant a street cop shaking you down could cost ten million dollars.
The fix was to make amounts grow much slower than your wealth (roughly with the 0.65 power of your net worth). A scene still stings at $100 million, but it can’t bankrupt you. We applied the same thinking to bribes, which are now capped by who you’re bribing — a beat cop tops out at a few thousand dollars no matter how rich you are.
The loan shark has friends now
In the original 1984 game, the loan shark is the clock: you owe money, it compounds, you’d better hurry. We kept that — you still start owing Vinnie the Shark $5,500 at 10% a day, due on day 11.
But in Endless mode you don’t stay small, so why should your creditors? Who will lend to you now climbs with your net worth:
| Lender | Who they are | Takes your call at |
|---|---|---|
| Vinnie the Shark | Lends out of the back of a laundromat | anyone |
| Mr. Kessler | Banker for a regional crime family | $250K |
| Meridian Holdings | A private entity. No address, no faces | $5M |
| The General | President-for-life of a small island republic | $50M |
| La Viuda | A cartel boss who is richer than you | $250M |
Each step up lends more, charges less and gives you longer. And each one collects differently. Be late, and every other day a collection card arrives: pay up, let them take what you have, beg for more time, or fight the people they sent. Three strikes and they stop asking and start hunting. Vinnie’s guys break bones. Meridian freezes your bank account and leaks your files to the feds. La Viuda takes your cities, one at a time.

Hiring protection
Once the hit squads coming for you are professionals, a switchblade isn’t enough. You can now hire security — a bodyguard, a detail, a private military unit, eventually a personal army. They fight beside you every round and soak part of every hit, for a daily wage. Miss payroll and they walk.

Fights you can read
Our playtester’s death was the most useful thing that happened all week. They attacked a supplier’s headquarters with a starting weapon and died in two rounds — and nothing in the game had warned them.
Now, every fight shows the odds if you fight it out. The game plays the fight a few hundred times in the background with your current health, armor, ammo and security, and shows how often you’d win. Before you hit a plug’s HQ, you see those odds too.

The fight screen itself was rebuilt as a face-off, with health bars that slide, damage numbers that pop, and a new move: Take cover, which takes most of the next hit and steadies your next shot. You can still run (every failed attempt makes the next more likely), bribe the law, or hand over your stash and walk away alive.

Less noise, more signal
More things happening created a new problem: deep into a run, a single night could bring half a dozen pop-ups to dismiss. So:
- Everything that happened overnight that doesn’t need an answer is folded into one Morning Report card — income, interest, heat change and the news, in one place.
- Cards that do need an answer show where you are in the pile (“2/3”), and a Skip button answers all the rest with the cautious option. Fights can’t be skipped; everything else can.
- If you close the tab in the middle of a decision, it’s still waiting when you come back. No dodging the debt collector with a refresh.


And the log our playtester couldn’t scroll is gone. In its place is a burner phone: the full history of your run, newest first, grouped by day and city, filterable by money, danger and business, with a badge for what you haven’t read. On a phone it slides up from the bottom and you drag it down to close; on a wide screen it stays docked beside the game.

Built for the phone in your hand
Most people play on a phone, so the earlier part of this rework (v0.6) rebuilt the interface around a thumb: a tab bar at the bottom, a market that reads as cards instead of a spreadsheet, and a trade sheet with a slider instead of tiny number boxes. v0.6 also gave every city a memory — a cheap market tends to stay cheap for a few days instead of re-rolling every morning — and turned the plugs into an endgame: build trust, get product fronted, then buy them out or take their city, and own all eight to become Kingpin.
The animation library behind all this, anime.js, got a major upgrade too, and we finally used the good parts: text that scrambles into place like a departures board, cards that spring in, fights that shake, and a travel route that draws itself across the map while the plane follows the curve.

Everything respects your phone’s reduce-motion setting, and all the sound is synthesized in the browser — there are no audio files to download.
Did it work?
Here’s the same bot that plays for an empire — trades, allies with plugs, takes cities, hires security — over a 365-day Endless run, 1,000 games before and after:
| Before | After | |
|---|---|---|
| Median net worth | $180M | $204M |
| Runs reaching $1 billion | 18% | 15.5% |
| Runs that ended in death | 9.2% | 0.5% |
The median player ends up richer and far less likely to die, even though far more is happening. The billion-dollar club got a little more exclusive; reaching it now means surviving hit squads, collectors and a lot more decisions. (To keep the very top of Endless worth chasing, owning all eight cities now makes every one of them pay 50% more.) Classic mode’s sensible strategies finish 30 days with between $2 and $6 million, and almost never die.
What we learned
Busy isn’t the same as eventful. The old game interrupted you constantly and still felt empty, because it rarely asked you anything. Counting decisions instead of events was the right measure.
Watch the people, then count. “There weren’t many fights” is a feeling. “One fight per 30 days” is something you can fix and check.
Scale carefully. Making a game work at both $2,000 and $200 million is mostly about deciding what should grow with wealth and what shouldn’t.
And deploy carefully. The first push of this update briefly broke the live game: our host skips any folder named node_modules when uploading, which is exactly where the animation library lived. It was down for about ten minutes before we moved the library and redeployed. Now there’s a step that copies it somewhere safe on every build.
What’s next
More scenes for specific cities, more for the late game, and a closer look at how often the richest players get raided. As always: change a rule, play a few thousand games, read the report, then ask real people whether it’s fun — because the bots can’t tell us that.
Play Drug Warz and pick Warzone if you’re brave. Vinnie’s waiting.
