Website profiles · Technology insights · Alternatives

m210.duke4.net Paid content

Categories: Other

BuildGDX (The port of Blood, Duke3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar, etc.)

Visit website

Updated: 2026-10-04 05:01 Language: English (default) Access: Normal

Profile views 3 Outbound visits 0
M210 Projects Full homepage screenshot
Editorial Review

Website Review

What is M210 Projects?

M210 Projects is the personal development site of "m210", best known as the home of BuildGDX — a Java-based source port that runs classic Build-engine games such as Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven and Tekwar. The site doubles as a release log, download hub and support point for those ports, with links out to forums, screenshots and a Discord server. The page's own tagline also mentions eDuke32, Unreal, Unreal Tournament, Serious Sam, Half-Life, maps and mods, so treat it as a broader retro-FPS modding and porting workshop rather than a single-game page.

What you actually find there

  • BuildGDX releases, listed newest-first with version numbers and dates (for example v1.18 dated 11 January 2025, following v1.17 in August 2024 and earlier entries going back to 2020).
  • Changelogs per version — the site's main editorial content. Entries are technical: renderer fixes, input handling, savegame compatibility, audio driver changes.
  • Game-specific sub-ports named in the notes, including BloodGDX, DukeGDX, TekwarGDX, WangGDX and LSPGDX.
  • Navigation to Downloads, Screenshots, Forums, About, Links and Discord.

Who it is for

Someone who owns, say, a copy of Blood or Redneck Rampage and wants to play it on a modern machine with widescreen support, gamepad input and configurable rendering. It is also useful for tinkerers who want to know exactly what changed between builds before updating — the changelogs are detailed enough to answer "will this break my existing saves?"

How to read the changelogs

The v1.17 notes are a good illustration of the trade-off this project makes. That release rewrote large parts of the engine — new sound manager, new OpenAL audio driver, new console, new input processor, new file handler — and raised the Java requirement to JRE 8. The same notes state the savegame version increased and is not compatible with older BuildGDX saves. So a newer build buys modernised internals and features such as raw mouse input and drag-and-drop map loading, at the cost of starting a save over. Later point releases (v1.18 and its fixes) are mostly corrections and small options, which are lower-risk updates.

A practical next step

If you are new, check your game's specific sub-port (BloodGDX, DukeGDX and so on) and the latest BuildGDX version, then read the changelog for anything that mentions savegames before you overwrite an older install. Keep your previous version and save folder until you have confirmed the new one loads your progress. If a release note says the savegame version changed, plan to finish or export your current run first.

For community help and downloads beyond this page, the official Duke Nukem 3D port community and general Build-engine resources are worth knowing: EDuke32 and ZDoom Forums.

How do I download and install BuildGDX for playing classic Build engine games?

BuildGDX is a Java-based source port that runs classic Build engine games—Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar and related titles—on modern systems. It is developed by m210, and the project page at M210 Projects is where the releases and news are posted.

What you actually need

BuildGDX is a port, not a game. It supplies the engine; you must already own the original game data files. So the practical sequence is:

  1. Get the BuildGDX package from the M210 Projects downloads area.
  2. Install a Java runtime. The v1.17 release notes state that Java 8 (JRE 8) is required, so check your installed Java version before launching.
  3. Place the original game files (the GRP or equivalent data from your purchased copy) where the port expects them.
  4. Launch the port and point it at the game data if it does not detect it automatically.

Which game are you running?

The same package covers several titles through separate launchers, and it helps to know which one applies to you:

Launcher Game
BloodGDX Blood
DukeGDX Duke Nukem 3D
WangGDX Shadow Warrior
DK / RR Redneck Rampage titles
TekwarGDX Tekwar
LSPGDX Witchaven-related content

If you only care about one game, you can ignore the rest of the launchers entirely.

Version notes worth knowing

The page lists BuildGDX v1.18 (11 January 2025) as the most recent entry in the visible changelog, following v1.17 (23 August 2024). One caveat from the v1.17 notes: the savegame version was increased and is not compatible with older BuildGDX saves. If you have progress from an earlier build, expect to start fresh or keep the old version around for those saves.

A reader scenario: you have a Duke Nukem 3D copy from an old disc or a digital store, a Windows PC, and no idea whether the port will recognise your files. Install Java 8 first, extract BuildGDX to its own folder, then run DukeGDX and let it scan for the game directory. If it finds nothing, check that the GRP file is in the folder you pointed it at rather than in a nested subfolder.

Next step

Download the current BuildGDX release from the M210 Projects site, confirm your Java version, and start with the single launcher for the game you own. If something fails, the changelog entries on that page often name the exact fix in a later version, so check whether you are running the newest build before troubleshooting further.

Which classic games like Blood, Duke Nukem 3D, or Shadow Warrior are supported by BuildGDX?

BuildGDX is a source-port launcher that runs several Build-engine first-person shooters under one modernised framework. The M210 Projects page lists dedicated ports for Blood (BloodGDX), Duke Nukem 3D (DukeGDX), and Shadow Warrior (WangGDX), plus ports for Redneck Rampage (RR) and Witchaven (WHGDX). It also covers Tekwar (TekwarGDX) and Legend of the Seven Paladins (LSPGDX). The news entries also mention DK / RR handling and a "Leave vehicle fix in map2" for WangGDX, which points to vehicle support in Shadow Warrior's expansion content.

What each port is for

  • BloodGDX — the Blood port; recent notes include fixes for loading extra data in savegame files.
  • DukeGDX — Duke Nukem 3D; notes mention improved CON addon finding when only definelevelname is set.
  • WangGDX — Shadow Warrior; notes mention a map2 vehicle fix and an automap exits crash fix.
  • RR / DK — Redneck Rampage and Duke Nukem; shared fixes include setMapInfo index protection and music/OGG crash fixes.
  • TekwarGDX — Tekwar; a specific CD-track crash was fixed.
  • LSPGDX — Legend of the Seven Paladins; automap exits no longer crash outside game mode.

Practical next step

If you own one of these games, download the BuildGDX release and point it at your game data. The page's current release is BuildGDX v1.18 (11.01.2025); v1.17 (23.08.2024) raised the Java requirement to JRE 8 and changed the savegame version, so saves from older BuildGDX builds may not carry over. For a broader community and support, the page links a Discord server, and you can compare notes at ZDoom Forums or Duke4.net.

How does BuildGDX compare to eDuke32 for running Duke Nukem 3D?

BuildGDX and eDuke32 are both source ports aimed at running classic Build-engine games like Duke Nukem 3D, but they come from different lineages and suit slightly different players. BuildGDX is a Java-based port (LibGDX/LWJGL) from the M210 Projects site, while eDuke32 is the long-established native Windows port best known for its deep modding support and EDuke scripting.

Practical differences

Aspect BuildGDX eDuke32
Scope Multi-game: Duke3D, Blood, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar, and more Primarily Duke Nukem 3D (with related forks for other games)
Platform feel Java-based, cross-platform orientation Native Windows focus
Modding depth Convenience-focused; supports addons and map drag-and-drop Very deep scripting and mod ecosystem
Recent activity Active releases through v1.18 (11.01.2025) Mature, long-running project

What this means in practice

If your goal is to play Duke Nukem 3D with a broad range of classic addons and the most established modding scene, eDuke32 is usually the default recommendation. If you want one launcher-style port that also handles Blood, Shadow Warrior and other Build titles with consistent modern conveniences, BuildGDX is attractive. Recent BuildGDX notes highlight quality-of-life work such as XInput gamepad support, raw mouse input, drag-and-drop map loading, bilinear filtering for palette emulation, and a reworked sound/input system.

A note on save compatibility

BuildGDX v1.17 explicitly increased the savegame version and states it is not compatible with older BuildGDX saves. That matters if you already have progress in an earlier BuildGDX build — expect to start fresh or keep the old version installed alongside.

Decision criterion

Choose eDuke32 when mod compatibility and scripting are your priority for Duke Nukem 3D specifically. Choose BuildGDX when you want a single multi-game port with modern input and audio handling and don't mind occasional save-format resets between major versions.

Next step

Decide based on your main game: if it's Duke3D only, try eDuke32 first; if you also want Blood or Shadow Warrior, install BuildGDX and check the release notes for the version you download. For official information, see M210 Projects.

What improvements and bug fixes are included in the latest BuildGDX version?

The latest listed release is BuildGDX v1.18 (11 January 2025). Its changelog is mostly polish and stability rather than a major overhaul: better palette-emulation visuals, modern gamepad support, a batch of crash fixes, and some housekeeping under the hood.

Highlights in v1.18

  • Visuals: bilinear filtering for palette emulation mode, plus a soft-shading option for palette emulation.
  • Input: XInput gamepad support (Windows only); the ESC key rebinding bug for the menu_toggle function is fixed; mouse sensitivity is now a text field instead of a 0–2 slider.
  • Defaults: useHighTiles and useModels are set back to true when a new config is created, which affects skyboxes.
  • Engine updates: libgdx 1.13.0, jinput 2.0.10, lwjgl 3.3.3.
  • Crash fixes: deleting all save files then saving a new one; a game with a single demo using "randomly" playback mode; the Polygdx renderer loading maps with broken sectors.
  • Platform fixes: OSX sky rendering and resolution changing; a revised input method algorithm aimed at OSX input.
  • Other fixes: MIDI isOpen() now checks the sequencer to avoid an exception; the software renderer checks resolution and rejects anything above 4096×3072.

Per-game fixes in v1.18

Port Fix
BloodGDX Loading extra data in savegame files, after old DOS save support was removed
DukeGDX Better CON addon detection when definevolumename is absent but definelevelname is present
DK / RR setMapInfo index protection; corrupted lookup.dat no longer closes the port; sndPlayMusic OGG crash fix
TekwarGDX Crash in Teksnd.playCDtrack
WangGDX Vehicle exit fix in map 2
LSPGDX Showing exits on the automap no longer crashes outside game mode

What changed earlier

v1.17 (23 August 2024) was the bigger structural release: Raw Mouse Input, new controller input logic, drag-and-drop map files, a new sound manager and OpenAL 1.23 driver, a new console, input processor, file handler and renderer changer, a new config file version, and a savegame version bump that is not compatible with older BuildGDX saves. It also moved to libgdx 1.12.0 and required Java 8.

Practical next step

If you are upgrading from v1.17 or earlier, expect old saves to stop working, so finish or back up current playthroughs first. If you are on v1.17 already, v1.18 is a low-risk update focused on crashes and input, and the new defaults may reset skybox-related settings in a fresh config. Release notes and downloads are posted on M210 Projects.

Can I play Unreal, Unreal Tournament, or Serious Sam through M210 Projects?

No — not through the files hosted on M210 Projects itself. The site's downloads and release notes centre on BuildGDX, a Java port of games built on the Build engine: Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar and similar titles. Unreal, Unreal Tournament and Serious Sam are mentioned in the site's wider scope, but the page evidence shows no downloads or version notes for them.

The distinction matters because these are different engines with different porting projects:

Game Engine Covered by BuildGDX on this site?
Blood, Duke3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar Build Yes — listed as supported ports
Unreal / Unreal Tournament Unreal Engine No evidence of downloads here
Serious Sam Serious Engine No evidence of downloads here

What you can actually get here

The download list is BuildGDX releases, with the most recent being v1.18 (11 January 2025). Recent changes include bilinear filtering for palette emulation, XInput gamepad support on Windows, and a range of crash and renderer fixes — useful if you are running one of the supported Build-engine shooters and want a source port with modern input and display handling.

Practical next step

If your goal is Unreal or Serious Sam, check the communities dedicated to those engines rather than this site. For Unreal and Unreal Tournament, OldUnreal maintains long-running patches and community support. For Serious Sam, [[site: seriously.com|Croteam]] is the developer's official home, and the games are also sold on mainstream storefronts. If you actually want to play Blood or Duke Nukem 3D, BuildGDX from M210 is a reasonable fit — you still need the original game data files, which the port does not supply.

Related questions

More questions →
What Is eDuke32 and How Does It Differ from Other Build Engine Source Ports?

eDuke32 is a source port of the Build engine, the technology behind Duke Nukem 3D and several other 1990s first-person shooters. It runs the original game data you already own while replacing the old DOS executable with a modern engine that adds widescreen rendering, high-resolution texture and 3D model support, improved audio, and scripting. You need it if you want to play Duke Nukem 3D or its user-made maps and mods on a current system without relying on DOSBox. It is not the same thing as BuildGDX, a separate Java-based port from M210 Projects that targets a different set of Build titles.

What eDuke32 actually is

The Build engine was licensed to multiple studios, so "Build games" is a family rather than a single title. eDuke32 focuses on the Duke Nukem 3D branch of that family. Like other source ports, it does not ship the commercial game assets. You supply the original data files (for Duke Nukem 3D, the .GRP file from your copy of the game), and the port loads them.

Because the engine is open and extensible, eDuke32 became the standard way to run:

  • The original Duke Nukem 3D episodes
  • User-made single maps and full episode replacements
  • Total conversions and gameplay mods
  • Projects that rely on extended scripting beyond what the 1996 executable allowed

What it adds over the original DOS version

The original executable was limited by 1996 hardware and DOS conventions. A source port lifts those limits. Typical gains include:

  • Display: widescreen aspect ratios, higher internal resolutions, and support for high-resolution texture packs.
  • Geometry and models: 3D model replacements for sprites, and rendering features the original renderer could not do.
  • Audio: modern sound output and music handling instead of period-correct DOS audio paths.
  • Content pipeline: scripting and definition files that let mod authors add behavior the original engine had no concept of.
  • Editing: a built-in map editor and the tooling modders use to build and test levels.

The practical effect is that a 1996 game can run at modern resolutions with community-made visual and audio upgrades, while still playing the original maps.

eDuke32 vs. BuildGDX

These are two different ports with different scopes, and the distinction matters when you are choosing what to install.

eDuke32 BuildGDX (M210 Projects)
Primary target Duke Nukem 3D and its mods A broader set of Build titles
Titles covered Duke Nukem 3D branch Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar and others
Implementation Native engine port Java-based port
Typical use Playing and modding Duke Nukem 3D Running several different Build games through one project

BuildGDX is maintained by M210 Projects, whose site also lists related work such as BloodCM and ports for Unreal and Unreal Tournament. Its release notes show active development: version 1.17 (23 August 2024) raised the Java requirement to JRE 8, added raw mouse input, a new controller input logic, drag-and-drop map file loading, a new sound manager with an OpenAL driver, a new console, and a new file handler system. Version 1.18 (11 January 2025) added bilinear filtering for palette emulation, a palette emulation soft shading option, XInput gamepad support on Windows, and a range of crash and platform fixes, including OSX sky rendering and resolution changes.

If your goal is Duke Nukem 3D specifically, eDuke32 is the conventional choice. If you want to run Blood, Shadow Warrior, or several Build games through one launcher, BuildGDX is built for that. The two are not interchangeable, and installing one does not give you the other's game support.

What you need before you start

  • A legitimate copy of the game. The port does not include the copyrighted data. For Duke Nukem 3D you need the original game files.
  • The correct data file for your title. Duke Nukem 3D uses its .GRP file; other Build games use their own data files, which is one reason a single port cannot cover all of them identically.
  • A place to put mods. Most mods are distributed as folders or archives that the port loads alongside or instead of the base game data.

Common points of confusion

  • "Source port" does not mean "free game." The engine code is separate from the game assets. You still need the game.
  • A port is not an emulator. eDuke32 reimplements the engine natively rather than emulating DOS, which is why it can add features the original never had.
  • Mod compatibility is not universal. Mods written for one port's extended scripting may not run on another, and BuildGDX's own notes record that its savegame version changed between releases, so saves are not always portable across versions.
  • BuildGDX is not a Duke Nukem 3D replacement for eDuke32. It supports Duke Nukem 3D, but its design goal is breadth across Build titles rather than depth in the Duke modding scene.

If you are deciding between them, the question to answer first is which game you actually want to run. That single answer usually settles the choice.

How to Use Poly Haven CC0 Assets in Unreal Engine

Poly Haven is a public 3D asset library offering models, textures, and HDRIs under CC0, which means you can use them in commercial Unreal Engine projects without attribution or licensing fees. To get them working, you need to match the right download format to the right Unreal import path: FBX for models, PNG or JPG for textures, and EXR or HDR for lighting. This guide covers the full workflow from search to a lit scene, plus the import problems that trip people up most often.

What Poly Haven Offers for Unreal Projects

The library is organized into three asset types, and each maps to a different part of an Unreal scene:

Asset type Typical format Used in Unreal for
Models FBX (also common interchange formats) Props, set dressing, environment pieces
Textures PNG, JPG (often with PBR maps) Material bases, roughness, normal, AO
HDRIs EXR, HDR Sky lighting, reflections, ambient light

Because everything is CC0, the license question is settled before you start: no attribution required, no restrictions on commercial use. That makes Poly Haven a practical first stop for game prototypes and arch-viz scenes where you want to move fast without tracking licenses.

Finding the Right Assets

Search by the role the asset plays in your scene rather than by name. For a game environment, you might search for a specific prop category; for arch-viz, you might search for a material type or an HDRI that matches the time of day you're lighting for.

Two habits save time later:

  • Check the resolution options before downloading. Textures and HDRIs are usually offered at several resolutions. Pick the lowest one that holds up at your target camera distance — a 1K texture on a background prop is often indistinguishable from 4K and far cheaper on memory.
  • Download the full PBR set for textures, not just the base color. A base color map alone will look flat. You want the accompanying normal, roughness, and ambient occlusion maps so the material responds correctly to light.

For models, confirm the format list on the asset page. FBX is the safest choice for Unreal because the importer handles it natively and preserves the material slot structure.

Importing Models

  1. Download the FBX from the asset page.
  2. Drag the file into the Content Browser, or use the Import button. Unreal will open the FBX Import Options dialog.
  3. Set the import settings. For static props, leave the default static mesh import. Check that "Import Materials" is enabled if you want Unreal to generate placeholder materials from the FBX's material slots.
  4. Confirm scale. Poly Haven models are typically authored at real-world scale in meters. Unreal's default unit is centimeters, and the FBX importer applies a conversion automatically. If a model comes in visibly too large or too small, this conversion is the first thing to check — see the troubleshooting section below.

After import, the mesh appears in the Content Browser. Drag it into the level to place it.

Setting Up Materials on Imported Models

The materials Unreal generates from an FBX are usually placeholder-quality. To get the intended look:

  1. Create a new Material (or Material Instance) in the Content Browser.
  2. Add texture sample nodes for each map you downloaded — base color into Base Color, normal into Normal, roughness into Roughness, and so on.
  3. Assign the material to the mesh's material slots.

If the model has multiple material slots (common for props with distinct surface types), you'll repeat this per slot.

Importing Textures and Building Materials

Textures import as Texture assets. Drag them into the Content Browser and Unreal handles the rest, but two settings matter:

  • sRGB. Base color maps should have sRGB enabled. Normal, roughness, and other data maps should have sRGB disabled, or the values will be interpreted as color and the material will look wrong.
  • Compression. The default compression is fine for most cases. For normal maps, Unreal usually detects the correct setting from the texture name or you can set it manually.

Once imported, wire the textures into a material as described above. For a tiling surface, set the texture's sampler to wrap and use a TextureCoordinate node to control tiling scale.

Setting Up HDRI Lighting

HDRIs are the fastest way to get believable lighting in an Unreal scene, and this is where the EXR/HDR format matters.

  1. Download the HDRI at a resolution appropriate to your needs. Higher resolutions give sharper reflections; lower resolutions are lighter.
  2. Import the EXR or HDR into Unreal. It becomes a Texture asset.
  3. Create a Sky Light in the level and set its source type to use the HDRI texture (via a cubemap or the Sky Light's cubemap slot, depending on your Unreal version's workflow).
  4. Optionally add a Sky Atmosphere or background sphere with the HDRI mapped to it so the sky is visible, not just the lighting.

The HDRI drives ambient light and reflections. If your scene looks flat after adding a Sky Light, check that the HDRI texture actually imported with the correct color depth — an 8-bit import of an HDR file will lose the highlight range that makes HDRI lighting useful.

Licensing: What CC0 Means Here

CC0 places the work in the public domain. For Unreal projects, that means:

  • Commercial use is allowed — you can ship a game or client arch-viz project using these assets.
  • No attribution is required, though crediting Poly Haven is a reasonable courtesy.
  • No derivative restrictions — you can modify, retexture, and redistribute the assets as part of your project.

The one thing CC0 does not do is guarantee that a given asset is free of other claims (for example, a scanned object that itself has trademark protection). For ordinary props, materials, and HDRIs, this is rarely a practical concern, but it's worth knowing the distinction between a permissive license and a legal clearance.

Troubleshooting Common Import Issues

Model comes in at the wrong scale

This is the most common FBX import problem. Causes and fixes:

  • Unit mismatch. If the FBX was authored in meters and Unreal interprets it as centimeters (or vice versa), the model will be off by a factor of 100. Check the FBX Import Options for the "Convert" or scale setting and adjust.
  • Non-uniform scale in the source. If the model was scaled non-uniformly before export, it can import distorted. Re-export from the source at uniform scale if possible.

Textures look wrong or washed out

Almost always an sRGB setting. Base color maps need sRGB on; data maps (normal, roughness, metallic, AO) need it off. Fix it in the Texture asset's details panel and the material will update.

HDRI lighting looks flat

Either the HDRI imported at reduced bit depth, or the Sky Light isn't set to use it as a cubemap source. Verify the texture's imported format and the Sky Light's source setting.

Missing textures after import

Unreal doesn't automatically find textures referenced by an FBX unless they're in the expected relative path. The reliable fix is to import textures manually and wire them into materials yourself, which also gives you control over sRGB and compression settings.

A Practical Starting Order

For a new scene, this sequence avoids rework:

  1. Pick and import your HDRI first — it sets the lighting mood everything else is judged against.
  2. Import models and place them roughly.
  3. Import textures and build materials, then assign them.
  4. Adjust lighting and exposure last, once the materials are correct.

Working in this order means you're not re-tuning lighting every time a material changes.

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

  1. Install a Java 8 or newer runtime.
  2. Obtain the BuildGDX release from the M210 Projects downloads section.
  3. Place your original Blood data files where the port expects them.
  4. Launch the BloodGDX component.
  5. Open the configuration and adjust the options you care about — palette emulation, bilinear filtration, mouse sensitivity, and controller input if you are on Windows.
  6. 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.

What Is M210 Projects and What Does It Offer?

M210 Projects is the home of BuildGDX, a Java-based source port that runs classic Build engine games such as Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven, and Tekwar on modern systems. If you want to play those games with updated input, rendering, and audio support, this is the project to look at. The site also covers maps and mods for eDuke32, Unreal, Unreal Tournament, Serious Sam, and Half-Life, and it hosts release notes, downloads, a forum, and a Discord server.

What BuildGDX actually is

BuildGDX is a port of the Build engine games, written in Java and built on libGDX. Rather than emulating the original executables, it reimplements the engine so the games can run natively on current hardware and operating systems.

The port covers several games under one project, with per-game components named after their titles:

  • BloodGDX – Blood
  • DukeGDX – Duke Nukem 3D
  • WangGDX – Shadow Warrior
  • DK / RR – Redneck Rampage titles
  • TekwarGDX – Tekwar
  • LSPGDX – Witchaven

Because it is Java-based, BuildGDX requires a Java runtime. The v1.17 release notes state that the Java code level was increased to version 8, so JRE 8 is required from that version onward.

What changed in recent versions

The download page lists version histories with dated release notes. The most recent entry is BuildGDX v1.18 (11.01.2025), which includes:

  • Bilinear filtration for palette emulation mode
  • A palette emulation soft shading option
  • XInput gamepad support (Windows only)
  • Updated libraries: libgdx 1.13.0, jinput 2.0.10, lwjgl 3.3.3
  • Mouse sensitivity changed from a 0–2 slider to a text field
  • useHighTiles and useModels default back to true for new configs (affects skyboxes)
  • Multiple crash fixes, including deleting all save files then saving a new one, and loading maps with broken sectors
  • Software renderer resolution check: resolutions larger than 4096x3072 are not supported
  • OSX sky rendering and resolution changing fixes

The previous major release, BuildGDX v1.17 (23.08.2024), was a larger overhaul. Its notes mention raw mouse input, a new controller input logic, drag-and-drop map file support, a new sound manager and OpenAL driver 1.23, a new console, a new input processor, a new file handler system, and a new renderer changer. Importantly, it also notes that the savegame version was increased and is not compatible with older BuildGDX saves, and that the config file version changed.

Older entries on the page go back to v1.14 (26.07.2020), so you can trace how the port evolved if you need to match a specific version.

How to get started

  1. Go to the Main Downloads section of the site.
  2. Pick the BuildGDX version you want. If you are starting fresh, the latest release is the natural choice; if you need compatibility with existing saves or configs, check the version notes first.
  3. Make sure you have a Java runtime installed. For v1.17 and later, that means JRE 8 or newer.
  4. Install the port and point it at your game data. BuildGDX is a port, not a game distribution — you still need the original game files.
  5. Use the in-game console and configuration options to adjust rendering, input, and audio to your setup.

If you run into problems, the site links to a forum and a Discord server where the project is discussed.

Beyond BuildGDX

The site's scope is wider than one port. Its title and keywords reference eDuke32, Unreal, Unreal Tournament, Serious Sam, and Half-Life, along with maps and mods for those games. So if you came for Duke Nukem 3D mapping or Unreal content, there may be relevant material here beyond the BuildGDX downloads.

Supporting the project

The site lists PayPal as a payment platform, so you can support development financially if you want to. There is no indication on the page that any of the downloads are paid or require login — but the page evidence does not state download terms explicitly, so treat availability as something to confirm on the site itself.

Quick reference

Item Detail
Core project BuildGDX, a Java/libGDX port of Build engine games
Games covered Blood, Duke Nukem 3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar
Latest listed release v1.18, 11.01.2025
Java requirement JRE 8 from v1.17 onward
Save compatibility v1.17 increased the savegame version; old BuildGDX saves are not compatible
Other topics eDuke32, Unreal, Unreal Tournament, Serious Sam, Half-Life maps and mods
Community Forum and Discord server
Support PayPal

If your goal is to run a classic Build engine game on a modern machine, start with the latest BuildGDX release and confirm you have JRE 8 or newer. If your goal is mapping or modding for the other listed games, browse the downloads and forum sections for the relevant title.

Minecraft Mods Explained: What They Are and How to Find and Install Them

Minecraft mods are community-made additions that change the game — adding new blocks, mobs, biomes, tools, or improving performance and interface. To use them, you need a mod loader (such as Fabric, Forge, or NeoForge) that matches your game version, and you need to match each mod's supported version and loader before installing. This guide covers what mods are, how they relate to loaders and modpacks, how to find them, and how to install and troubleshoot them.

What Mods, Mod Loaders, and Modpacks Actually Are

These three terms get mixed up constantly, so it helps to separate them:

  • Mod — a single modification. One mod might add a minimap; another might optimize chunk rendering.
  • Mod loader — the framework that lets mods run at all. Fabric, Forge, and NeoForge are the common ones. A mod built for Fabric generally will not run on Forge, and vice versa.
  • Modpack — a curated bundle of many mods, usually pre-configured to work together, often distributed through a launcher.

The practical consequence: when you download a mod, you are choosing a loader and a game version, not just a feature. A mod page will list something like "Fabric 1.20.1" — that is the combination you must match.

Common Types of Mods by Purpose

Most mods fall into a few broad categories, which is useful when you are browsing a large list and want to filter by intent rather than name.

Category What it does Typical examples of purpose
Performance Reduces lag, improves frame rate or memory use Rendering and chunk optimization
Content expansion Adds blocks, mobs, biomes, dimensions, tech trees New gameplay systems
Interface / HUD Changes menus, maps, inventory display Minimaps, recipe viewers
Quality of life Small conveniences Inventory sorting, better tooltips
Library / dependency Provides shared code other mods need Required by many other mods

That last row matters more than it looks. Many mods will not run on their own — they depend on a library mod, and if you skip it, the game crashes or the mod silently fails to load.

How to Find Mods and Check Compatibility

A searchable mod list is the fastest starting point. FiberMC, for example, describes itself as "a searchable list of (almost) all Minecraft Fabric mods," and its interface exposes sort and filter controls including Name, Author, Downloads, Latest Supported Version, and Date Updated, plus a Categories filter and a table view.

When you are looking at any mod listing, check these before downloading:

  1. Loader — does it say Fabric, Forge, or NeoForge? Match it to your setup.
  2. Game version — does it support the exact Minecraft version you run? "1.20" and "1.20.1" are not always interchangeable.
  3. Dependencies — does the description list required library mods?
  4. Last updated — a mod that has not been updated for your version may still work, but it is a risk signal.
  5. Downloads / popularity — useful as a rough signal, not a guarantee of quality.

Sorting by Latest Supported Version or Date Updated is a quick way to surface mods that are actually current for your game version, rather than ones that stopped being maintained a year ago.

Installing Mods: The Basic Steps

The exact clicks depend on your launcher, but the logic is consistent:

  1. Install a mod loader for your Minecraft version (Fabric, Forge, or NeoForge) and create a profile for it in your launcher.
  2. Locate your mods folder — usually .minecraft/mods for that profile.
  3. Download the mod file that matches your loader and game version (typically a .jar).
  4. Place the .jar into the mods folder. Do not unzip it.
  5. Download and add any required dependencies the same way.
  6. Launch the game using the modded profile, not the vanilla one.

Expected result: the game starts with the mod active. If it does not, the next section is where to look.

Troubleshooting Crashes and Conflicts

Most mod problems come down to a small set of causes:

  • Wrong loader — a Forge mod in a Fabric profile will fail.
  • Wrong game version — the mod targets a version your loader profile is not running.
  • Missing dependency — a required library mod is absent.
  • Two mods conflicting — two mods change the same thing (for example, both overhaul the same UI screen).
  • Outdated mod — it worked on an older version but breaks on the current one.

A practical approach: add mods in small batches rather than all at once, so when something breaks you know which addition caused it. Read the crash log — it usually names the failing mod or the missing dependency directly.

Why Multiplayer Needs Matching Mods

On a server, mods generally need to be present on both the server and the client for the features to work, because the server and client each run their own copy of the game logic. Some mods are server-side only (they change server behavior without requiring clients to install anything), and some are client-side only (like a minimap), but many content mods require both sides to match. If a server runs a mod the client does not have, the client may be rejected or the feature may not function. This is also why modpacks are popular for multiplayer — everyone installs the same bundle, so versions and dependencies line up automatically.

Quick Decision Guide

  • Just want better performance? Look for performance-category mods matching your loader and version.
  • Want new content? Check content-expansion mods, and expect to install dependencies.
  • Playing with friends? Use a shared modpack so server and client match.
  • Not sure a mod is current? Sort by latest supported version or date updated, and confirm the loader and game version before downloading.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Registered in 2005, this domain has about 21 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is Gandi SAS, a widely used domain service provider. The domain uses the common .net extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by afraid.org, indicating managed DNS hosting. MX records point to the Google Workspace email service. SPF and DMARC are configured. DKIM status is unknown. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed. The lowest observed DNS TTL is 500 seconds.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Permissions-Policy, clickjacking protection. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header identifies Apache without an exact version.

Technology Stack Analysis

The public page identifies Joomla! - Open Source Content Management, Joomla, jQuery, Apache without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The title has 77 characters and may be truncated in search results. The Generator tag identifies Joomla! - Open Source Content Management, making the publishing system easier to fingerprint. No viewport meta tag was detected, which may affect mobile layout behavior. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference.

Hosting and Email

DNSafraid.org
Hostingduke4.net
EmailGoogle Workspace
Location The Netherlands flagNaaldwijk, South Holland, The Netherlands 212.8.242.16

User reviews (0)

  • No reviews yet.

Pages, Search and Sharing

Meta descriptionBuildGDX (The port of Blood, Duke3D, Shadow Warrior, Redneck Rampage, Witchaven, Tekwar, etc.)
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

All bots 0 allowed · 15 disallowed
  • Disallow/administrator/
  • Disallow/cache/
  • Disallow/cli/
  • Disallow/components/
  • Disallow/images/
  • Disallow/includes/
  • Disallow/installation/
  • Disallow/language/
  • Disallow/libraries/
  • Disallow/logs/
  • Disallow/media/
  • Disallow/modules/
  • Disallow/plugins/
  • Disallow/templates/
  • Disallow/tmp/

No sitemaps found

Registration details RDAP / WHOIS

RegistrarGandi SAS
Registered2005-03-02
Expires2031-03-02
Domain statusclient transfer prohibited
Nameserversns1.afraid.org、ns2.afraid.org、ns3.afraid.org、ns4.afraid.org
DNSSECunsigned

DNS records

TypeNameValueTTLPriority
Aduke4.net212.8.242.163600—
MXduke4.netaspmx.l.google.com360010
MXduke4.netalt1.aspmx.l.google.com360020
MXduke4.netalt2.aspmx.l.google.com360030
MXduke4.netaspmx2.googlemail.com360040
MXduke4.netaspmx3.googlemail.com360050
NSduke4.netns1.afraid.org3600—
NSduke4.netns2.afraid.org3600—
NSduke4.netns3.afraid.org3600—
NSduke4.netns4.afraid.org3600—
TXTduke4.netv=spf1 ip4:212.8.242.14 ip4:212.8.242.16 include:_spf.google.com ~all500—
CNAMEm210.duke4.netduke4.net3600—
DMARC_dmarc.duke4.netv=DMARC1; p=none3600—

TLS and certificates

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectduke4.net
IssuerLet's Encrypt
Valid until2026-11-30T06:34 · Remaining when checked: 57 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HeaderValue
content-typetext/html; charset=utf-8
cache-controlno-store, no-cache, must-revalidate, post-check=0, pre-check=0
serverApache
strict-transport-securitymax-age=31536000
x-content-type-optionsnosniff
referrer-policystrict-origin-when-cross-origin
set-cookieRedacted

Identified technologies

Joomla! - Open Source Content ManagementJoomlajQueryApache