About three times a second each model gets a fixed system prompt plus the current game state as JSON, and replies with one action word (move_right, move_left, jump, idle). This is all run as a simulation since they couldn't reply fast enough for it to be realtime. Then the video is made after the fact from the logs.