How Do You Play Blood with BuildGDX and What Features Does It Support?
BuildGDX is a Java-based port of the Build engine that runs classic games such as Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven and Tekwar. BloodGDX is the Blood-specific component of that project. To play Blood with it, you supply your own copy of the original Blood game data and run it through the port rather than through the original DOS executable. The current release listed on the M210 Projects site is BuildGDX v1.18 (11.01.2025), which includes several Blood-specific fixes.
What BuildGDX Is and Where Blood Fits
BuildGDX is described on the site as "the port of Blood, Duke3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar, etc." Each supported game has its own launcher component — BloodGDX for Blood, DukeGDX for Duke Nukem 3D, and so on. The shared BuildGDX layer handles rendering, input, audio and configuration; the game-specific layer handles that title's data and behaviour.
This matters for Blood because the port is not a standalone free game. You still need the original Blood data files. The port provides the engine and compatibility layer, not the game content.
What You Need Before You Start
- The original Blood game data files.
- A Java runtime. BuildGDX v1.17 raised the Java requirement to JRE 8, so a Java 8 or newer runtime is needed for current versions.
- The BuildGDX release package from the M210 Projects downloads section.
The site does not state a price for BuildGDX, and no pricing links appear on the page. A PayPal payment platform is referenced on the site, but the page evidence does not describe what it is used for, so no assumption should be made about cost or licensing from that alone.
Features Relevant to Blood
The v1.18 changelog lists changes that affect the whole BuildGDX family, plus a Blood-specific entry.
General BuildGDX features in v1.18
| Feature | What it does |
|---|---|
| Bilinear filtration for palette emulation mode | Smooths the palette-emulated output |
| Palette emulation soft shading option | Adds a soft-shading option to palette emulation |
| XInput gamepads support | Controller support, Windows only |
| Mouse sensitive option is a textfield | Replaces the old 0–2 slider, allowing finer values |
| Rebind "ESC" in key configurations | Fixes rebinding for the menu_toggle function |
| useHighTiles / useModels default to true | Applied when a new config is created; affects skyboxes |
| Software renderer resolution check | Resolutions above 4096x3072 are not supported |
| Library updates | libgdx 1.13.0, jinput 2.0.10, lwjgl 3.3.3 |
Blood-specific fix in v1.18
- Fixed loading extra data in savegame files, following the earlier removal of support for old DOS saves.
That last point is the one to remember if you are carrying saves forward: old DOS-format saves are no longer supported, and v1.18 corrects a problem with loading the extra data in the newer save format.
Setting It Up
- Install a Java 8 or newer runtime.
- Obtain the BuildGDX release from the M210 Projects downloads section.
- Place your original Blood data files where the port expects them.
- Launch the BloodGDX component.
- Open the configuration and adjust the options you care about — palette emulation, bilinear filtration, mouse sensitivity, and controller input if you are on Windows.
- Start a game and confirm rendering and audio behave as expected.
The site does not document the exact folder layout or menu paths, so treat the placement step as "follow the release's own instructions" rather than a fixed path.
Version History and What Changed
The site lists these BuildGDX releases:
- v1.18 — 11.01.2025
- v1.17 — 23.08.2024
- v1.16 — 05.12.2021
- v1.15 — 17.08.2020
- v1.14 — 26.07.2020
v1.17 was a large internal overhaul. The changelog notes raw mouse input, new controller input logic, drag-and-drop map file support, a new sound manager, a new OpenAL audio driver (1.23), a new console, a new input processor, a new file handler system, a new renderer changer, a new config file version, and a savegame version increase. The author states that the release "doesn't contain all what I wanted to change" and that the changelog may be incomplete.
Two consequences follow from v1.17 that affect Blood players:
- Savegames are not compatible with older BuildGDX versions. The savegame version was increased.
- The config file version changed, so settings may need to be recreated.
Troubleshooting Common Problems
Saves won't load. Old DOS saves are no longer supported. If you are on v1.18, the extra-data loading fix should help with saves made in the current format. If you upgraded from a pre-v1.17 build, expect old saves not to carry over.
Crash when deleting all saves and saving a new one. This was fixed in v1.18.
Crash with a single demo in "randomly" playback mode. Fixed in v1.18.
Renderer crash on a map with broken sectors. Fixed in v1.18 for the Polygdx renderer.
Resolution won't apply. The software renderer rejects resolutions above 4096x3072.
Audio exceptions. v1.18 makes Midi isOpen() check the sequencer to avoid an exception.
macOS input or sky rendering problems. v1.18 changed the input method algorithm in an attempt to fix macOS input, and fixed macOS sky rendering and resolution changing.
Choosing Whether to Use It
Use BuildGDX for Blood if you want a modernised way to run the original game with controller support, configurable mouse sensitivity, palette emulation options and ongoing fixes. Stay on an older build only if you depend on saves or a config from before v1.17 — and in that case, note that you will miss the v1.18 Blood savegame fix. If you are starting fresh, v1.18 is the version the site currently lists.