====== NotBlood ======
С недавних пор ([[ https://github.com/clipmove/NotBlood/commit/06779d55e8342f06763b4c78300bae6a941f9cc6 | 1 ]], [[ https://github.com/clipmove/NotBlood/commit/4c6e319cddf262e8ccea7e51f223a63019290b49 | 2 ]]) пользователи Yggdrasil могут играть по сети NotBlood редакции движка [[ https://github.com/clipmove/NotBlood | clipmove ]], используя стек IPv6.
===== Скриншоты =====
{{:yggdrasil:games:notblood.webp?640|}}
===== Установка =====
Зависимости:
sudo dnf install g++ nasm mesa-libGL-devel SDL2-devel alsa-lib-devel libvpx-devel gtk2-devel flac flac-devel
Сборка:
git clone https://github.com/clipmove/NotBlood.git
cd NotBlood
make HAVE_GTK2=0
* [[ https://wiki.eduke32.com/wiki/Building_EDuke32_on_Linux | другие опции сборки ]]
В корне будет создан бинарник **notblood**.
===== Игровые наборы =====
Для запуска игры, потребуются игровые наборы: в частности файлы, которые располагаются в общей с **notblood** директории:
* BLOOD.INI
* BLOOD.RFF
* BLOOD000.DEM, ..., BLOOD003.DEM (optional)
* CP01.MAP, ..., CP09.MAP (optional, Cryptic Passage)
* CPART07.AR_ (optional, Cryptic Passage)
* CPART15.AR_ (optional, Cryptic Passage)
* CPBB01.MAP, ..., CPBB04.MAP (optional, Cryptic Passage)
* CPSL.MAP (optional, Cryptic Passage)
* CRYPTIC.INI (optional, Cryptic Passage)
* CRYPTIC.SMK (optional, Cryptic Passage)
* CRYPTIC.WAV (optional, Cryptic Passage)
* GUI.RFF
* SOUNDS.RFF
* SURFACE.DAT
* TILES000.ART, ..., TILES017.ART
* VOXEL.DAT
При наличии игры в формате .exe извлечь файлы можно утилитой **innoextract**:
sudo dnf install innoextract
innoextract /path/to/game.exe
===== Запуск =====
Запуск игры осуществляется файлом **notblood**. Если игровые наборы расположены отдельно, указать путь к директории можно аргументом -game_dir:
notblood -game_dir=/path/to/data
Все доступные [[ https://wiki.eduke32.com/wiki/Command_line_options | опции запуска ]]:
notblood -help
Подключение к игровому серверу:
notblood -client 201:b8dc:421d:4b4d:add6:af78:f9d6:f18c -port 23513
* указание псевдонима /etc/hosts - не работает!
===== Flatpak =====
В сети Radicle (Git) имеется готовый манифест для сборки all-in-one, в котором также "локально" прозеркалированы все зависимости:
rad:z4PJFeN7hLR94wVzFuKXzM5HCDmez
* ''rad:z2QnERwRUVeEEG9dDZVNFdzRDawYt'' - снимок репозитория движка (коммит на момент написания: ''4c6e319cddf262e8ccea7e51f223a63019290b49'')
* ''rad:z3wYG4MbwEyhyoRa72h2mgdR66vCm'' - игровой набор (на базе ''btih:F80B76DC92368FCD163E1AAFA97181DA97CBC9F5'')
На его примере, можно легко создать собственную сборку для любой платформы:
app-id: ps.clipmove.NotBlood
runtime: org.freedesktop.Platform
runtime-version: &runtime-version '24.08'
sdk: org.freedesktop.Sdk
command: run.sh
separate-locales: false
sdk-extensions:
- org.freedesktop.Sdk.Compat.i386
- org.freedesktop.Sdk.Extension.toolchain-i386
finish-args:
- --allow=devel
- --allow=multiarch
- --device=all
- --persist=.config
- --share=ipc
- --share=network
- --socket=pulseaudio
- --socket=wayland
- --socket=x11
add-extensions:
org.freedesktop.Platform.Compat.i386:
directory: lib/i386-linux-gnu
version: *runtime-version
org.freedesktop.Platform.Compat.i386.Debug:
directory: lib/debug/lib/i386-linux-gnu
version: *runtime-version
no-autodownload: true
x-compat-i386-opts: &compat-i386-opts
prepend-pkg-config-path: /app/lib32/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig
ldflags: -L/app/lib32
prepend-path: /usr/lib/sdk/toolchain-i386/bin
env:
CC: i686-unknown-linux-gnu-gcc
CXX: i686-unknown-linux-gnu-g++
CFLAGS: "-O2 -g"
CXXFLAGS: "-O2 -g"
libdir: /app/lib32
no-debuginfo: true
modules:
- name: bundle-setup
buildsystem: simple
build-commands:
- |
mkdir -p /app/bin
mkdir -p /app/data
mkdir -p /app/share/applications
mkdir -p /app/share/icons/hicolor/16x16/apps
mkdir -p /app/share/icons/hicolor/32x32/apps
mkdir -p /app/share/icons/hicolor/48x48/apps
mkdir -p /app/share/icons/hicolor/64x64/apps
mkdir -p /app/share/icons/hicolor/128x128/apps
mkdir -p /app/share/icons/hicolor/192x192/apps
mkdir -p /app/share/icons/hicolor/256x256/apps
install -m 0644 ./ps.clipmove.NotBlood.desktop /app/share/applications
install -m 0755 ./run.sh /app/bin
cleanup:
- ./.git
- ./.gitignore
- ./*.desktop
- ./*.md
- ./*.sh
- ./*.yml
sources:
- type: dir
path: ./
- name: asset
buildsystem: simple
build-commands:
- |
install -m 0644 ./*.AR_ /app/data
install -m 0644 ./*.ART /app/data
install -m 0644 ./*.DAT /app/data
install -m 0644 ./*.DEM /app/data
install -m 0644 ./*.INI /app/data
install -m 0644 ./*.MAP /app/data
install -m 0644 ./*.RFF /app/data
install -m 0644 ./*.SMK /app/data
install -m 0644 ./*.WAV /app/data
install -m 0644 ./logo/notblood/16.png /app/share/icons/hicolor/16x16/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/32.png /app/share/icons/hicolor/32x32/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/48.png /app/share/icons/hicolor/48x48/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/64.png /app/share/icons/hicolor/64x64/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/128.png /app/share/icons/hicolor/128x128/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/192.png /app/share/icons/hicolor/192x192/apps/ps.clipmove.NotBlood.png
install -m 0644 ./logo/notblood/256.png /app/share/icons/hicolor/256x256/apps/ps.clipmove.NotBlood.png
cleanup:
- ./*.AR_
- ./*.ART
- ./*.DAT
- ./*.DEM
- ./*.INI
- ./*.MAP
- ./*.RFF
- ./*.SMK
- ./*.WAV
- ./.git
- ./.gitignore
- ./.ico
- ./*.md
- ./logo
sources:
- type: git
url: rad://z3wYG4MbwEyhyoRa72h2mgdR66vCm
branch: master
- name: engine
buildsystem: simple
build-options: *compat-i386-opts
build-commands:
- |
sed -i 's/-D_FORTIFY_SOURCE=[0-9]//g' Common.mak
make HAVE_GTK2=0
install -m 0755 ./notblood /app/bin
cleanup:
- ./_clang-format
- ./.appveyor.yml
- ./.git
- ./.github
- ./.gitignore
- ./.vscode
- ./*.log
- ./*.mak
- ./*.md
- ./*.pk3
- ./GNUmakefile
- ./obj
- ./package
- ./platform
- ./source
sources:
- type: git
url: rad://z2QnERwRUVeEEG9dDZVNFdzRDawYt
branch: master
* в манифесте можно указать альтернативные источники данных (rad:) или использовать для клонирования классический Веб-прокси git, например [[ https://app.radicle.xyz/nodes/iris.radicle.xyz/rad%3Az4PJFeN7hLR94wVzFuKXzM5HCDmez | iris]]
Для сборки Flatpak, потребуются следующие зависимости:
sudo dnf install flatpak flatpak-builder
Пример сборки с установкой в простарстве --user:
flatpak-builder --force-clean build \
--install-deps-from=flathub \
--install \
--repo=repo \
--user \
ps.clipmove.NotBlood.yml
Для создания файла .flatpak:
flatpak build-bundle repo NotBlood.flatpak ps.clipmove.NotBlood
* см. файл NotBlood.flatpak (~28 Мб)
В отличии от системной версии, файлы игрового профиля будут доступны по адресу:
~/.var/app/ps.clipmove.NotBlood
В случае ошибки:
Can't find 32-bit runtime extension. Try running 'flatpak install org.freedesktop.Platform.Compat.i386//25.08'
flatpak install --user flathub org.freedesktop.Platform.Compat.i386
Для запуска сетевой игры в CLI:
flatpak run ps.clipmove.NotBlood -client 200:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx -port 23513
* в данной редакции поддерживаются дополнительные аргумены DEBUG (слева) и опции запуска (справа)
===== Игровые сервера =====
* [201:b8dc:421d:4b4d:add6:af78:f9d6:f18c]:23513
* [201:f044:ca34:9cc9:2946:ad06:6f2d:5c4e]:23513
===== Ссылки =====
[[ https://www.youtube.com/watch?v=NaPQ5WNNSuU | Видео с примером установки в Windows ]] ([[ http://[201:1592:3bff:105:b35f:c25b:4d3:c056]/uploads/86/f7/86f7c64eb54f7dc6839da0ff8232232649fe7533.webm | ygg ]]) \\
[[ http://[200:8622:7a28:83ed:64b5:9254:8804:daa3]/g/thread/26.html#81 | Тема на OctoChan ]] \\
[[ http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]/d/182-zbirka-notblood-z-pidkliucenniam-do-serveriv-ipv6 | Тема на UANA ]] \\
~~DISCUSSION~~