As with my previous investigations, lets start with the introduction. Today we are going to look at the latest game from a french game developer, Asobo Studio. I first saw footage from this game when a colleague shared the 16 minute gameplay trailer from last year. The rats vs. light gameplay caught my attention, but I didn’t really consider playing this game. That was until the game got released and a lot of people started saying that it looks like it’s made with Unreal but it’s not. I was curious to see how the rendering works and how much is it really inspired by Unreal. Also another interesting aspect is to see how the swarm of rats is rendered, because it looks really convincing in the game and it’s one of the key gameplay elements.
When I started trying to capture the game, I thought I will need to give up because nothing seemed to work. Even though the game uses DX11, which probably enjoys the best support from all tools right now, I wasn’t able to get any of them to cooperate. The game crashed on startup if I tried to use RenderDoc, and the same happened with PIX. I still don’t know why this is, but fortunately I managed to get some captures using NSight Graphics. As always I put all settings to the maximum and started looking for frames to analyze.
After my previous articles I started looking for another game to dive into and I ran into the demo version of Shadows of the Tomb Raider. I thought the rendering of this game is probably already really interesting but with the recent patch to enable raytraced shadows it made it an even better target. The PC port is made by Nixxes and they worked together with Nvidia to add this feature to the game. If you want to learn more about how they did it check out their GDC presentation from a few weeks ago.
Since I wanted to check the acceleration structures I again used PIX and NSight to look under the hood. This was quite fortunate because the game uses the D3D12 debug naming API for almost all resources so the resources show up with human readable names in PIX. This allowed me to make more assumptions about what is happening, which turned out essential because there are plenty of non-obvious steps that might be impossible to understand without this little bit of additional information.
So I started the demo, cranked all settings to the maximum and started capturing.
There was some positive response to my previous article,
that makes me want to release the updates as soon as possible but I
also want to provide substantial updates not single small things.
Hopefully this update will provide enough interesting content for people to come back again.
Since the release of the latest installment in the Metro series I’ve spent a few hours looking under the hood and I think there are some things that might be interesting to other tech oriented people. My goal is not to do an extensive analysis or to dig into the shader disassembly but to see some higher level choices the developers made.
Right now there’s no widely available information from the developers about the rendering techniques used in the game. The only official source of infromation is a GDC talk which is not available anywhere online. This is a shame because the game is running on a very nice custom engine evolved from the previous Metro games and it’s one of the first titles using DXR.
Disclaimer: This writeup is not complete and I will be coming back to it and updating it when I find something worthy of adding. It’s possible that I’m missing something because it only happens later in the game or simply overlooking some detail.