Midnight Hospital

An interactive horror story set in a hospital at night, made with AI-generated footage.

From a patient's bed, a Nurse waits in a dark green ward with a red-lit doorway behind her
My role
Concept, story, visual direction and engineering, using Codex and Claude.
When
September 2026
Made with
Midjourney: style exploration
GPT Image 2: character and scene images
H3 Max Turbo via fal: video

You wake in a hospital at night. On-screen choices move you through the story as you try to escape.

H3 Max Turbo’s speed made me want to try generating every scene as the player progressed through the story. Charlie Clark’s Diiverge, a point-and-click adventure that grows with players’ choices, was a reference for that idea.

Gameplay showing two corridor choices, Enter radiology and Take the lit passage
A restrained patient in a treatment chair with a halo brace and IV tubing
First-person view of using a hammer to break the reception window
The Surgeon grabs the player’s arm during the capture scene

Finding the hospital’s visual style

A hospital at night feels frightening to me. The setting provides familiar spaces and characters: wards, operating rooms, patients, nurses and doctors. I wanted the world to feel real enough that exploring it would be unsettling.

I found it easier to browse visual styles in Midjourney than to search for movie or TV references. I used the same hospital prompt for each style test.

Generated hospital style test with a brightly illuminated doorway and green ward
It felt like daytime.
sref 82368918
Generated hospital style test with a green night-vision treatment
I liked the atmosphere, but night vision didn’t fit a patient waking in bed.
sref 4023277510
Selected generated style test showing the dark ward, visible bed and room detail
Selected: dark, with color and room detail visible.
sref 82058305

I liked the fisheye lens because it felt immersive.

Refined generated opening still with hospital beds and a red-lit adjoining room, seen from the patient's bed
Midjourney opening still.

For character concepts and scene stills, I used GPT Image 2. The images used as the videos’ final frames were edited with Nano Banana Lite Edit through fal. FLUX.2 Klein 9B Edit was used to refine the Surgeon scene.

Introducing the Surgeon as a silhouette

I introduced the Surgeon as a silhouette because wondering who was in the doorway felt scarier to me than seeing him clearly.

The Surgeon's distant silhouette stands in the red-lit doorway beyond the patient's bed

Choosing which scenes to generate live

I wanted choices to change what happened later, but the story still needed an ending. In the cabinet prototype, players could choose between a notebook, a syringe and a map. With a story generated dynamically, the LLM would have to carry that choice into later scenes.

Cabinet prototype.

Keeping an improvised story coherent was difficult, so I chose a limited set of written branches with the consequences decided in advance.

Generating every scene live would also mean accepting the takes as they arrived. A bad clip could break the immersion. Making most of the footage in advance let me choose the takes and limit production costs. Only the name-reveal scene is generated live.

Generating the name scene

I still wanted to showcase H3 Max Turbo’s speed with a scene generated for each player. I chose the name reveal because seeing your own name inside the hospital makes the story feel as though it is addressing you directly. The name is generated into the video itself.

Four name-reveal examples.

The generated scene still had to connect to the footage on either side. I supplied H3 Max Turbo via fal with a first frame matching the preceding ward view and a last frame with the Nurse in position for the next scene. The frames and the rest of the prompt stay fixed; only the player’s name changes.

Giving the name scene time to load

I wanted the name scene ready before the player reached the reveal. Generation starts as soon as they submit their name. The instructions, the dark ward and the Surgeon’s appearance give it time to run.

Larger video files took longer to download, so I chose 480P to help the scene finish downloading during the opening. If it still isn’t ready when the Surgeon’s scene ends, the game loops an idle ward clip until the name scene is ready.

480P is ready before the reveal in both reading scenarios.

Play Midnight Hospital

1.3K playthroughs 16.5K views on X