MATT HASTINGSHOMEFRONT END PHILOSOPHYPROJECTSTHREE HAMMERS
Presentation · Sep 23, 2026

Briefings with a voice

Every mission opens with an illustrated still, scrolling text and a narrator. Here is how those are made, and what is real about them.

Every mission opens with an AI-generated illustration, scrolling text and a synthetic narrator, in a frame drawn for the game. How the still, the voice and the player are made.

An illustrated, narrated briefing before every mission was one of the core requirements, not a nice-to-have. By September 23 the second mission's briefing was accepted, which made the pipeline real: an illustration, a script, a voice, and a player that shows them in the engine's own frame.

The briefing for the second mission, Two Roads Home, on a 1280 by 720 window. Page one of two, narration cue four of seven.
The briefing for the second mission, Two Roads Home, on a 1280 by 720 window. Page one of two, narration cue four of seven.

The still

Each illustration starts as an AI-generated candidate at 1536 by 1024. The chosen one is processed down to 384 by 216 and a 48-colour palette anchored on the game's stone and gold, so it sits inside the pixel-art frame instead of fighting it. Candidates and the pick are recorded next to the shipped still.

The voice

The narrator is a synthetic voice, never a recording of a person: the "Dunbrek Chronicler", generated per segment and loudness-normalised. The text scroll is cued to the measured duration of each spoken segment, not to an estimate, which is why the page and the voice stay together at every resolution.

The frame

The player is a nine-slice frame drawn for the game, with a title plate, a bezel around the still and the text pane, native buttons for skip, replay and continue, and resolution scaling that was checked at 640 by 480, 1280 by 720, 1366 by 768 and 1920 by 1080. It also found a real engine bug: the first version crashed after the briefing because a menu callback was garbage-collected while still registered. The same latent bug existed in every menu, and was fixed everywhere.