RBDoom3BFG has gotten a makeover!
Grogan Nov 5, 2023
I hadn't checked that in some time, but I wanted to see if they fixed anything in the Vulkan port. The last time I tried it, the vulkan game had artifacts like black areas where things weren't displaying properly. So I was using the OpenGL... shrug, it worked fine.

https://github.com/RobertBeckebans/RBDOOM-3-BFG#about

I came to find that not only have they worked on the Vulkan port, that's all there is now. They have discontinued the OpenGL.

It's pretty slick, I'm getting smooth performance (well, so was I with the old OpenGL build) and everything seems to render correctly. It's got TAA (temporal) antialiasing now so it looks good.

To build this AND to run this, it needs the Microsoft DirectX Shader Compiler now (dxc)... they use it for both DirectX 12 and Vulkan/SPIR-V. Some distributors might provide that (Arch would) but this was for my from-scratch system so I had to build it. It's not difficult, because it pulls in the correct versions of persnickety things it needs as submodules (e.g. LLVM parts, SPIR-V headers and tools). So pretty much any dev environment should have the tools. gcc/g++, python, cmake, ninja. I just had to figure out what to do with cmake, but a quick perusal of the CMakeLists.txt showed that there really wan't anything, except that it jumped out at me that it was going to do a debug build by default.

git clone --recursive https://github.com/microsoft/DirectXShaderCompiler.git

git submodule update --init (just in case... should do nothing since I did a fresh recursive git clone)


Just a basic cmake command with some pre ordained parameters pertaining to LLVM and SPIR-V configuration.

cd DirectXShaderCompiler
mkdir build
cd build
cmake ../ -G Ninja -C ../cmake/caches/PredefinedParams.cmake -DCMAKE_BUILD_TYPE=Release
ninja


I just manually installed the binary

# install -Dm755 bin/dxc /usr/local/bin

Ooops, it needs its shared library

# install -Dm755 lib/libdxcompiler.so /usr/local/lib

I don't know if they are needed, but I also copied the includes

# cp -R include/dxc /usr/local/include

Now, for the game itself, I already had everything I needed to compile it. Nothing special that I didn't already have.

git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git

Dependencies are basic: sdl2, cmake, openal, vulkan, ffmpeg (and ffmpeg may not be necessary because the build uses Bink for video by default now)

cd RBDOOM-3-BFG/neo
./cmake-linux-release.sh
cd ../build
make -j (I used 10)


You should take a look at that file, cmake-linux-release.sh

cd ..
rm -rf build
mkdir build
cd build
# cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS:STRING="-O3 -march=nehalem" -DCMAKE_CXX_FLAGS:STRING="-O3 -march=nehalem" -DONATIVE=OFF -DFFMPEG=OFF -DBINKDEC=ON ../neo


You can see where I made my changes (I commented out the original line). It should be fine, but I don't like fuzzy things like -march=native, I know what cpu target I want.

Now here's where it gets tricky. The instructions still say to just drop in the base directory from a legit Doom3-BFG edition (e.g. from Steam) and drop in RBDoom3BFG.

However, the first error will be a missing renderprogs2/spirv/builtin/gui.vs.bin

OK, I need to copy the new renderprogs2 directory from the base directory in the source dir. Ahh, the game runs now, a game will load but it will be a black screen with some hud elements visible.

It also needs AT LEAST the materials directory copied to base in the game dir. I also copied textures but I'm not sure that one is necessary.

Linux native Doom 1,2, and 3 + expansions fully ported to Vulkan. I have only tried Doom 3 and Doom 3 Resurrection of Evil so far though.

Last edited by Grogan on 8 November 2023 at 4:53 pm UTC
Shmerl Nov 6, 2023
I'll check it out. Last time I built it, it was still using OpenGL.
wvstolzing Nov 7, 2023
I'm really tempted to get the BFG edition now.

(The Vulkan source port for regular Doom 3 has been abandoned, by the way.) >>> I am, of course, an idiot. Just got suspicious, and searched for it again: the project I had in mind was never meant for regular Doom3 anyway; that was also a BFG source port. So yeah.

Last edited by wvstolzing on 7 November 2023 at 5:59 pm UTC
Grogan Nov 7, 2023
$13 Canadian (~$10 U.S. steam price?) regular price

https://store.steampowered.com/app/208200/DOOM_3/

That comes with Doom 3 BFG Edition though they refer to the bundle as "the original Doom 3". It's the whole kit and kaboodle.

QuoteOwners Receive:

The original DOOM 3 and Resurrection of Evil Expansion
The remastered DOOM 3: BFG Edition
Shmerl Nov 7, 2023
I use GOG version for testing it: https://www.gog.com/en/game/doom_3
Grogan Nov 8, 2023
Even better (I hadn't looked on GoG... I've had Doom3 BFG on Steam since it was released) and same price.
wvstolzing Nov 8, 2023
Quoting: Grogan$13 Canadian (~$10 U.S. steam price?) regular price

https://store.steampowered.com/app/208200/DOOM_3/

That comes with Doom 3 BFG Edition though they refer to the bundle as "the original Doom 3". It's the whole kit and kaboodle.

QuoteOwners Receive:

The original DOOM 3 and Resurrection of Evil Expansion
The remastered DOOM 3: BFG Edition

... now that's odd; I have this in my Steam collection (that's how I originally bought the regular Doom 3 several years ago) -- and I've been using its assets with Dhewm 3.

Does this mean that I can now download the BFG Edition from the same link?
Grogan Nov 8, 2023
Quoting: wvstolzingDoes this mean that I can now download the BFG Edition from the same link?

I would think that Doom 3 BFG Edition would be in your Steam library if your purchase entitles it.

If not, you could still see if this works:

https://github.com/RobertBeckebans/RBDOOM-3-BFG#installation

https://developer.valvesoftware.com/wiki/SteamCMD

./steamcmd.sh +@sSteamCmdForcePlatformType windows +login <YOUR_STEAM_LOGIN_NAME> +force_install_dir ./doom3bfg/ +app_update 208200 validate +quit

I say this because you should be entitled to it, if you own the same appid
wvstolzing Nov 8, 2023
Quoting: Grogan
Quoting: wvstolzingDoes this mean that I can now download the BFG Edition from the same link?

I would think that Doom 3 BFG Edition would be in your Steam library if your purchase entitles it.

If not, you could still see if this works:

https://github.com/RobertBeckebans/RBDOOM-3-BFG#installation

https://developer.valvesoftware.com/wiki/SteamCMD

./steamcmd.sh +@sSteamCmdForcePlatformType windows +login <YOUR_STEAM_LOGIN_NAME> +force_install_dir ./doom3bfg/ +app_update 208200 validate +quit

I say this because you should be entitled to it, if you own the same appid

Thanks a lot for this!

The GUI client already has regular Doom 3 installed; but the appmanifest file for Doom 3 shows appid 9050 -- however the steam webpage for appid 208200 says that the item is already in my library.

I'm downloading appid 208200 right now via steamcmd; so hopefully it will work.
wvstolzing Nov 8, 2023
Well, what do you know; turns out that in their boundless generosity, Microsoft-Bethesda put the BFG edition in my steam library behind my back. I did build RBDoom3BFG, and it works!

@Grogan: Thanks a lot for your write-up, (and the heads-up about the new 208200 bundle) -- one correction, though: You mention a `render2progs` folder under `<RBDoom3BDG-src-dir>/base/`; however, it should be `renderprogs2`.


Grogan Nov 8, 2023
LOL thanks... I actually had renderprogs2 initially and corrected it because of my own typo elsewhere. I remember doing that. (WTF... render2progs doesn't even make sense as a filename)
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.

Buy Games
Buy games with our affiliate / partner links: