RBDoom3BFG

Games and gaming tweaks
Forum rules
Behave
Post Reply
User avatar
Grogan
Your Host
Posts: 515
Joined: Sat Aug 21, 2021 10:04 am
Location: Ontario, Canada

RBDoom3BFG

Post by Grogan »

I thought to check to see if that got updated lately, and kind of just blindly started a build. I noticed the checkout pulled in subprojects I'd never seen before. It uses this NVRHI API now to hook up DirectX 12 on Windows (with "+set graphicsAPI Vulkan" as an alternative) and Vulkan only on Linux now. They have removed the OpenGL renderer from the client completely (or at least have removed support for it... it may still be possible to build an OpenGL client as I see the files in the tree)
NVRHI (NVIDIA Rendering Hardware Interface) is a library that implements a common abstraction layer over multiple graphics APIs (GAPIs): Direct3D 11, Direct3D 12, and Vulkan 1.2. It works on Windows (x64 only) and Linux (x64 and ARM64).
It seems to work well now with Vulkan, and has advanced graphics features like TAA (temporal) antialiasing and SSAO. It's like an open source remaster of a remaster.

It can be had here (Windows binaries, instructions, source etc.)

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

The newest release is 1.5.1, May 23 2023
https://github.com/RobertBeckebans/RBDO ... tag/v1.5.1

It can also be had through moddb but it may be older.

But... on Linux, that's bollocks, you can compile it yourself with native CPU opts (by default, a release build) and get the latest code commits. It's versioned 1.6.0 which is probably going to be a release soon.
User avatar
Grogan
Your Host
Posts: 515
Joined: Sat Aug 21, 2021 10:04 am
Location: Ontario, Canada

Re: RBDoom3BFG

Post by Grogan »

Compiling this on Linux is fairly easy, and the requirements are not steep. I do it on my from-scratch system and it's always been basic dependencies I've already had.

https://github.com/RobertBeckebans/RBDO ... pile_linux

Essentially, the dependencies (outside of a basic dev environment, gcc toolchain and appropriate dev packages) are:

git
cmake
SDL
OpenAL
ffmpeg

This is how I do it.

Code: Select all

git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git
Now, the business end of this is the "neo" directory and it's where we operate from. The configuration is in a script, neo/cmake-linux-release.sh

Code: Select all

cd ..
rm -rf build
mkdir build
cd build

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo
The bottom line is what configures the build. There shouldn't be any reason to change that, but that's where you'd add/change cmake configuration parameters. If building it for yourself, to run on that system, use -DONative=ON. That will use -march=native. Turn it off if you expect it to run on other CPUs. This will use -O3 optimization level for a Release build.

If you want to drive that shit yourself, turn ONATIVE OFF and specify your own flags in the command like this:

Code: Select all

-DCMAKE_C_FLAGS:STRING="-O3 -march=nehalem" -DCMAKE_CXX_FLAGS:STRING="-O3 -march=nehalem"
Substituting your CPU type for nehalem in the example, of course.

So, after cloning with git and considering the cmake configuration:

Code: Select all

cd RBDoom3BFG/neo
./cmake-linux-release.sh
cd ../build
make -j10
Adjust the -j value for the number of cores you want to use (actually the number of make jobs you want to start)

After configuring with cmake, you run GNU make like normal as in the above list of commands.

That shouldn't take very long to build, a few minutes for most people. After that, we'll just take the game binary.

Read the instructions on the site, but essentially:

Code: Select all

copy base directory from steamapps/common/Doom3 BFG Edition to game directory.
copy build/RBDoom3BFG to game directory (where you put base)
There should only be a few megs of symbols on a release build of this, but you can strip it with:

Code: Select all

strip -p --strip-unneeded RBDoom3BFG
(That's my safe strip command I use for everything, preserves timestamps and doesn't break libraries. On binaries, that strips all anyway)

By game directory, I mean whatever directory you decide to run this game out of. Don't replace shit in your Steam directory or wherever the Doom3 BFG game files are, copy the base directory from it.

Now, I don't know if this is in any instructions anywhere, but additionally you will need to take (from the source directory):

Code: Select all

RBDoom3BFG/base/renderprogs2
and copy that directory to the base directory (containing the official game files) in your game installation directory. If you don't, the game will instantly abort.

That should be it. Simply run RBDoom3BFG and adjust the graphics settings to your taste. This has Doom, Doom 2, and Doom 3 + Expansions. When you go into the Doom 3 BFG Edition choice. it also has a Dev menu where you can choose whatever chapter of the game or expansions you want to start at.

Console and Doom 3 commands (e.g. "god") work as expected.
User avatar
Grogan
Your Host
Posts: 515
Joined: Sat Aug 21, 2021 10:04 am
Location: Ontario, Canada

Re: RBDoom3BFG

Post by Grogan »

... and yeah, it's both a snow day, and a slow day 8-)
User avatar
Zema Bus
Your Co-Host
Posts: 257
Joined: Sun Feb 04, 2024 1:25 am

Re: RBDoom3BFG

Post by Zema Bus »

I might do that, i haven't played that in a while.
Post Reply