BloodGDX

From Blood Wiki
Jump to navigationJump to search
BloodGDX logo

"BloodGDX - is more perspective project than BloodCM. I started reverse-engeneering of original blood.exe, because I successfully found main BuildEngine methods such as rotatesprite, drawsprites, drawrooms etc. In this way, I had got 50% of Blood source code and 20% of methods I found in alpha version source code (some methods are without changes). Also alpha source code help me with figuration of my decompiled code. My Blood port is based on Java's libgdx framework and can reading all of original Blood maps and original Blood resources and playing as original Blood at this time(perhaps there is have a difference between Blood v1.21 and my port, because I working on decompilation of v1.00 (v1.00 is more readable after reverse-engeneering than v1.21) After my first release of BloodGDX I can start to fix graphics bugs, rewrite renderer and writing models/voxels and hires textures support." — Alexander "M210" Makarov

Screenshot of BloodGDX v0.763

BloodGDX (briefly gdxBlood) is a source port for the original Blood to modern operating systems using the libGDX framework for Java. Created by Alexander "[M210]" Makarov, the main developer of the earlier BloodCM, it was first announced on January 9, 2017 and had its first public beta release v0.75 on May 19, 2017.

Details[edit]

As well as straight up reverse engineering, the implementation is referenced from the leaked full Blood Alpha source code. The renderer was allegedly based on EDuke32's Polymost system, a point of some consternation among EDuke32's developers, although a new renderer for the port was said to be in development. As of v1.04 (released September 13, 2019) the classic renderer is available as an option alongside the Polymost renderer. Prior to this, Makarov elaborated on the port's construction, and has stated that all EDuke code was removed as of v.0798 (as opposed to code from JFDuke3D).

"BloodGdx based on JFduke's polymost, with my additions and optimizations, and some features from eduke polymost, like sprite offsets. Today I rewrite widescreen support, eduke's widescreen code was disabled. I planning to start writing a new texturecache for polymost, which will be use with polymost and other gl renderers."M210, December 18, 2018

On December 5, 2021, the new renderer PolyGDX was officially released in BuildGDX 1.16.

Reception for the port has been largely positive, with reservations mostly resting on its initial closed source nature, high-level implementation via the Java virtual machine, and legal questions regarding the ports construction from disparate technical sources. Makarov also has no immediate plans to make a modern version of MapEdit. Experimentation towards adding networked multiplayer (including Bloodbath) was ongoing as of early 2018, and premièred on July 12, 2018 with v0.793.

History[edit]

BuildGDX logo

The port was based on a prototype called gdxTekwar for William Shatner's TekWar released on January 7, 2016. He has also released an early test beta for Witchaven as WitchavenGDX on March 3, 2018. As well, Makarov expressed interest in producing a similar effort for Redneck Rampage, with work announced as RedneckGDX on May 8, 2018 and its first release on September 10, 2018. On September 5, 2018 a video was released showing off work with multi-rendering inside of a new port, DukeGDX for Duke Nukem 3D.

As of March 29, 2019, BloodGDX has been consolidated with WitchavenGDX and TekWarGDX into BuildGDX; RedneckGDX and DukeGDX joined the group with v1.02 on April 24, 2019. It now comes with a Java runtime environment for 64-bit Windows, users of other operating systems still need to provide their own Java runtime. On December 13, 2019 support for PowerSlave was added to BuildGDX, on 21 February, 2020 support was added for Legend of the Seven Paladins and on 21 May, 2020 support for Shadow Warrior was added.

Controversially, Makarov initially indicated that he had no immediate plans to release the source code to BloodGDX; it also had been described as being deliberately obfuscated. He did indicate interest in producing a more limited SDK for the port however, and subsequently released source code to his underlying BuildGDX framework on May 27, 2018 under the GNU GPL 3.0. On March 3, 2019 he stated that he now did plan to eventually release the port's source code. On April 24, 2019 he released the source code of all BuildGDX ports as of version v1.02.

Features[edit]

Original Blood.exe versus BloodGDX demo comparison - YouTube

Note: as compared to the original DOS executable.

  • An easy to use launcher.
  • VSync and FPS uncapping.
  • Ability to Select different Midi driver.
  • Ability to change music type to either CD Music or MIDI.
  • Still supports original Blood fan add-ons and mods.
  • Widescreen support.
  • Texture filtering, Anisotropy, True color textures and various other visual enhancement options.
  • High resolution sprites, skyboxes, glow and detail mapping.
  • Improved mouselook to make it smoother.
  • Game options, allowing players to turn different features of the game on or off, such as Swaying and slope tilting.
  • Ability to launch custom maps by placing them in "maps" subfolder.
  • Working ingame console.
  • Autosave when the player reaches a new level.

Other Supported Games[edit]

Known issues[edit]

  • Some fan add-ons like Death Wish may cause rendering issues due to renderer differences.
  • Inaccurate colour palette may drastically change the way lighting and colour-maps work in some cases. As of 1.14 palette emulation is supported
  • Not fully compatible with more involved modifications such as the Weapons Mod.

Third party enhancements[edit]

See Also[edit]

External Links[edit]

Articles[edit]

Threads[edit]