Sands of Steel is a generator of episodes for a parody HBO-style TV show — a ridiculous mashup of fantasy and sci-fi called ‘Sands of Steel’. It was born of the urge to make something over-the-top for a friend’s small ‘anything goes’ home movie contest. To obey the letter of the law I made a Unity ‘game’ with zero interactivity that assembles an episode of the TV show on the fly when run — so I could bring it to the screening, hit Play, and be surprised.

In the last few years I had started getting pretty convinced that very serious prestige TV in the vein of Game of Thrones or Westworld was ripe for parody…

(The original prophecy)

I was also quite sure there’d need to be some tolerance for this show not making sense, so “sitting down to my first GOT episode midway through season 6” seemed like the perfect feel to go for: you just need to jump between a bevy of mysterious characters in very different locations, saying lots of darkly significant dialogue, and doing violent and/or sexy actions.

Also in light of my limitations, I was sure it would be important to embrace the show just coming out busted and ridiculous. Inspired by the incredible Oikospiel, I resolved to build all of my characters and environments out of random Unity Asset Store assets — whose reliable fixation on knights & monsters & cyborgs drove me to set the show on a medieval fantasy world where a ship from a futuristic space empire has crash-landed.

Despite leaning into bustedness, though, I thought it was crucial to create regular moments where the show became uncannily believable. For parody to land at all, the writing and cinematography and music cues all had to feel viscerally like a real TV show, at least when it really counts. So I geared the scriptwriting system to allow pretty fine-grained control over blocking, camera angle & position, timing, music, etc. It seemed to me like by far the only way to reliably convey key moments in the language of TV: a beat of pause during a hesitation, a tightening closeup during a horrifying realization, a swivel away from your friend at the moment of turning on them, etc.

Any system I devised to automate these presentation elements would very likely either create too bizarre of an output, or be too safe/predictable and come out boringly like a stage play or a TV interview. In the same way, I felt that the dialogue itself had to be kept pretty canned; generating a conversation that felt plausible at all would be a mammoth feat, much less one that nailed the tone of the show. So I staved off the urge to model character relationships or the state of the world, to devise a smart camera director or to dynamically piece sentences together, on the suspicion that all of these would cost a lot of work and deliver results that I couldn’t control in the right ways.

But I did later on work in a limited amount of real continuity that could cause later scenes to actually respect certain events in previous ones, which I ended up feeling was a powerful tool for adding believability. Each dimension of continuity complicated things for me (probably too much) and so had to be chosen with care, but characters can die in one scene, then later be mourned at a funeral; have sex then wake up in a Morning After scene later; or get arrested and later be shown in jail plotting their escape. When people actually notice these glimmerings of consistency, they’re forced to at least consider the possibility that some cogent reality underlies the nonsense — that the magic is real.

(Something is up with Darren the Sexy Crusader’s UVs, but he’s doing his best.)

I was surprised a few times how forgiving the format could be thanks to viewers’ willingness to infer sensible explanations for events even where there wasn’t one. For example, in an early screening, a stubborn problem was cropping up where the logic for choosing which chunk of scene to insert next resulted in a pretty noticeable moment of dialogue getting reused repeatedly. Everyone just enjoyed this as a running joke through the episode instead of the tiresome algorithmic trap I was seeing.

See Assembling a Sands of Steel episode for a more involved discussion of the procedural generation going on under the hood.