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.
So recently I got into mentoring thanks to Stephanie Hurlburt and a lot of people are asking me how I started out in engine programming. Also, today being the 10 year anniversary of starting out in game development, I thought what better opportunity to put this on paper (at least virtually).