Doom is the ultimate game. It runs on pregnancy tests, it runs in cars, and now it runs on RTX – with hardware-accelerated ray tracing, of course. Sultim Tsyrendashiev, creator of the Serious Sam path tracing mod delivered this new RT-infused rendition of Doom on April 1st this year, but make no mistake, this is no joke. It’s a visual revamp of the original game, creating a clever path-traced RT aesthetic for a title that essentially has no real-time lighting model as we’d understand it in a modern game. The results are excellent overall and the processes required to make it happen are often ingenious.
First up, let’s talk requirements: what do you need to get going? A copy of Doom itself is essential, obviously – specifically for the WAD file that contains the bulk of the game data. You’ll also need the RT version of prboom, available here. Therein, you’ll note that there are optional downloads for higher quality music, plus the DLSS .dll plugin, required to drastically improve performance. The final requirement is an Nvidia RTX GPU. For reasons that are not clear, AMD RDNA 2 graphics cards are not supported – maybe it’s simply the case that the developer doesn’t own one.
With all requirements satisfied and the game fully installed, we can begin to answer the question of how ray tracing can work in a game engine that does not recognise the concept of lights, let alone lighting. Yes, Doom has strip-lights, torches and textures – but they don’t act as they do in a modern game. Doom has a ‘sector’-based lighting system: imagine the map split into a grid, with each cell given a basic lighting property. Beyond that, Doom embraces the concept of diminished lighting. So, for example, if you look down a hallway, it gets progressively darker – but the lightest point is always directly in front of the player. In a sense, you can think of the player as a rudimentary light source. Ultimately, lighting isn’t really a ‘thing’ in Doom as such but a lot of clever mechanisms are in place to make the sprites and textures appear lighter or darker, if a level designer puts in the time and effort.
Digital Foundry’s Alex Battaglia presents a comprehensive video breakdown of how ray tracing has been incorporated into The Ultimate Doom.
All of this is not compatible with a ray traced lighting solution, so Sultim Tsyrendashiev has been highly creative with his RT take on Doom. That starts with the sky itself, which is effectively an emissive surface. The grey sky in the first level bathes the stage in grey light, as you’d imagine, while the skies of Hell drench the scene in crimson. Since this is ray tracing, soft shadows are cast from any geometry obscuring the sun. Emissive surfaces apply elsewhere too: pits of lava cast light around the scene with an orange hue, while the toxic barrels project green light upwards. Torches, lamps and light fixtures also give off light in the primary colour of the lighting fixture or flame. You also have lights from particles such as imp fireballs for example, which move around the scene causing changes in lighting and dancing shadows, delivering an effect quite similar to Doom 3. And much like Doom 3, weapons fire casts muzzle flashes shadows, which look really atmospheric. Interestingly, this replaces the diminished lighting muzzle flash trick used by the original game.
For all of this to work, Doom’s textures are reworked, given materials properties so that light can propagate realistically around the scene in a consistent and logical manner. The video embedded on this page does a good job of showing how the developer adapted the artwork and the effect RT has on them. I’d describe the materials revamp as subtle, though there are some more ambitious changes: water is now a fully reflective surface, as are the various pools of blood dotted around the levels.
Sultim Tsyrendashiev also manages to integrate Doom’s signature 2D sprites into the RT pipeline, seemingly by adding a hand-painted normal map – but RT effects like lighting and shadows are defined by the nature of the sprite and the limited number of orientations they have. The integration technique is clever, but as the sprites are not fully 3D, this can cause some visual discontinuities. The developer deserves kudos for the way the spectre sprite is handled. Doom veterans will recognise the spectre as a grainy/transparent rendition of the demon sprite, while the RT version re-imagines this creature with Predator-style active camo, refracting the background as you look through it, with an iridescent representation of the demon sprite shining through occasionally.
What we’re looking at here is a re-interpretation of Doom viewed through the lens of hardware-accelerated ray tracing, but its effectiveness is limited to the nature of the original assets and how the developer has interpreted them to fit within his RT pipeline. This presents problems when some areas in the game have no logical light sources at all, which essentially means that these places play out in pitch black. The developer’s solution is basic, logical and ingenious – press F on the keyboard and a flashlight is activated, introducing the required light source. In some cases, this can add to the atmosphere.
In putting the video together, I revisited many of the most interesting areas within Doom and compared the original presentation with the ray traced interpretation. What’s surprising is how many areas look surprisingly similar to the original game, simply with more realistic, softer lighting. However, elsewhere, the scene changes radically, altering the original mood and in some cases, spoiling some of the jump-scares that defined the 1993 experience. That said, I think this is a great way for Doom veterans to revisit the game – and if you’ve not played it before, it’s still very rewarding, even if some of the original author’s designs don’t quite work as they should.
Hardware-wise, let’s discuss extremes. This RT rendition of Doom, fully maxed out with 4K DLSS performance can easily sustain 60 frames per second on the top-tier RTX 3090. In terms of options to tweak for ray tracing, you can adjust which lights receive global illumination. Starting with GI from all lights, GI from polygonal lights only, and then one-bounce lighting which effectively disables global illumination. My recommendation is for GPUs in the RTX 2070 or higher tier to use GI from all lights, and GPUs below that to just have GI from polygonal lights. In my testing, paring back settings along these lines allowed an RTX 2060 to deliver frame-rates north of 60fps with DLSS’s balanced mode active, targeting a 1080p output. It’s not the full package but it still looks great.
Overall, I’ve really enjoyed seeing how Sultim Tsyrendashiev has revamped Doom to deliver an interesting and impressive ray traced experience, and I’d hope to see AMD RDNA 2 support added soon. Beyond that, Sultim’s already revealed his next major project – an RT rendition of the original Half-Life, something I can’t wait to cover once it’s released.