Get AI summaries of any video or article — Sign up free
Legendary Game Dev Jonathan Blow | The Standup thumbnail

Legendary Game Dev Jonathan Blow | The Standup

The PrimeTime·
6 min read

Based on The PrimeTime's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Blow argues that rewind works best when it’s built into the game’s core system and designed into gameplay, not added as a reverse-state patch.

Briefing

Jonathan Blow’s long-running throughline—rewind in Braid, symbol-driven puzzle design in The Witness, and now the “fuse realities” premise in Order of the Sinking Star—centers on one idea: game rules should generate surprising complexity, not just enforce tension. In a mailing-list debate around Braid’s signature rewind mechanic, Blow pushed the view that undoing actions shouldn’t be a gimmick bolted onto gameplay; it should be a core technical capability, designed into the system so designers can build around it. The counterargument was familiar—rewind might drain the stakes of dying—but Blow’s counter was that tension can be replaced with other kinds of interest, and that replay control can even make games more satisfying. That stance traces back to his own experience playing older NES titles on emulators where save-state/rewind-like features let him shape how much repetition he endured.

That same philosophy shows up again when Blow describes how The Witness’s puzzle language evolved. Early on, he focused on rules that could make puzzles; later, he planned for symbol combinations to create “curve balls,” where the meaning of a rule expands as the game progresses. He frames good game design as the careful construction of simple rules that yield emergent complexity—situations players can’t fully predict from the starting conditions. He then draws a comparison to mathematics and computation: fractals and cellular automata explode into complexity from simple equations, suggesting there’s an underlying “engine in the universe” that designers exploit without fully articulating. Blow wants to make a game that stares at that phenomenon, treating game mechanics like ingredients that can be combined into a larger, higher-dimensional system.

Order of the Sinking Star, as discussed through its development goals and trailer framing, is built around multiple “lands” that function like separate games at first—each with its own characters, stories, and mechanics—before later interactions fuse them into a composite experience. The design intent is to start with mechanics already “fun and complete,” then mash them together so their interactions create new rules and new surprises. Blow also links this to a broader critique of how game development converges: teams iterate until a complexity ceiling is reached, then ship. His approach tries to push beyond that ceiling by increasing the dimensionality of interactions.

The conversation then pivots to the practical side of building such systems: Blow’s decision to create a new programming language (Jai) rather than rely on C++. He points to compile times and the cognitive friction of working inside large, complex codebases as the real bottleneck—more than syntax errors or surface-level ergonomics. He criticizes C++’s “baggage” and its inability to deprecate features cleanly, arguing that legacy constraints slow down better ideas and force new features to interoperate with old ones. Jai’s development philosophy emphasizes the working programmer’s day-to-day experience, including fast full builds (about two seconds for a 300,000-line debug build) and avoiding incremental builds to reduce confusion.

Finally, Blow situates his long development timeline as a gradual, motivation-driven choice rather than a deliberate rejection of speed. He argues that newcomers should ship quickly to learn and calibrate, but that some “adults in the room” must still invest in improving quality rather than chasing generic output. His answers also extend to web development skepticism—warning that the modern web’s default interpreted model traded away tooling, debuggability, and strong type discipline for convenience—suggesting that the best path forward would recover those lost quality tools without losing the ease of deployment. The result is a coherent picture: Blow’s projects aim to make systems where rules, tooling, and iteration speed all serve the same goal—more meaningful surprise, not less.

Cornell Notes

Jonathan Blow traces Braid’s rewind mechanic to a design-and-technology principle: undo should be built into the game’s core system, not stapled on afterward. That same emergent-complexity mindset drives The Witness’s puzzle language, where simple rules expand in meaning and later combinations create “curve balls.” For Order of the Sinking Star, Blow describes a structure that starts with multiple self-contained “lands” (each like its own game) and later fuses them so their mechanics interact in surprising ways. He also connects these design goals to engineering choices, including creating Jai to reduce compile-time and complexity friction compared with C++. The throughline is using simple ingredients—whether rules or code—to generate higher-dimensional, player-facing complexity.

Why did Blow treat rewind as a core capability rather than a gameplay option?

In the Braid mailing-list discussion, Blow argued that rewind should be a technical feature like rewinding a movie on VHS: a natural capability that can be used to shape player experience. Critics worried it would remove the tension of dying. Blow’s response was that tension can be replaced with other forms of interest, and that replay control can make games more satisfying—especially when emulators already offered save-state/rewind-like workflows for older titles. The key design move was to build rewind into the game’s system and design around it, rather than trying to reverse state on top of an existing architecture.

How does Blow describe the “emergent complexity” goal behind puzzle design?

Blow frames good games as rule systems where simple beginnings produce complex, player-discoverable situations. In The Witness, he starts with rules that make puzzles, then plans for symbol combinations to generate surprise. He gives an example progression: early “ghost stones” (black/white rounded rectangles) are grouped with a line; later, additional colors and other symbols expand the rule so the meaning of grouping grows over time. The fun comes from revealing new implications rather than repeating what players already understand.

What does Blow mean by designing a game that “looks closely” at why rules interact?

Blow argues that designers can create rules that interact, but they often don’t ask why those interactions generate complexity. He compares this to mathematics and computation—fractals like the Mandelbrot set and cellular automata (e.g., Stephen Wolfram’s work)—where iterating simple equations yields unexpected richness. His goal is to make a game about that phenomenon by combining “ingredients” that are already fun and complete, then letting their interactions produce a larger composite system with more dimensions than typical game mechanics.

How does Order of the Sinking Star’s structure relate to Blow’s “multiple games fused later” idea?

Blow describes the game as starting with several distinct “lands” that are effectively separate games: different characters, separate stories, and separate mechanics. Only later do “dimensional combination” events occur—illustrated in the trailer—where elements like a magic mirror and monsters from different parts of the world interact. The design intent is that the fusion phase is where the rules play out in a way that creates the game’s main surprises.

Why did Blow create Jai instead of continuing with C++?

Blow cites two major pain points: compile-time friction and the complexity bottleneck of large codebases. He argues that syntax-level improvements aren’t the real limiter once programs grow; understanding and managing complexity becomes the bottleneck. He also criticizes C++ for accumulating “baggage” from many past ideas without a workable deprecation path, forcing new features to interoperate with legacy constraints. Jai’s approach includes fast full builds (about two seconds for a 300,000-line debug build) and avoiding incremental builds to reduce bug-prone confusion.

What’s Blow’s stance on long development cycles versus shipping quickly?

Blow says the decision to spend years on a project happens gradually and is tied to motivation and the desire to make a “good version of everything.” He agrees with common advice for newcomers: if someone hasn’t shipped before, long hidden development can miscalibrate them. But he argues that some sustained investment is necessary to improve quality rather than produce generic “slop,” and he points to examples of popular long-gestating games as evidence that the strategy can work when the idea is strong.

Review Questions

  1. What design principle made rewind feel like a natural fit for Braid rather than a tension-killer?
  2. How does Blow connect emergent complexity in games to fractals/cellular automata in mathematics?
  3. What compile-time and language-design problems does Blow say C++ creates for working programmers, and how does Jai try to address them?

Key Points

  1. 1

    Blow argues that rewind works best when it’s built into the game’s core system and designed into gameplay, not added as a reverse-state patch.

  2. 2

    He treats puzzle design as rule systems where simple beginnings can yield emergent complexity, with later symbol interactions expanding meaning and creating surprises.

  3. 3

    Order of the Sinking Star is structured to begin with multiple self-contained “lands” and later fuse them so mechanics interact across worlds.

  4. 4

    Blow’s programming-language motivation centers on reducing day-to-day friction—especially compile times and the cognitive load of complex codebases—rather than optimizing syntax ergonomics.

  5. 5

    He criticizes C++ for accumulating legacy “baggage” without effective deprecation, making better features harder to implement and slower to adopt.

  6. 6

    He supports quick iteration for inexperienced teams, but defends long development when the goal is meaningful quality improvement rather than generic output.

  7. 7

    On web development, he warns that convenience-driven defaults (interpreted execution) can trade away tooling quality like debuggability and strong type discipline.

Highlights

Rewind wasn’t framed as a cheat; it was treated as a core capability that could replace dying-based tension with other kinds of engagement.
Blow’s design philosophy links game rules to mathematical emergence—simple rules iterated into complexity—aiming to make that mechanism visible to players.
Order of the Sinking Star starts as separate “games” in different lands, then later fuses them so the interaction itself becomes the payoff.
Jai’s pitch is practical: fast full builds (about two seconds for a 300,000-line debug build) and fewer incremental-build pitfalls to keep developers in flow.
Blow’s critique of C++ is structural: legacy features and lack of deprecation force new improvements to carry old constraints.

Topics

  • Braid Rewind
  • The Witness Symbols
  • Order of the Sinking Star
  • Jai Programming Language
  • Compile-Time Performance

Mentioned