Back to Home

Bunker 3D Port on GZDoom: Resource Conversion

Developer ports mobile trilogy Bunker 3D, Laboratory 3D, Fortress 3D to GZDoom/UZDoom. Two games converted to UDMF via Python from original JSON dumps. Will add lighting and sounds for 20th anniversary.

Bunker 3D on GZDoom: from 2006 mobile to UDMF
Advertisement 728x90

Port of the Mobile Trilogy Bunker 3D, Laboratory 3D, Fortress 3D to GZDoom/UZDoom

The developer is porting the mobile game trilogy Bunker 3D, Laboratory 3D, and Fortress 3D from Netsoftware to GZDoom and UZDoom. The originals from the mid-2000s were created for phones without GPUs, using raycasting graphics in the style of Wolfenstein 3D and Blood. Two out of three games have been fully converted: maps, textures, and sprites extracted from the proprietary format and adapted to UDMF. Plans include adding floor/ceiling textures, dynamic lighting while preserving the original maps as a separate mode, and sound effects. The goal is a release for the 20th anniversary of the first game.

Stages of Resource Extraction and Processing

The process starts with decompiling the original code. The level loading function into RAM is saved as .json: compressed data (games weigh <100 KB) reconstructs levels from a minimal set of parameters.

Conversion is done in Python:

Google AdInline article slot
  • JSON Parsing: Data is structured for analysis — walls with texture arrays (unlike Doom, where a sidedef has one texture).
  • Intermediate Format: Adaptation to Doom logic — sectors for floor/ceiling levels, splitting walls into linedef/sidedef.
  • Export to UDMF: Generation of TEXTUREDEF, ANIMATED, MODELDEF for direct compatibility with GZDoom/UZDoom.

Examples of levels after porting: "Warehouse" (first level), "Training", "Harbor", "Prison". Original geometry is preserved, but sectors are added for improved rendering.

Technical Features of the Adaptation

The original format is tightly optimized for mobile platform limitations: levels are built from basic primitives without explicit texture arrays. Python scripts reconstruct this into Doom structures:

  • Walls: splitting into segments with unique textures on left/right.
  • Sectors: separate for floor/ceiling, with height support.
  • Sprites/models: transfer to MODELDEF.

Current status: full resource conversion for two games. Remaining: integrate lighting (sector brightness), sounds (sound sequences), and polish for the third part.

Google AdInline article slot

Converter code is in development; stable release expected later.

Key Points

  • Two games from the trilogy fully ported to UDMF for GZDoom/UZDoom.
  • Original geometry preserved with added sectors for floor/ceiling.
  • Conversion in Python: from JSON dumps to TEXTUREDEF/MODELDEF.
  • Plans: lighting, sounds, release for 20th anniversary of Bunker 3D.
  • Relevant for Doom modders: example of working with legacy raycasting resources.

— Editorial Team

Advertisement 728x90

Read Next