DEV Community

dev game
dev game

Posted on

Why The Binding of Isaac Bet on Flash and ActionScript: The Dying Plug-in Behind a 5-Million-Copy Roguelike

The short answer: The Binding of Isaac exists because Adobe Flash made a blasphemous Zelda-roguelike cheap to try, and Rebirth exists because Flash made it impossible to grow.

Edmund McMillen and Florian Himsl built the original 2011 game in Adobe Flash, listed as its engine on Wikipedia, released it to Steam in September 2011 after a week-long game jam, and watched Let's Play videos carry it to over 3 million copies by July 2014. When they wanted more rooms, more enemies, more synergies and console ports, they hit Flash's ceiling after the Wrath of the Lamb expansion in May 2012. Developer Nicalis then rebuilt it with what Steam calls an all-new highly efficient game engine with 60fps on most PCs as The Binding of Isaac: Rebirth in November 2014. Combined sales passed five million by July 2015.

Most retrospectives stop there: Flash was a mistake, Rebirth fixed it. I think that misses the point. Flash was not a mistake that succeeded despite itself. It was a dying-but-not-yet-dead distribution hack that let two developers take a religious risk no console publisher would touch in 2011 — and its technical flaws quietly shaped the dungeon design we now call genius.

What Flash actually was in 2011

If you only know Flash as "that thing that played videos," here is the version that matters for games.

Adobe Flash was a multimedia platform for animations, browser games and rich internet apps, programmed in ActionScript, an ECMAScript/JavaScript sibling that compiled to bytecode for Flash Player. It was built for timeline vector animation first, interactivity second. Early versions offered almost no scripting; ActionScript 2.0 and 3.0 added real programming, with ActionScript 3.0 running up to 10x faster on a rewritten virtual machine — but still inside the Flash Player plug-in, distributed as SWF files.

By 2011 Flash was already under siege. Apple would not allow it on iPhone, browsers were flirting with HTML5, and performance on complex games was notorious. Adobe would not formally stop supporting Flash Player until December 31, 2020, blocking content from running on January 12, 2021 in favor of HTML5, WebGL and WebAssembly — but any Flash veteran in 2011 could feel the clock ticking.

Why pick it anyway?

Why Flash was rational for McMillen and Himsl

Three facts from the original game's history explain the bet:

1. They already spoke Flash. McMillen is described as known for his Adobe Flash games with unconventional visual styles. His Meat Boy was a 2008 Flash game before Team Meat rebuilt it as Super Meat Boy in 2010 on a custom Tommunism Engine for Xbox 360 and Steam, selling over a million copies by January 2012. In other words, the team had already run the Flash-prototype-to-custom-rewrite play once and won.

2. They needed a one-week jam stack. Isaac was the result of a week-long game jam to make a Zelda-inspired roguelike that let McMillen process Catholic vs. born-again family conflict through game design. Flash + ActionScript let a designer-artist and a programmer draw 2D sprites, wire tears-as-bullets, bombs, hearts, keys and shops, and ship to Windows without negotiating a console cert process.

3. They could afford a weird risk. After Super Meat Boy's financial success, McMillen considered Isaac a risk he could take, releasing it to Steam in September 2011 without much fanfare. The plot — a mother hearing God's voice demanding her son's sacrifice, a child fleeing into a monster basement — got Nintendo to back out of a later 3DS port over religious themes. No publisher greenlight was needed on Steam + Flash. Popularity came sideways, partially from Let's Play videos showcasing the title.

Gameplay fit the stack: a top-down dungeon crawler with 2D sprites, procedurally generated floors, twin-stick tear shooting, stacking passive items, permadeath and boss-per-floor. Small, self-contained rooms. Clear a room, it stays clear. Move floor to floor, never return. That is both a love letter to The Legend of Zelda dungeons and, as I argue below, a perfect way to hide Flash's memory and performance limits.

What Flash gave Isaac

  • Zero-friction iteration. Need a new tear effect that stacks with 50 others? In ActionScript you could prototype it in hours. The game's signature — passive items whose effects build into broken combinations — needs that speed. Rebirth would later advertise 450+ items including 160 new unlockables and 4 billion seeded runs, but the stacking idea was proven in Flash first.
  • A readable 2D look that recorded well. Hand-drawn grotesque sprites on flat backgrounds compress well on YouTube. When runs are procedurally generated and permadeath wipes you, every Let's Play episode is different. Flash did not create that virality, but it did not get in the way.
  • PC-first distribution without port debt — at first. Windows, then OS X and Linux. No need to think about PlayStation Vita memory or Wii U shaders while testing whether poop physics is funny. Steam's own page for Rebirth still jokes: "Did we mention the poop?"

What Flash cost Isaac

The same page that lists Flash as the engine also says McMillen and Himsl were limited from further expansion due to limitations with the Flash platform. Players felt it as slowdown: late-game builds with dozens of tears, familiars and particles chugged. Developers felt it as a port wall:

Rebirth's pitch is blunt about the fix: all-new highly efficient game engine, dynamic lighting, 60fps, integrated controller support with analog movement, multiple save slots, 500 hours of gameplay. Reviewers praised gameplay improvements while criticizing graphic imagery, and the expansions kept adding content at the cost of rising difficulty.

So far this is the standard story. Here is where I diverge.

My take: three contrarian readings

These are my interpretations, not verified facts. I label them so you can disagree productively.

1. Slowdown was a secret balance patch.

Everyone complains Flash Isaac slowed down when your build got strong. What if that slowdown was the balance?

In Flash, more tears on screen meant lower framerate, which gave you more reaction time to dodge. The stronger you got, the slower the world became — an automatic rubber band. When Nicalis moved to a locked 60fps engine, that crutch disappeared. Suddenly the same bullet patterns at full speed felt brutal, and Rebirth had to retune via new enemies, new bosses and harder floors. My claim: Rebirth's notorious difficulty spikes are not just "more content," they are the cost of removing accidental bullet-time. If you are prototyping a bullet-heaven today in HTML5 or Godot, do not just copy Isaac's room layouts. Decide whether you want performance to be neutral or to be a hidden difficulty governor, and design around it deliberately.

2. Picking a dying platform was the moat, not the blunder.

Conventional wisdom: smart devs avoid dying tech. Isaac suggests the opposite for weird games.

In 2011, Flash was unfashionable enough that expectations were low, tools were free-ish, Newgrounds veterans would help you, and no platform holder could veto a Bible-horror roguelike about child sacrifice. If McMillen had pitched "Zelda roguelike about religious trauma" for Xbox Live Arcade certification in 2011, it would have died in a meeting. In Flash on Steam, it cost a week plus polish.

The trick is timing a controlled burn. Flash died in 2020-2021, nine years after Isaac shipped and six years after Rebirth escaped it. McMillen got the low-cost experimentation window and got out before the plug-in was blocked. My rule from this: dying stacks are fine if you have an explicit exit plan (like Meat Boy to Super Meat Boy, Flash Isaac to Rebirth) and your game does not need the dying stack's unique distribution after year two. Do not build a live-service game on a dying plug-in. Do build a single-player prototype that needs weirdness permission.

3. Room doors were garbage-collection curtains.

Here is my most speculative, most useful idea: Isaac's beloved room-by-room structure was not only Zelda homage. It was Flash memory management disguised as design.

Flash Player was infamous for unpredictable pauses when cleaning up objects. If you keep hundreds of tears, enemies and particles alive in one continuous open world, those hitches become visible. If you lock the player in a small room, resolve combat, let the player loot, then open a single door and load the next small room, you get a natural moment to discard bullets, recycle sprites and reset. Players read it as tension-and-release. Engineers get a free cleanup point.

Whether McMillen and Himsl did this consciously does not matter. The lesson holds: constrain your level streaming to your runtime's weakest subsystem. Zelda gave them permission; Flash gave them a reason. Modern web devs hitting HTML5 garbage-collection jank on low-end Chromebooks should steal the same curtain — door transitions, elevators, short corridors — rather than fighting the collector head-on.

What indie devs can steal this week

  • Prototype heresy cheaply. If your theme risks a platform rejection, start on the most open stack you already know (today: HTML5, LOVE, Bitsy, Twine). Prove fun before you pay for ports.
  • Design rooms for your runtime. If your engine stutters with 200 live bullets, do not design 200-bullet open fields. Design 20-bullet rooms with doors.
  • Make stacking the game. Isaac's 450+ items work because effects stack into stories ("my tears are now homing poison bombs that orbit me"). One synergistic system beats ten isolated power-ups.
  • Plan the rewrite at prototype time. Note what you are not building: consoles, 60fps lock, mod API, online co-op. Rebirth later added local co-op, then full 4-player local in Repentance and online co-op in Repentance+. You do not need that on day one, but leave seeds, RNG and save format clean enough to port.
  • Recordability is a feature. Permadeath + seeded dungeons + grotesque readable sprites = Let's Play bait. If you want virality, optimize for "every run tells a different 10-minute story."

Feel these systems in your browser first

You cannot legally play Flash Isaac in a modern browser without preservation builds, but you can train the underlying skills in free HTML5 games — the open standards that replaced Flash. These are not clones, they are skill trainers for Isaac's three verbs: navigate maze rooms, dodge in tight spaces, and think in stacking builds.

For maze-room thinking, try Bad Ice Cream. You play an ice-cream character collecting all fruit while reshaping the maze itself — break ice to open paths, build walls to block enemies, and always keep an escape route. Isaac never lets you rebuild walls, but the discipline is identical: do not chase loot into a corner you cannot leave, and use the room geometry to split enemies into manageable groups.

For dodge-and-counter timing under pressure, try Iron Snout. You are a pig fending off endless wolf waves from both sides with punches, jump kicks and caught axes. There are no tears or hearts here, but Classic endless survival and Sudden Death one-hit mode teach the same center-stage positioning and pattern recognition that carries Isaac boss fights when your build is weak and you must win on reflexes.

For stacking logic, try Stick Merge. You merge identical pistols into submachine guns and rifles to boost damage on a shooting range, deciding when to merge now versus waiting for a bigger tier. It is far simpler than Isaac's 450-item synergies, but it trains the core economic instinct: keep your strongest tool in the active slot, stack multipliers during high-output windows, and treat every pickup as part of a build, not a one-off.

Play each for 10 minutes and you will feel why Flash Isaac worked: small rooms you can read at a glance, dodges you can learn in seconds, and builds you can theorycraft for hours.

Bottom line

Flash did not make Isaac great. It made Isaac possible, then made it necessary to remake it. That is a healthier way to view niche tech than "pick winners only." Pick the unfashionable stack that lets you ship your weirdest idea this month, understand exactly which wall will force a rewrite, and start saving for that rewrite the day you launch.

Rebirth's 60fps engine, console ports and mod support were the payoff — but without a laggy Flash basement full of crying children, there would have been nothing worth rebuilding.

Top comments (0)