В первой части мы рассмотрели сборку Quake и MoHAA == Медаль за отвагу (тут => https://dzen.ru/a/Z0v6webjdRxDBvS0).
После релиза "ремастера" трилогии игр S.T.A.L.K.E.R. от GSC Game world (для меня уже не GSC как Григорович ее продал, сдал в аренду... не важно ) загадочным образом перестал запускаться оригинальный Сталкер в Steam, как в Windows так в Linux под Proton.
Так как мы не желаем смотреть на цензуру и пропаганду, приступим к сборке открытой версии движка от трепетной и заботливой команды разработчиков.
Первым делом клонируем репозиторий с помощью git
git clone https://github.com/OpenXRay/xray-16.git
Нужен последний стабильный релиз (не путать с релиз кандидатами) переходим на коммит 1dc1c10 ( на 24.05.2025 г.см. P.S.!!!) возможно у Вас будет что то другое, заходите на страничку с релизами (https://github.com/OpenXRay/xray-16/releases) и смотрим где плашка Latest зеленого цвета.
git chechkout 1dc1c10
Вытягиваем все дополнительные модули необходимые для сборки
git submodule update --init --recursive
Процесс может быть длительным
Теперь установим зависимости, необходимо поставить пакеты:
cmake,
build-essential,
libglew-dev,
libegl1-mesa-dev,
libgles2-mesa-dev,
libopenal-dev,
libcrypto++-dev,
libfreeimage-dev,
libfreeimageplus-dev,
libogg-dev,
libtheora-dev,
libvorbis-dev,
liblzo2-dev,
libjpeg-dev,
libncurses5-dev,
gcc-10,
libpcre3-dev,
libsdl2-dev,
g++-10,
debhelper,
Кроме данного списка мне потребовалось
libtbb2-dev
Стоит оговориться что сборка производилась под ОС LinuxMint 21.3 аналог Ubuntu 22.04 LTS, версия gcc 11.4.0 cmake 3.22.1
теперь выполняем конфигурацию проекта (после cmake стоит точка)
cmake .
Если в процессе возникли ошибки внимательно смотрим на название и устанавливаем необходимые зависимости.
Начинаем сборку
make -j 14
Ожидаем окончание сборки. В зависимости от машины и производительности, в пике вместе с браузером и компиляцией система потребляла до 7,5 Гб памяти ОЗУ, а сама сборка шла на Ryzen 9 5900HX и процесс длился не более 3-4 минут.
По завершению получим каталог
bin/x64/Release
где будут лежать все необходимые файлы и библиотеки
На текущий момент поддерживается Зов Припяти и Чистое небо, увы Тени Чернобыля только в ночных сборках, а моя система (LinuxMint 21.03) имеет старую версию cmake и пересобирать его ради SoC не сильно хочется.
Далее берем папку с ресурсами игры, например Чистое небо, переименовываем каталог bin в bin_bk, создаем bin и туда размещаем все что скомпилировалось в bin/x64/Release
Отсюда скачиваем gamedata для чистого неба https://github.com/OpenXRay/xray-16/wiki/%5BRU%5D-Как-установить-и-играть
распаковываем архив в папку с игрой
далее переходим в папку bin и запускаем командой
LD_LIBRARY_PATH=./ ./xr_3da -fsltx <ПУТЬ_ДО_ПАПКИ_С_ИГРОЙ>/fsgame.ltx
Чтобы в последствии не бегать в терминал в папке с игрой можно создать скрипт, например с именем start_stalker_cos.sh в нем разместить строки
#!/bin/bash
PATH_TO_SCRIPT_FOLDER=`dirname $0`
cd $PATH_TO_SCRIPT_FOLDER
PATH_TO_LTX="`pwd`/fsgame.ltx"
LD_LIBRARY_PATH=./bin ./bin/xr_3da -fsltx $PATH_TO_LTX
Далее даем права на исполнение
chmod +x start_stalker_cos.sh
И запускаем игру через ярлык с рабочего стола.
Полезные источники информации:
GitHub проекта Как собрать движок на Linux (https://github.com/OpenXRay/xray-16/wiki/%5BRU%5D-Как-собрать-движок-на-Linux)
GitHub проекта Параметры командной строки для запуска (https://github.com/OpenXRay/xray-16/wiki/%5BEN%5D-Engine's-command-line-keys)
P.S.
В процессе работы с материалом выяснил, что собрал релиз-кандидат, но это не изменило ситуацию, так как при настройках графики выяснилось, что при установке пресета выше Low наблюдаются артефакты освещения.
Их можно избежать вручную, настроив детализацию и остальные параметры на максимум при пресете Low, но отсутствие динамического освещения, конечно, делает картинку серовато-скучной, как в SoC, что на просторах болот смотрится не так эффектно.
Ниже примеры артефактов:
При сборке релиза вскрывается досадная ошибка в файле
Externals/luabind/luabind/typeid.hpp
не хватает инклуда, чтобы исправит ошибку добавляем туда строчку
#include <cstddef>
файл будет выглядеть так
После чего сборка пройдет без нареканий
Оставлю ссылки на архивы с бинарными сборками для LinuxMint 21.3:
Страница с релизами проекта (https://github.com/OpenXRay/xray-16/releases)
December 2021 RC1 commit 1dc1c10
December 2020 Preview commit edbaac6