22 марта 2026, 09:12
Лаборатория 3D — порт трилогии на ядро GZDoom/UZDoom

Я разрабатываю порт старой мобильной трилогии игр Бункер 3D, Лаборатория 3D, Крепость 3D от компании Netsoftware. Данные игры были созданы преимущественно для слабых мобильных телефонов нулевых без аппаратной поддержки 3D, и визуально сильно вдохновлены играми Wolfenstein 3-D и Blood. Особенно популярны эти игры были среди русскоязычного сообщества
Первая игра в серии была выпущена в декабре 2006 года. Я надеюсь я смогу закончить данный порт к 20-летней годовщине. На данной стадии я портирую все игровые ресурсы - карты, текстуры, спрайты и пр. с формата который используется в игре, в структура игры для GZDoom. Целиком готовы 2 игры из 3. Затем я добавлю текстуры пола и потолка, освещение на картах (одновременно оставив оригинальные карты отдельным режимом), и добавлю звуки




Как в общих словах идёт портирование/конвертация ресурсов
Из декомпилированного кода оригинальной игры выдрана часть которая загружает информация при загрузке уровня в оперативную память, и информация в этом формате сохраняются в .json. Изначально я хотел сам написать парсер ресурсов, но оказалось что информация очень жестко сжаты, и по существу уровень реконструируется используя малый набор параметров. Оно и понятно, игровые самой первой игры версии 1.0 весят меньше 100Кб - это на порядки меньше классических игр 90-х
Весь процедура конвертации идёт в python коде. Данные из .json файлов загружаются и оформляются что-то более-менее осмысленное с точки зрения структуры
Информация конвертируются в промежуточный формат по логике более привычных двужку дума. Например в думе на одной стене может быть только одна текстура, а в Бункере целый массив текстур слева на право
Информация из "привычного" для дума формата конвертируются в совместимый с ним. В частности создаются сектора для разных уровней пола и потолка, стена режется на Sidedef, Linedef и т.п.
Полученные ресурсы сохраняются в карты формата UDMF, файлы TEXTUREDEF, ANIMATEDEF, MODELDEF и т.п., что уже может функционировать с GZDoom/UZDoom
Исходник конвертации можно найти здесь: https://github.com/light-and-ray/bunker3d-to-gzdoom Тем не менее я бы рекомендовал подождать релиза, нежеле трогать сырой продукт
Читают сейчас

1 час назад
Игра «Миссия Луна»: построить лунную базу и решить, что создавать, когда всё идёт не по плану
В России начали разрабатывать компьютерную игру о жизни на Луне. «Миссия Луна» — многопользовательская кооперативная игра, где экипаж строит и обслуживает постоянную лунную колонию. Анонсируют проект

2 часа назад
Perscale news #11. Fine-grained token, SQID, stdout log streaming
Всех категорически приветствую, любители нагрузки. Сегодня в выпуске: - Stdout log streaming - Fine-grained токены - SQID для публичных ID Читать далее

2 часа назад
Bose представила открытые гарнитура Ultra Open Earbuds 2 и Sport Open Earbuds
Bose представила две модели открытых TWS‑наушников: второе поколение Ultra Open Earbuds и спортивные Sport Open Earbuds. Устройства крепятся с помощью клипс и используют технологию OpenAudio, с которо

3 часа назад
Исследователи из ETH Zurich научили роботизированную кисть ходить на пальцах и нажимать клавиши
Исследователи из лаборатории Soft Robotics Lab при Швейцарской высшей технической школы Цюриха научили антропоморфную роботизированную кисть передвигаться на пальцах. Робот умеет ползать по разным пов

3 часа назад
ИИ в тестировании: разбираем падения автотестов, оцениваем LLM и строим обвязку агентов
В августе прошёл Bugs Busters — митап для QA-специалистов от ЮMoney. Спикеры компании рассказали, как применяют ИИ для анализа причин падения e2e-автотестов, как устроен средство для подбора оптимальн