Powrót do strony głównej

Port Bunkier 3D na GZDoom: konwersja zasobów

Programista portuje mobilną trylogię Bunkier 3D, Laboratorium 3D, Twierdza 3D na GZDoom/UZDoom. Dwie gry skonwertowane do UDMF przez Python z zrzutów JSON oryginału. Dodadzą oświetlenie i dźwięki na 20-lecie.

Bunkier 3D na GZDoom: od mobilnych 2006 do UDMF
Advertisement 728x90

Port mobilnej trylogii Bunker 3D, Laboratorium 3D, Forteca 3D na GZDoom/UZDoom

Programista adaptuje trylogię mobilnych gier Bunker 3D, Laboratorium 3D i Forteca 3D od Netsoftware pod GZDoom i UZDoom. Oryginały z lat 2006–2000. tworzono dla telefonów bez GPU, z grafiką raycasting w stylu Wolfenstein 3D i Blood. Dwie gry z trzech są w pełni skonwertowane: mapy, tekstury, sprite'y wyodrębniono z formatu własnościowego i dostosowano do UDMF. Planuje się dodać tekstury floor/ceiling, dynamiczne oświetlenie z zachowaniem oryginalnych map jako oddzielnego trybu, a także efekty dźwiękowe. Cel — wydanie z okazji 20-lecia pierwszej gry.

Etapy wyodrębniania i przetwarzania zasobów

Proces zaczyna się od dekompilacji oryginalnego kodu. Funkcja ładowania poziomu do RAM jest zachowana w .json: skompresowane dane (gry ważą <100 KB) rekonstruują poziomy z minimalnego zestawu parametrów.

Konwersja odbywa się w Pythonie:

Google AdInline article slot
  • Parsowanie JSON: Dane są strukturyzowane do analizy — ściany z tablicami tekstur (w przeciwieństwie do Doom, gdzie na sidedef jedna tekstura).
  • Format pośredni: Adaptacja do logiki Doom — sektory dla poziomów podłogi/sufitu, rozdzielanie ścian na linedef/sidedef.
  • Eksport do UDMF: Generowanie TEXTUREDEF, ANIMATED, MODELDEF dla bezpośredniej kompatybilności z GZDoom/UZDoom.

Przykłady poziomów po porcie: „Magazyn” (pierwszy poziom), „Ćwiczebna”, „Port”, „Więzienie”. Oryginalna geometria jest zachowana, ale dodaje się sektory dla lepszego renderingu.

Szczegóły techniczne adaptacji

Oryginalny format jest sztywno zoptymalizowany pod ograniczenia platform mobilnych: poziomy budowane są z podstawowych prymitywów bez jawnych tablic tekstur. Skrypty Python rekonstruują to w struktury Doom:

  • Ściany: podział na segmenty z unikalnymi teksturami po lewej/prawej.
  • Sektory: oddzielne dla podłogi/sufitu, z obsługą wysokości.
  • Sprite'y/modele: przeniesienie do MODELDEF.

Aktualny status: pełna konwersja zasobów dla dwóch gier. Pozostało zintegrować oświetlenie (sector brightness), dźwięki (sound sequences) i dopracowanie trzeciej części.

Google AdInline article slot

Kod konwertera w trakcie development; stabilne wydanie oczekiwane później.

Co ważne

  • Dwie gry z trylogii w pełni przeniesione do UDMF dla GZDoom/UZDoom.
  • Zachowana oryginalna geometria z dodaniem sektorów dla podłogi/sufitu.
  • Konwersja w Pythonie: od zrzutów JSON do TEXTUREDEF/MODELDEF.
  • Plany: oświetlenie, dźwięki, wydanie z okazji 20-lecia Bunker 3D.
  • Aktualne dla modderów Doom: przykład pracy ze starymi zasobami raycasting.

— Editorial Team

Advertisement 728x90

Czytaj dalej