In this post (9 sections)
  1. Measuring boredom
  2. A director for the city
  3. The loan shark has friends now
  4. Fights you can read
  5. Less noise, more signal
  6. Built for the phone in your hand
  7. Did it work?
  8. What we learned
  9. What’s next

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:

~1fight per run
~3choices that mattered
~29pop-ups about prices and the loan shark

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.
A story card: a stranger offers product at half price, with two choices and their oddsThe outcome card: what happened, with green and red chips for money and heat
Every choice shows its odds or its cost before you pick it. Afterwards, an outcome card tells you what happened, with chips for the money, heat and health that moved.

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 new-game screen with Chill, Street and Warzone pace options above the mode cards
Chill, Street or Warzone. On Street, a typical 30-day run now brings about a dozen decisions and three or more fights; Warzone brings half again as many of both.

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.

The Lenders card: a $20M loan from Meridian Holdings due in 10 days, and the ladder of five lenders below it
The Bank tab. Pay a lender on time and your next loan from them is cheaper — the stars next to Vinnie and Kessler.

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.

The Security card: current security detail and the next tier with its price and daily upkeep
Security scales your side of a fight the way the threats scale theirs.

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.

A confirmation card: Hit Don Pablo's HQ? Their crew has 130 HP and hits for 25. Your odds right now: 0%.
The warning that would have saved our playtester.

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.

The fight screen: You versus Home Invaders, health bars, a 100% odds meter and five actions
Attack, take cover, run, bribe or give up the stash. The odds meter updates every round.

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.
The Morning Report card summarizing overnight newsA story card showing 2/3 and a Skip 2 more button
Left: one card for everything that needs no answer. Right: when decisions pile up, skip the rest and play it safe.

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.

The Burner feed on a phone, grouped by day with colored chips for money and heat
Everything that happened, and what it cost.

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.

The travel card: a glowing arc from Atlanta to Bangkok on a dark world map, with the plane near the end
The route draws itself, then the plane flies it. Tap anywhere to skip — you'll travel a few hundred times a game.

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.