Sam Afshari's Notes
  • GitHub
  • Twitter/X
  • Booklets
    • Ray Tracing & Rendering
    • Command & Conquer: Generals Engine
    • Doom Source Code
    • Wolfenstein 3D Source Code
  • All posts
  • Ed
  • NuGets
  • POIWorld
  • RedCorners

Thermal Runaway is out now!

Sat, Aug 15, 2026

Thermal Runaway is out now on Steam for Windows.

I built it as a modern arcade version of Mirror Maze, the shareware game Dave Edson released around 1989. The basic idea still feels unusual today: the spark moves by itself, and the player does not steer it directly. One input flips every reflecting switch on the circuit board at the same time.

That sounds simple until the board starts filling with switches you created, the timer is running down, and several other sparks are crossing the same routes.

Thermal Runaway on Steam

The Thermal Runaway title screen with its live circuit board attract mode

The visuals, especially the Spark are inspired by the opening credits screen of the Halt and Catch Fire TV show.

How the game works

A hot spark runs along the traces of a circuit board. Reflecting switches turn it by 90 degrees. Pressing the flip button rotates every switch, so a safe route on one side of the board may change at the same moment as the route directly in front of the spark.

The goal is to collect every loose particle before time runs out. A collected particle does not leave an empty space. It becomes another reflecting switch in the current flip phase. The board therefore changes as it is cleared. Every successful route adds another decision to the routes that follow.

Particles score 10 points multiplied by the current chain. Collect another within two seconds and the chain rises, up to x8. Let the window lapse and it returns to x1. Clearing a board also converts the remaining time into score, so slowing the spark down makes a route easier to read but reduces the clear bonus.

A late Thermal Runaway board with a long x8 chain and several possible routes

The spark is moving along the lower trace here. The white diagonal blades are the reflecting switches. A flip changes all of them together.

The later boards add one-way diodes, capacitors that place new particles, vias that teleport the spark, walls, and several kinds of hostile interference. A drone follows the same paths as the player. Smarter sparks ignore the switches and hunt directly. THE ARC follows the board but heats every switch it touches until the route breaks for a few seconds.

There are still ways out when the board becomes crowded. The player can hold the INVISO shield to pass through a dangerous spark, or teleport to a safe intersection. Speed remains under direct control. Those tools do not solve the route, but they give enough room to recover from a bad flip.

The player holding the INVISO shield while several sparks cross the board

INVISO is held rather than toggled. Its charge is part of the simulation, so it is useful for crossing danger but cannot be left on permanently.

Every third level is a bonus stage. Deeper runs cycle through named board recipes including ARC LIGHT, VIA MAZE, DIODE GRID, CAPACITOR RAIN, SPARK STORM, BLITZ, and THE YARD. Some late bonus stages remove the particles entirely and replace them with a moving gold spark. Catching it scores, then sends it to another distant part of the board until the clock expires.

A gold bonus board built around catching the moving gold spark

The gold spark follows the switch network but cannot hurt the player. The board becomes a timed chase instead of a full clear.

Generating boards that can be cleared

The board generator is deterministic. Given the same seed and level. A generated maze still needs a solvability check. Thermal Runaway models reachability as states made from a cell and a travel direction. A normal switch contributes both possible reflected directions because the player may flip it. A particle contributes the straight path used before collection plus both reflected paths it may provide after it becomes a switch. Walls reverse the path, and a one-way diode either passes the spark or sends it back.

This is an optimistic graph. It allows more choices than one exact play sequence can take, which makes it useful for proving that a particle is impossible to reach. If the check finds a stranded particle, the repair pass tries candidate switch positions on reachable cells and keeps one that expands the reachable set without cutting off particles that were already valid. Relocating the particle is the last resort.

The result is still a generated arcade board rather than a hand-authored puzzle with one intended solution. The check only prevents the generator from dealing a board that cannot be completed.

It is out

Play Thermal Runaway on Steam

Back to Home


© Sam Afshari 2026