Raze
"Why? Why not? I started with this because I had problems getting VSync to work properly in EDuke and because I wanted true color rendering back and a better music system than the Windows system MIDI synth. I tried BuildGDX but had other problems with that (e.g. the Java backend not recognizing all keys on my keyboard - and its VSync also did not work) From that I just went on, ending up changing more and more until I was able to plug the entire GZDoom backend into it. You may ask the same question about the retro Doom ports. We already have PrBoom - do we really need Crispy and Retro? Apparently their developers have fun doing it. Shouldn't that be enough?" — Graf Zahl
Raze is a source port for the Build engine and related games that mixes source code from various projects and GZDoom. It aims to merge and refactor all of the available ports in a single package, with a back-end based on GZDoom. This includes support for Blood, forked from the NBlood project. It is primarily the work of Christoph Oelckers (aka Graf Zahl), head developer of GZDoom, and Rachael Alexanderson (aka Eruanna), alongside the efforts of the base projects. The effort's name is an antonym play on the word Build, while also featuring a Z to fit with ZDoom; it was originally going to be called Demolition.
History[edit]
Development started in August 2019. The first private release was 0.3.0, released January 23, 2020, consisting of only source code. Following the public announcement of Raze, Oelckers released the first public pre-alpha, version 0.4.0, on February 4, 2020. The codebase shifted away from EDuke32 with 0.7.0 released on September 27, 2020 to instead use sources closer to the original game, namely JFDuke3D. Version 0.8.0 was released on December 6, 2020 at which point the project was declared to have moved from alpha to beta stage. Version 1.0 was released on April 7, 2021, which notably added support for the Vulkan API. On April 23, 2021 a preview build of the new renderer (not relying on Polymost to build geometry) was released, but was soon withdrawn after issues were discovered. It has since been reinstated. On October 10, 2021 version 1.2 was released which introduced the Open GLES backend, intended to improve performance with older graphics cards. On January 24, 2022 version 1.4 was released making the new renderer, now called Raze3D to distinguish it from Polymost, the default. On December 11, 2022 version 1.6.0 was released which removed Polymost, making Raze3D the sole renderer.
Features[edit]
While Raze primary goal is on enhancing stability and unifying several Build titles into one package, several new features have been incorporated. Currently Raze includes the following features:
- New renderer called Raze3D, with OpenGL, Vulkan and GLES backends.
- GZDoom's post-processing effects framework is incorporated, allowing effects such as bloom and faking increased color ranges with dithering to be possible
- A replaced and revamped file system, based on the WAD manager used in GZDoom
- ZMusic from GZDoom is used as music system
- The menu code from GZDoom is used as a generic system across all supported games
- Games are in their own modules and do not interact with each other. Renderer, sound system and input are used universally across the titles
- Controller support is included, using the existing ZDoom controller code
- Multiplayer and networking however have a different implementation per game, and thus this was left as-is
- OSD and configuration maintenance replaced with ZDoom's console and config code
Compatible Games[edit]
"The entire file system code inherited from Build was replaced with a reworked and extended version of GZDoom's WAD manager to work more like a real virtual file system. For Blood I merged the 3 distinct file systems (directory, Blood.rff, Sounds.rff) together into one. It would require quite elaborate fuckery to use Blood's system in a way that could break this changed setup, but will make it a lot easier to design mods for. I think the advantages far outweigh the potential but mostly theoretical problems." — Graf Zahl
Supported[edit]
Fully tested and supported.
- Duke Nukem 3D v1.3D and Atomic Edition (formerly via eDuke32; now from JFDuke3D, with World Tour support backported from DukeGDX)
- One Unit: Whole Blood (Blood, Plasma Pak, Cryptic Passage) (via NBlood)
- NAM (formerly via eDuke32 and now EDuke 2.x)
- World War II GI (formerly via eDuke32 and now EDuke 2.x)
- Redneck Rampage and Suckin' Grits on Route 66 (formerly via RedNukem, now from NukeYKT's RR source code reconstruction)
- Shadow Warrior (via SWP and VoidSW)
- PowerSlave/Exhumed (via PCExhumed with various enhancements inspired by PowerslaveGDX)
Credits[edit]
As Raze combines several codebases into one package, the following credits are in order:
Raze special thanks:
- Rachael, dpJudas, Enjay, Nash
EDuke32 engine & game programming:
- TerminX
- Hendricks266
- pogokeen
- Plagman
- Helixhorned
JFDuke3D by:
- JonoF
Uses BUILD Engine technology by:
- Ken Silverman
NBlood programming:
- Nuke.YKT
- NoOne
- sirlemonhead
Widescreen tiles & NBlood logo:
- Maxi Clouds
NBlood special thanks:
- NY00123, MetHy, Striker, oasiz, Mblackwell, Zombie, Marphy Black, SAmik37, meleemario
NBlood contributors:
- alexey-lysiuk, CommonLoon102, Jan200101
PCExhumed programming:
- sirlemonhead
- Nuke.YKT
- NY00123
PCExhumed special thanks:
- Hendricks266, JonoF, NY00123, MetHy, oasiz, Daedolon, NoOne, phredreeke, Lobotomy Software
External Links[edit]
- Raze - ZDoom
- Raze - GitHub
- Dev builds
- Raze subforum
- Raze - ZDoom Wiki
- Raze - Arch User Repository
- Raze - Holarse (German)