Збірка NotBlood з підключенням до серверів IPv6


Вперше наткнувся на ініціативу запуску цієї гри в Geminispace і оскільки гайдів по типу Халфи:

http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/yggdrasil:games:half_life_on_xash3d

на цю тему я не побачив (або не там шукав) вирішив зробити такий, тим паче що сервер там - Yggdrasil.


По суті, для цієї гри створено реверс-рушій NBlood:

https://github.com/NBlood/NBlood


Але я буду користуватись модом NotBlood, який є його форком з ~2k комітів поверху, на момент допису:

https://github.com/clipmove/NotBlood


Збірка


В мережі є спільна для усіх рушіїв цього типу документація:

https://wiki.eduke32.com/wiki/Building_EDuke32_on_Linux


З неї згодяться такі залежності:


sudo dnf install g++ nasm mesa-libGL-devel SDL2-devel alsa-lib-devel libvpx-devel gtk2-devel flac flac-devel

На сусідньому ресурсі, є тема:

http://[200:8622:7a28:83ed:64b5:9254:8804:daa3]/g/thread/26.html#81


З неї, нам знадобиться наступний патч для підтримки адрес IPv6 (UPD. вже не потрібен):


Кароче, анон:

В /NotBlood/source/blood/src/osdcmd.cpp

Ищешь

{ "net_address","sets network address used for multiplayer", (void *)zNetAddressBuffer, CVAR_STRING|CVAR_FUNCPTR, 0, 16 },

Правишь 16 на 128

{ "net_address","sets network address used for multiplayer", (void *)zNetAddressBuffer, CVAR_STRING|CVAR_FUNCPTR, 0, 128 },

В /NotBlood/source/blood/src/network.cpp

в двух местах правишь char ipaddr[32]; на char ipaddr[128];

Компиляешь.

После этого NotBlood воспринимает прописанный в ~/.config/notblood/notblood_cvars.cfg длинный адрес и способен к нему коннектиться, проверено.


На Fedora 43, мені довелось тільки вимкнути HAVE_GTK2 (1 by default)


make HAVE_GTK2=0

Ігрові набори


Тут є пара не офіційних референсів:


https://rutracker.org/forum/viewtopic.php?t=5498167

https://archive.org/details/blood-gt-interactive-software-1997disc-1


Але я шукатиму для себе білу (або найбільш біляву) версію.


UPD. видача з гугла, сумісність поки не перевірено:


https://store.steampowered.com/app/3884520/Blood_Refreshed_Supply/

https://www.gog.com/en/game/blood_refreshed_supply

https://store.epicgames.com/en-US/p/blood-refreshed-supply-f8bb7c


В залежності від способу отримання, файли вказані в README (github.com/clipmove/NotBlood#installing) копіюються до теки з бінарником `notblood`:



Якщо це `.exe`, то розпакувати цей формат можна утилітою `innoextract`:


sudo dnf install innoextract
innoextract /path/to/game.exe

Ігрові набори як правило розпаковуються до теки `app`, їх можна додатково перевірити антивірусом:


clamscan -r app

Після чого шукаємо потрібні залежності, наприклад командою:


find app -name "VOXEL.DAT"

Запуск


Гру можна запускати з користувацькими аргументами:

https://wiki.eduke32.com/wiki/Command_line_options


Наприклад, може стати в нагоді вибірковий шлях до ігрових наборів:


notblood -game_dir=/path/to/data

Оскільки адреси Yggdrasil - занадто довгі для ручного вводу, спочатку я вказав аліас в `/etc/hosts`, але це не спрацювало. Згодом, анон підказав рішення для правильного конекту в мультиплеєр 0200::/7


notblood -client 201:b8dc:421d:4b4d:add6:af78:f9d6:f18c -port 23513

В моїй редакції Flatpak (за посиланням нижче) запуск відбувається так:


flatpak run ps.clipmove.NotBlood -client 201:b8dc:421d:4b4d:add6:af78:f9d6:f18c -port 23513

Всі доступні команди, можна переглянути командою:


notblood -help

Сервери



Radicle/Git



Посилання


Фрагмент геймплею (скріншот)

HOW TO PLAY BLOOD MULTIPLAYER IN 2025!


Дивіться також


Тред на BBS



/uk/