Blog - Home

Mirror's Edge Catalyst Ambient Video

30/01/26 - 17:00

Mirror's Edge Catalyst remains my favourite video game of all time. Despite having some 200+ hours in a game that takes maybe 10 hours to complete the main campaign, until just the other day, I had not actually 100% completed it. There were a bunch of dashes and delivery missions I'd never gotten round to. They're mostly just 'get from A to B on a time limit', and given that running around the open world is 'get from A to B' anyway, they didn't hold much appeal for me.
But late last year, when I was getting back into the series after pursuing other interests, I was thinking about the multiple times that it's mentioned runners compete on their runs, and in the context of in-game immersion, I was suddenly eager to try getting 3 stars on all the dashes. So I booted up the game, turned off Runner's Vision, and grinded for a few hours.
It was hard! For a few of them needed to look up other people's runs as I couldn't find a route that didn't leave me a few seconds short. Before launch, the devs had promised it was possible to 3-star the dashes without any upgrades, so if you could just find the right route, you could definitely do it. Unfortunately it turns out when the game moved from beta to release, they decreased the timers across the board to compensate for the upgrades, so now they're mandatory to get 3 stars. But in the end, I got them all. Then a few days ago, I sat down and ground out the last 11 delivery missions I hadn't done, and now, after nine years, I have finally 100% completed the game and got all the achievements.

So, background over, onto the actual main topic of this post. Immediately after finishing the delivery missions, I was running around admiring Glass at various times of day, and decided I wanted to make an ambient video of the day-night cycle. This was partially inspired by the timelapses in SonyViva308's incredible 'The World of Mirror's Edge Catalyst' series, but also I've been a fan of video game ambience since I first discovered it (and ambient music and soundscapes before that).

The day-night cycle in the game is 48 minutes long, 24 minutes of day, 24 minutes of night, with sunrise and sunset somewhere in the mix. In the excellent GDC talk on the games lighting, Fabien Christen explains they linked the cycle to player movement, to hide jitter from fast-moving shadows (timestamp 20:30). The sun/moon only moves when the player is moving, and stands still if you're not running.
Obviously this poses a pretty major problem for making any kind of video where the time of day progresses. Luckily, mods fixed this not long after release, so I used uxhh's 'Actually Dynamic Time of Day' mod, which undoes this limitation. It works very well, and while of course shadows do move very fast because the day/night cycle is sped up compared to real life, I didn't really see any issues with shadows flickering or light maps re-calculating. It could just be I'm running the game on hardware more powerful than was available at the time? Or perhaps the mod fixes those issues behind the scenes. Either way, problem solved.

I also used a few visual mods, such as zhpete's 'Better Skies' and 'NVEE', and scorttt's 'Lighting Overhaul for Better Skies', which all work together to disable some of the stylistic effects and really take advantage of the the Frostbite engine's PBR rendering and simulated atmosphere (check out zhpete's Mars Atmosphere mod for a great showcase of what a PBR sky can do!). In my opinion they make the lighting look less hazy and more dramatic.

Then I needed to actually record some vistas in the game. This is pretty time consuming, I couldn't just put the game in the background because it would stop rendering if it was fullscreen, and the audio would mute if the window wasn't in focus. So I just had to leave the game running and not touch my PC for 48 minutes at a time. I decided to stick to the in-game camera, just disabling the HUD, rather than using the cinematic camera, as I felt the head-bob animation added a bit of visual interest.

I also wanted to make a timelapse version, to showcase the lighting in less time. This did not work out.

First, I tried just speeding up the clips 10,000% in DaVinci resolve, my video editor of choice. I got the timeline set up, though I couldn't get the preview to play. I started the render, and the estimate was that it was going to take two hours. I was already over 4 hours into the project at this point, so I started trying to work out why it was so slow.
There turned out to be two main issues. One is that I had recorded in .h265, so for reasons I won't pretend to understand, you can't just pick every Nth frame out of the video, every frame needs to be analysed to pick out new frames. This shouldn't take too long for 1440p video, except I also discovered that free version of Resolve is limited to CPU encoding only. It can utilise the GPU for some effects, but if you want to render on GPU, you have to pay.

Free, open-source software saved the day yet again. I used this ffmpeg to speed up the clips on the GPU, ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mkv -vf "setpts=PTS/100" -c:v hevc_nvenc -preset p7 -rc vbr -cq 19 -an output.mp4. The NVENC hardware chewed through the video at hundreds of FPS, and it was done in a few minutes.

Upon watching the resulting clip, I realised my earlier decision, to use the in-game camera instead of a static cinematic one, had backfired. The video shook like crazy, as you would expect from trying to make a timelapse without a steady camera.
So, I just published the full-length video without the timelapses, and decided split that part off into a seperate future project. I'll look into using fractional FPS in OBS to see if I can skip speeding up a long recording altogether.