Skip to content
Ethan Watson edited this page Nov 22, 2020 · 9 revisions

Rum and Raisin Doom

Rum and Raisin Doom is a minimal source port based on Chocolate Doom that seeks to do one thing: Modernise the original software renderer. This wiki will go in to the theory and implementation details behind each decision and feature implemented.

Current speed-up over a minimal high-res Doom renderer

How to use Rum and Raisin Doom

For now, I am not providing builds. You can consider this an academic project (with very real results) until that changes.

Please direct yourself to the Chocolate Doom wiki for instructions on how to build from source, as everything there applies to Rum and Raisin Doom.

Note that Heretic, Hexen, and Strife are currently broken. I've not looked at their code at all except to ensure they compile and link.

Mission Statement

Modernise for preservation. We're only interested on increasing the resolution of the software renderer and making it run efficiently on modern hardware. Advanced features are for other source ports.

The name "Rum and Raisin" was chosen for a very specific reason - it's still a kind of Chocolate, but it adds things that change the flavour and you may not like it.

Why Things Are Done The Way They Are

Transposed Backbuffer

High Resolution Backbuffer

Precalculated Lit Textures

Rendering Visplanes by Column

Who Am I?

I'm Ethan Watson. GooberMan, as the Doom community has known me for about 20 years. I've released Cacoward-winning maps (and even runners up). My day job, however, has been making console games since 2003. Primarily an engine programmer these days, I've worked on licensed titles such as Star Wars: The Force Unleased and original IP such as Quantum Break. I started (finally) working on Rum and Raisin Doom to relax after a day's work on Returnal. I specialise in low-level optimisation and multithreading - two things that can really help make Carmack's original Doom renderer go BRRRR on modern hardware.

These things are normally written in third person. But this is Doom, and that kinda defeats the point don't you think?