How-to compile games on e2k: различия между версиями

Материал из ALT Linux Wiki
(→‎vkQuake3: +Q2RTX)
 
(не показана 181 промежуточная версия 8 участников)
Строка 1: Строка 1:
==HUD==
==HUD==
В OpenGL приложениях для выведения графической статистики можно использовать GALLIUM_HUD
В OpenGL-приложениях для выведения графической статистики можно использовать GALLIUM_HUD:


     GALLIUM_HUD=fps,cpu+GPU-load,cpu0+cpu1+cpu2+cpu3+cpu4+cpu5+cpu6+cpu7,requested-VRAM+VRAM-usage,draw-calls ./game_binary
     GALLIUM_HUD=fps,cpu+GPU-load,cpu0+cpu1+cpu2+cpu3+cpu4+cpu5+cpu6+cpu7,requested-VRAM+VRAM-usage,draw-calls ./game_binary


В Vulkan приложениях для выведения графической статистики можно использовать VK_LAYER_MESA_overlay
В [[Vulkan]]-приложениях для выведения графической статистики можно использовать VK_LAYER_MESA_overlay или [[Обсуждение:Vulkan|MangoHUD]]:


     VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics ./game_binary
     VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics ./game_binary
Строка 20: Строка 20:
     git clone --recursive https://github.com/flightlessmango/MangoHud.git
     git clone --recursive https://github.com/flightlessmango/MangoHud.git
     cd MangoHud
     cd MangoHud
переключение на стабильную версию 0.6.1 (29 Nov 2020) - 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1 (опционально)
переключение на стабильную версию 0.6.6-1 (23 Oct 2021) - da573e8ebaf8d8d0000890c1fab40944edebc7f1 (опционально)
     cd MangoHud && git checkout 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1
     cd MangoHud && git checkout da573e8ebaf8d8d0000890c1fab40944edebc7f1
выключаем NV-CONTROL X extension (libxnvctrl, контроль за параметрами драйвера NVIDIA X) и NVIDIA Management Library (NVML)
выключаем NV-CONTROL X extension (libxnvctrl, контроль за параметрами драйвера NVIDIA X) и NVIDIA Management Library (NVML)
     ./build.sh build -Dwith_xnvctrl=disabled -Dwith_nvml=disabled
     ./build.sh build -Dwith_xnvctrl=disabled -Dwith_nvml=disabled
Строка 27: Строка 27:
     ./build.sh install
     ./build.sh install
создание deb пакета при помощи checkinstall (опционально)
создание deb пакета при помощи checkinstall (опционально)
     checkinstall --type=debian --install=no --pkgname=mangohud --pkgversion=0.6.1 --nodoc --strip --stripso --gzman ./build.sh install
     checkinstall --type=debian --install=no --pkgname=mangohud --pkgversion=0.6.6 --nodoc --strip --stripso --gzman ./build.sh install




Строка 34: Строка 34:


     MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,gpu_load_change,`gpu_load_color=0000FF,00FFFF,FF00FF`,`gpu_load_value=50,90`,cpu_load_change,`cpu_load_color=0000FF,00FFFF,FF00FF`,`cpu_load_value=50,90`,font_size=32 mangohud ./game_bin
     MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,gpu_load_change,`gpu_load_color=0000FF,00FFFF,FF00FF`,`gpu_load_value=50,90`,cpu_load_change,`cpu_load_color=0000FF,00FFFF,FF00FF`,`cpu_load_value=50,90`,font_size=32 mangohud ./game_bin
==dhewm3==
dhewm3 is a source port of the original Doom3 (not Doom3 BFG, for that you may want to try [[How-to_compile_games_on_e2k#RBDOOM-3-BFG|RBDOOM-3-BFG]]).
- [https://dhewm3.org/ Сайт]
- [https://github.com/dhewm/dhewm3 GitHub]
    git clone --recursive https://github.com/dhewm/dhewm3.git
переключение на стабильную версию 1.5.1 (14 Mar 2021) - 441c26e5b0a31fdf5b69ca7f63d7717a08855723 (опционально)
    cd dhewm3 && git checkout 441c26e5b0a31fdf5b69ca7f63d7717a08855723
    cd dhewm3 && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDEDICATED=ON -DONATIVE=ON ../neo
    make -j8


==RBDOOM-3-BFG==
==RBDOOM-3-BFG==
Строка 41: Строка 56:


     git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git
     git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git
переключение на стабильную версию 1.4.0 (Mar 6 2022) - f81a8c1dd9b762774a233ba071837b2c7a374751 (опционально)
    cd RBDOOM-3-BFG && git checkout f81a8c1dd9b762774a233ba071837b2c7a374751
     cd RBDOOM-3-BFG && mkdir build && cd build
     cd RBDOOM-3-BFG && mkdir build && cd build


OpenGL (без Intel Intrinsics):
OpenGL (без Intel Intrinsics):
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS_SSE=OFF ../neo
OpenGL (с Intel Intrinsics):
OpenGL (с Intel Intrinsics):
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo
Строка 50: Строка 69:


Vulkan (без Intel Intrinsics):
Vulkan (без Intel Intrinsics):
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF ../neo
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS_SSE=OFF -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF ../neo
Vulkan (с Intel Intrinsics):
Vulkan (с Intel Intrinsics):
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF -DFFMPEG=OFF -DBINKDEC=ON ../neo
     cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF -DFFMPEG=OFF -DBINKDEC=ON ../neo
Строка 60: Строка 79:
     ./RBDoom3BFG +set r_usePBR 0 +set r_useShadowMapping 0 +set r_useHDR 0 +set r_useFilmicPostProcessing 0
     ./RBDoom3BFG +set r_usePBR 0 +set r_useShadowMapping 0 +set r_useHDR 0 +set r_useFilmicPostProcessing 0


Запуск с модом (например Ultimate HD mod)
Запуск с модом (например [https://www.moddb.com/mods/doom-3-bfg-ultimate Ultimate HD mod])
     ./RBDoom3BFG +set fs_resourceLoadPriority 0 +set fs_game @UltimateHD
     ./RBDoom3BFG +set fs_resourceLoadPriority 0 +set fs_game @UltimateHD


Строка 78: Строка 97:


Компилирование
Компилирование
    make -j8
==com.n0n3m4.diii4a==
idTech4A++, DOOM III/Quake 4/Prey(2006) for Android, based on n0n3m4's DIII4A.
- [https://github.com/glKarin/com.n0n3m4.diii4a GitHub]
    git clone --recursive https://github.com/glKarin/com.n0n3m4.diii4a.git
    cd com.n0n3m4.diii4a && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release
    make -j8
Можно перейти на использование OpenGL ES 2 вместо OpenGL ES 3, указав опцию <code>-DOPENGLES3=OFF</code> при сборке.
==libopenglrecorder==
library allowing optional async readback OpenGL frame buffer with optional audio recording. One potential use case for libopenglrecorder is integrating video recording into a game.
- [https://github.com/Benau/libopenglrecorder GitHub]
    git clone --recursive https://github.com/Benau/libopenglrecorder.git
    cd libopenglrecorder && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
     make -j8
     make -j8


Строка 85: Строка 126:
- [https://supertuxkart.net/ Сайт]
- [https://supertuxkart.net/ Сайт]
- [https://github.com/supertuxkart/stk-code GitHub]
- [https://github.com/supertuxkart/stk-code GitHub]
Требуемые библиотеки:
# [[How-to_compile_games_on_e2k#libopenglrecorder|libopenglrecorder]]


загружаем игровые данные (без них будет ошибка на этапе конфигурирования через CMake)
загружаем игровые данные (без них будет ошибка на этапе конфигурирования через CMake)
Строка 91: Строка 135:
     git clone --recursive https://github.com/supertuxkart/stk-code.git
     git clone --recursive https://github.com/supertuxkart/stk-code.git


переключение на стабильную версию 1.2 (28 Aug 2020) - 6e17f2ed6bc5134e6d9070c3321ff245739aa23a (опционально)
переключение на стабильную версию 1.3 (28 Sep 2021) - ec1775ebedb9cfa41b8099f980325271f80a007b (опционально)
     cd stk-code && git checkout 6e17f2ed6bc5134e6d9070c3321ff245739aa23a
     cd stk-code && git checkout ec1775ebedb9cfa41b8099f980325271f80a007b


     cd stk-code && mkdir build && cd build
     cd stk-code && mkdir build && cd build
Строка 115: Строка 159:
     cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/
     cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/
     make -j8
     make -j8
Получившиеся бинарники и содержимое папок Debug поместить в папку Bin соответствующих оригинальных игр.
=== Serious Sam Alpha Remake ===
Serious Sam Alpha Remake это модификация, полностью представляющая того «Серьезного Сэма», каким он мог быть изначально, до переделки всех уровней и моделей.
Летом 2013 года команда с SeriousSite.ru отправили письмо в Croteam с просьбой предоставить предварительную версию «Серьёзного Сэма». Роман Рибарич согласился на просьбу и поделился старой версией с согласия других членов команды Croteam.
Команда SeriousSite.ru анонсировала выпуск будущей бесплатной модификации Serious Sam Origins. К сожалению, по неизвестным причинам команда Serious Sam Origins заморозила проект в 2016 году и полностью прекратила его разработку.
Параллельно польский фанат игры с ником Zdzichu сообщил о создании модификации Serious Sam Alpha Remake в 2015 году на основе утекшего windows билда предрелизной версии игры. После четырех лет разработки, в 2019 году вышла финальная версия мода Serious Sam Alpha Remake. Подробнее можно прочитать тут: [https://github.com/tx00100xt/SeriousSamAlphaRemake/wiki SeriousSamAlphaRemake Wiki]
Сборка для SeriousSamClassic (opengl) и SeriousSamClassic-VK (opengl/vulkan) идентична.
Ниже сборка игры вместе с модификацией Serious Sam Alpha Remake и XPLUS.
''' Сначала клонируем репозитории. '''
<pre>
git clone https://github.com/tx00100xt/SeriousSamClassic-VK.git
git clone https://github.com/tx00100xt/SeriousSamAlphaRemake.git
</pre>
В файлах SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt и SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt
можно заменить march=native на mtune="[[Модели процессоров Эльбрус|<Модель>]]" и
выставить оптимизацию [[Эльбрус/оптимизация|-O3]]
''' Потом получим архивы с контентом модов и распакуем их в клонированнй репозиторий. '''
Перейдем в клонированный репозиторий:
<pre>
cd SeriousSamClassic-VK
</pre>
Получим данные для модификации Serious Sam Alpha Remake:
<pre>
wget https://archive.org/download/serioussam-alpharemake-mod-data/SeriousSamAlphaRemake_v1.5.7z
7z x -oSamTFE SeriousSamAlphaRemake_v1.5.7z
</pre>
или
<pre>
for var in a b c d; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-SSA/SeriousSamAlphaRemake_v1.5.tar.xz.parta$var; done; cat SeriousSamAlphaRemake_v1.5.tar.xz.part* > SeriousSamAlphaRemake_v1.5.tar.xz
tar -xJvpf SeriousSamAlphaRemake_v1.5.tar.xz -C SamTFE
</pre>
Получим данные для модификации XPLUS:
<pre>
wget https://archive.org/download/sam-tfe-xplus/SamTFE-XPLUS.tar.xz
wget https://archive.org/download/sam-tse-xplus/SamTSE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE
</pre>
или
<pre>
for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-XPLUS/SamTFE-XPLUS.tar.xz.parta$var; done; cat SamTFE-XPLUS.tar.xz.part* > SamTFE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
</pre>
<pre>
for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTSE-XPLUS/SamTSE-XPLUS.tar.xz.parta$var; done; cat SamTSE-XPLUS.tar.xz.part* > SamTSE-XPLUS.tar.xz
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE
</pre>
''' Далее соберём исполняемые файлы и библиотеки для игры Serious Sam Classic вместе с модификацией XPLUS: '''
<pre>
cd SeriousSamClassic-VK
mkdir build
mkdir build-xplus
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
make install
cd ..
cd build-xplus
cmake -DCMAKE_BUILD_TYPE=Release -DXPLUS=TRUE ..
make -j8
make install
</pre>
''' Далее соберём  и библиотеки для модификации Serious Sam Alpha Remake: '''
<pre>
cd SeriousSamAlphaRemake/Sources
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ..
make ecc
make -j8
</pre>
Получившиеся библиотеки libEntities.so и libGame.so из build/Debug поместить в папку SamTFE/Mods/SSA/Bin
''' Также можно собрать rpm пакеты для установки в систему используя инструкцию: '''
[https://github.com/tx00100xt/SeriousSamClassic-VK/wiki/How-to-building-a-package-for-ALT-Linux.md Как собрать rpm пакет для игры Serious Sam на системе ALT Linux. ]
''' Теперь скопируем данные игр Serious Sam The First Encounter и Serious Sam The Second Encounter: '''
Чтобы начать игру, вам потребуются исходные ресурсы лицензионной копии игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.
''' Steam-версия. '''
Если у вас есть цифровая копия игры в Steam, то ресурсы можно найти в
~/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/ (каталог установки игры Steam по умолчанию в Linux).
<pre>
cd SeriousSamClassic-VK
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The First Encounter/" SamTFE
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/" SamTSE
</pre>
''' GOG-версия. '''
Если вы купили цифровую версию на GOG, вы можете распаковать ресурсы с помощью инструмента командной строки innoextract.
<pre>
cd SeriousSamClassic-VK
innoextract --gog setup_serious_sam_the_first_encounter_2.0.0.10.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTFE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
innoextract --gog setup_serious_sam_the_second_encounter_2.1.0.8.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTSE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
rm -rf commonappdata
</pre>
''' CD-версия. '''
Если вы купили физическую копию игры и у вас есть ISO-образ вашего диска, вы можете распаковать ресурсы любым менеджером архивов.
Ресурсы игры находятся в папке Install на диске. Просто скопируйте оттуда все файлы *.gro,
а также каталог Levels в каталоги SeriousSamClassic-VK/SamTFE и SeriousSamClassic-VK/SamTSE соответственно для
игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.
''' Запуск игры. '''
Для запуска игры используйте скрипт:
<pre>
run_game.sh
</pre>
или
<pre>
run_game_hud.sh
</pre>
если вам нужен мониторинг MangoHUD.


==OpenVR SDK==
==OpenVR SDK==
Строка 136: Строка 327:


     git clone --recursive https://github.com/bulletphysics/bullet3.git
     git clone --recursive https://github.com/bulletphysics/bullet3.git
переключение на стабильную версию 3.23 (Apr 25 2022) - e95657f80fcaccf2c83db3166d845c59d2cd2d2d (опционально)
    cd bullet3 && git checkout e95657f80fcaccf2c83db3166d845c59d2cd2d2d
     cd bullet3 && mkdir build && cd build
     cd bullet3 && mkdir build && cd build


По умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно (<code>-DBUILD_SHARED_LIBS=ON</code>).  
По умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно (<code>-DBUILD_SHARED_LIBS=ON</code>).  
     cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
     cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
Также можно включить двойную точность (по умолчанию идёт без неё) и многопоточность с использованием OpenMP (по умолчанию она включается с использованием mutex).
Также можно включить двойную точность (по умолчанию идёт без неё, данная функциональность нужна для [[How-to_compile_games_on_e2k#OpenMW|OpenMW]]) и многопоточность с использованием OpenMP (по умолчанию она включается с использованием mutex).
     -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON
     -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON
Также можно выключить сборку examples и тестов (если в них нет потребности, ускорит сборку библиотеки)
    -DBUILD_CPU_DEMOS=OFF -DBUILD_BULLET2_DEMOS=OFF -DBUILD_EXTRAS=OFF -DBUILD_UNIT_TESTS=OFF


     make -j8
     make -j8
Строка 154: Строка 351:
     git clone --recursive https://github.com/twogood/unshield.git
     git clone --recursive https://github.com/twogood/unshield.git


переключение на стабильную версию 1.4.3 (30 Oct 2018) - c5d3560def781abceb36a07080437a291170ada4 (опционально)
переключение на стабильную версию 1.5.1 (5 Dec 2021) - 871c2bf9a5694e694abeeeceb034a687fd29b243 (опционально)
     cd unshield && git checkout c5d3560def781abceb36a07080437a291170ada4
     cd unshield && git checkout 871c2bf9a5694e694abeeeceb034a687fd29b243


     cd unshield && mkdir build && cd build
     cd unshield && mkdir build && cd build
Строка 186: Строка 383:


     git clone --recursive https://github.com/OGRECave/ogre.git
     git clone --recursive https://github.com/OGRECave/ogre.git
переключение на стабильную версию 1.12.11 (13 Feb 2021) - f9bf70d8e4b3c3d6e2cb6f9f2cacf98e8312d22c (опционально)
    cd ogre && git checkout f9bf70d8e4b3c3d6e2cb6f9f2cacf98e8312d22c


     cd ogre && mkdir build && cd build
     cd ogre && mkdir build && cd build
Строка 196: Строка 391:


Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
=== OGRE 1.10.12 ===
версия движка OGRE, применяемая в движке openDarkEngine
В /OgreMain/include/OgrePlatform.h в 168 строку добавить дефайн e2k
    wget https://github.com/OGRECave/ogre/archive/v1.10.12.zip
    unzip v1.10.12.zip
    cd ogre-1.10.12 && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DOGRE_BUILD_DEPENDENCIES=FALSE -DOGRE_USE_STD11=TRUE -DOGRE_BUILD_COMPONENT_PYTHON=FALSE -DOGRE_BUILD_COMPONENT_JAVA=FALSE -DOGRE_CONFIG_THREAD_PROVIDER=std ..
    make -j8


==MyGUI==
==MyGUI==
Строка 209: Строка 415:
     cd mygui && mkdir build && cd build
     cd mygui && mkdir build && cd build


по умолчанию MyGUI требует установленный движок [[How-to_compile_games_on_e2k#OGRE|OGRE]] (MYGUI_RENDERSYSTEM=3), но можно собрать и без него, поэтому переключиться на использование OpenGL (MYGUI_RENDERSYSTEM=4) или OpenGL 3.x (MYGUI_RENDERSYSTEM=7)  
по умолчанию MyGUI требует установленный движок [[How-to_compile_games_on_e2k#OGRE|OGRE]] (MYGUI_RENDERSYSTEM=3), но можно собрать и без него, поэтому стоит переключиться на использование OpenGL 3.x (MYGUI_RENDERSYSTEM=7) или OpenGL (MYGUI_RENDERSYSTEM=4)
     cmake -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 ..
     cmake -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 ..
или можно собрать без всего дополнительного (движок [[How-to_compile_games_on_e2k#OGRE|OGRE]], демо, плагины и инструменты)
или можно собрать без всего дополнительного (движок [[How-to_compile_games_on_e2k#OGRE|OGRE]], демо, плагины и инструменты)
Строка 217: Строка 423:


Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
==RecastNavigation==
Navigation-mesh Toolset for Games
- [https://github.com/recastnavigation/recastnavigation GitHub]
    git clone --recursive https://github.com/recastnavigation/recastnavigation.git
    cd recastnavigation && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
    make -j8
==LuaJIT==
Support of e2k architecture for LuaJIT.
- [https://github.com/helce/LuaJIT GitHub]
    git clone --recursive https://github.com/helce/LuaJIT.git
    cd LuaJIT
    make HOST_CC=gcc CC=gcc XCFLAGS="-DLUAJIT_UNWIND_EXTERNAL -fexceptions" TARGET_STRIP="true" PREFIX=/usr -j8
===создание отладочной (debug) версии===
    make HOST_CC=gcc CC=gcc XCFLAGS="-DLUAJIT_UNWIND_EXTERNAL -fexceptions -O0 -g" TARGET_STRIP="true" PREFIX=/usr -j8


==Sphinx==
==Sphinx==
Строка 238: Строка 466:
# [[How-to_compile_games_on_e2k#MyGUI|MyGUI]] (не ниже версии 3.2.2)
# [[How-to_compile_games_on_e2k#MyGUI|MyGUI]] (не ниже версии 3.2.2)
# [[How-to_compile_games_on_e2k#Bullet_Physics_SDK|Bullet Physics SDK]] (не ниже версии 2.86)
# [[How-to_compile_games_on_e2k#Bullet_Physics_SDK|Bullet Physics SDK]] (не ниже версии 2.86)
# [[How-to_compile_games_on_e2k#Sphinx|Sphinx]]
# [[How-to_compile_games_on_e2k#RecastNavigation|RecastNavigation]]
# [[How-to_compile_games_on_e2k#LuaJIT|LuaJIT]] (можно выключить использование через опцию <code>-DUSE_LUAJIT=OFF</code>. В таком случае будет использоваться Lua)
# [[How-to_compile_games_on_e2k#Sphinx|Sphinx]] (необходим при использовании опции <code>-DBUILD_DOCS=ON</code>)
# yaml-cpp (<code>apt install yaml-cpp</code>)
# git (<code>apt install git</code>)


     git clone --recursive https://github.com/OpenMW/openmw.git
     git clone --recursive https://github.com/OpenMW/openmw.git
переключение на стабильную версию 0.48 (20 Aug 2023) - a63d7e473eef5be221ad5e036f23bbb36c6dca10 (опционально)
    cd openmw && git checkout openmw-48
     cd openmw && mkdir build && cd build
     cd openmw && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release -DBULLET_USE_DOUBLES=OFF ..
'''Важно!!!''' - если библиотека [[How-to_compile_games_on_e2k#Bullet_Physics_SDK|Bullet Physics SDK]] собиралась без опции двойной точности (<code>-DUSE_DOUBLE_PRECISION=ON</code>), то в игре нужно перейти на использование встроенной библиотеки (<code>-DOPENMW_USE_SYSTEM_BULLET=OFF</code>)
     cmake -DCMAKE_BUILD_TYPE=Release ..
Можно собрать с доп.опциями создания документации и статической линковки всего в один исполняемый файл
Можно собрать с доп.опциями создания документации и статической линковки всего в один исполняемый файл
     -DBUILD_DOCS=ON -DMYGUI_STATIC=ON -DBOOST_STATIC=ON -DSDL2_STATIC=ON -DOSG_STATIC=ON -DQT_STATIC=ON
     -DBUILD_DOCS=ON -DBOOST_STATIC=ON -DQT_STATIC=ON -DOPENMW_USE_SYSTEM_BULLET=OFF -DOPENMW_USE_SYSTEM_OSG=OFF -DOPENMW_USE_SYSTEM_MYGUI=OFF -DOPENMW_USE_SYSTEM_RECASTNAVIGATION=OFF -DOPENMW_USE_SYSTEM_SQLITE3=OFF


     make -j8
     make -j8
Строка 303: Строка 539:
Ранее полученные файлы [[How-to_compile_games_on_e2k#Xash3D_FWGS_Engine|Xash3D]] (libmenu.so, libref_gl.so, libref_soft.so, libxash.so, xash3d) копируются также в корень папки с оригинальной игрой.
Ранее полученные файлы [[How-to_compile_games_on_e2k#Xash3D_FWGS_Engine|Xash3D]] (libmenu.so, libref_gl.so, libref_soft.so, libxash.so, xash3d) копируются также в корень папки с оригинальной игрой.
Запускать с LD_LIBRARY_PATH=.
Запускать с LD_LIBRARY_PATH=.
==source-engine==
Modified source engine (2017) developed by Valve and leaked in 2020. Not for commercial purporses.
- [https://github.com/nillerusr/source-engine GitHub]
    git clone --recursive https://github.com/nillerusr/source-engine.git
    cd source-engine
    ./waf configure --64bits --build-type=native --build-games=hl2 --prefix=/path/to/game
    ./waf build --jobs=8
    ./waf install
===дополнительные игры===
    ./waf configure --64bits --build-type=native --build-games=cstrike --enable-opus --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=hl2mp --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=episodic --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=portal --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=dod --prefix=/path/to/game


==premake5==
==premake5==
Строка 314: Строка 572:
     make -f Bootstrap.mak linux
     make -f Bootstrap.mak linux
Или
Или
     wget https://github.com/premake/premake-core/releases/download/v5.0.0-alpha15/premake-5.0.0-alpha15-src.zip
     wget https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-src.zip
     unzip premake-5.0.0-alpha15-src.zip
     unzip premake-5.0.0-beta2-src.zip
     cd premake-5.0.0-alpha15/build/gmake2.unix
     cd premake-5.0.0-beta2-src/build/gmake2.unix
     make config=release
     make config=release
Скомпилированные файлы будут находиться в /bin/release
Скомпилированные файлы будут находиться в /bin/release
Строка 327: Строка 585:


     git clone --recursive https://github.com/glfw/glfw.git
     git clone --recursive https://github.com/glfw/glfw.git
переключение на стабильную версию [https://github.com/glfw/glfw/releases/tag/3.3.2 3.3.2] (20 Jan 2020) - 0a49ef0a00baa3ab520ddc452f0e3b1e099c5589 (опционально)  
переключение на стабильную версию [https://github.com/glfw/glfw/releases/tag/3.3.8 3.3.8] (22 Jul 2022) - 7482de6071d21db77a7236155da44c172a7f6c9e (опционально)  
     cd glfw && git checkout 0a49ef0a00baa3ab520ddc452f0e3b1e099c5589
     cd glfw && git checkout 7482de6071d21db77a7236155da44c172a7f6c9e


     cd glfw && mkdir build && cd build
     cd glfw && mkdir build && cd build
по умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно
по умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно
     cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
     cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON ..


     make -j8
     make -j8
Строка 340: Строка 598:


Cоздание deb пакета при помощи checkinstall (опционально)
Cоздание deb пакета при помощи checkinstall (опционально)
     checkinstall --type=debian --install=no --pkgname=glfw --pkgversion=3.3.2 --nodoc --strip --stripso --addso --gzman make install
     checkinstall --type=debian --install=no --pkgname=glfw --pkgversion=3.3.8 --nodoc --strip --stripso --addso --gzman make install


==re3==
==re3==
Строка 352: Строка 610:


     git clone --recursive https://github.com/GTAmodding/re3.git
     git clone --recursive https://github.com/GTAmodding/re3.git
или
    git clone --recursive https://github.com/hottabxp/re3.git
или
или
     git clone --recursive https://git.rip/DMCA_FUCKER/re3.git
     git clone --recursive https://git.rip/DMCA_FUCKER/re3.git
Строка 359: Строка 619:
     make -j8 config=release_linux-amd64-librw_gl3_glfw-oal
     make -j8 config=release_linux-amd64-librw_gl3_glfw-oal
скомпилированные файлы будут находиться в /bin/release
скомпилированные файлы будут находиться в /bin/release
===reVC===
The aim of this project is to reverse GTA Vice-City
    git clone --recursive -b miami https://github.com/hottabxp/re3.git reVC
===reLCS===
The aim of this project is to reverse GTA Liberty City Stories.
    git clone --recursive -b lcs https://github.com/hottabxp/re3.git reLCS


==OpenGothic==
==OpenGothic==
Строка 366: Строка 636:


     git clone --recursive https://github.com/Try/OpenGothic.git
     git clone --recursive https://github.com/Try/OpenGothic.git
переключение на стабильную версию 0.52 (6 Nov 2021) - c9c807936e95292b47e1667964be2243439d25c3 (опционально)
    cd OpenGothic && git checkout c9c807936e95292b47e1667964be2243439d25c3
     cd OpenGothic && mkdir build && cd build
     cd OpenGothic && mkdir build && cd build
предварительно удаляем -Wconversion из CMakeLists.txt (строка [https://github.com/Try/OpenGothic/blob/master/CMakeLists.txt#L105 105]) - присутствует [https://github.com/schellingb/TinySoundFont/issues/52 ошибка] в библиотеке TinySoundFont
предварительно удаляем -Wconversion из CMakeLists.txt (строка [https://github.com/Try/OpenGothic/blob/master/CMakeLists.txt#L26 26]) - присутствует [https://github.com/schellingb/TinySoundFont/issues/52 ошибка] в библиотеке TinySoundFont
     cmake -DCMAKE_BUILD_TYPE=Release ..
     cmake -DCMAKE_BUILD_TYPE=Release ..
     make -j8
     make -j8
===OpenGothic-e2k===
ввиду отсутствия на текущий момент полной поддержки стандарта С++20 в компиляторе mcst-lcc 1.26/1.27 была создана модифицированная версия OpenGothic от Алексея Мишина, которая представляет собой версию от 2 ноября 2022 с откатом назад некоторых системных библиотек.
- [https://github.com/DarkMalex/OpenGothic-e2k GitHub]
    git clone --recursive https://github.com/DarkMalex/OpenGothic-e2k.git
==Ship of Harkinian==
Порт игры The Legend of Zelda: Ocarina of Time основанный на её декомпилированной версии.
- [https://www.shipofharkinian.com/ Сайт]
- [https://github.com/HarbourMasters/Shipwright GitHub]
    git clone --recursive https://github.com/HarbourMasters/Shipwright.git
    git checkout 5.1.4
    cd Shipwright
Копируем образ с игрой в каталог для извлечения ресурсов
    cp <Путь к ROM> OTRExporter
Готовим проект
    cmake -H. -Bbuild-cmake -GNinja
Во встроенной библиотеке fmt исправляем [https://github.com/fmtlib/fmt/pull/3057/commits/379fc831d5b1c72af42e5f90e8acef92d292809e ошибку] ([https://github.com/Kenix3/libultraship/blob/7f04a562b2e1ece4c85165b4efdf4258cdf94d74/extern/spdlog/include/spdlog/fmt/bundled/core.h нужный файл]) или линкуемся к системной версии с -DSPDLOG_FMT_EXTERNAL=ON
В libultraship/src/debug/CrashHandler.cpp нужно убрать код функции PrintRegisters ([https://github.com/Kenix3/libultraship/blob/7f04a562b2e1ece4c85165b4efdf4258cdf94d74/src/debug/CrashHandler.cpp#L101 на этой строчке]), или скрыть ее за !defined(__e2k__)
Собираем
    cmake --build build-cmake --target ExtractAssets
    cmake --build build-cmake


==Conan==
==Conan==
Строка 375: Строка 678:


- [https://conan.io/ Сайт] - [https://github.com/conan-io/conan GitHub]
- [https://conan.io/ Сайт] - [https://github.com/conan-io/conan GitHub]
Перед установкой conan желательно обновить pip на актуальную версию
    /usr/bin/python3 -m pip install --upgrade pip


     pip3 install conan
     pip3 install conan
Установка только для текущего пользователя (если нет root прав)
Установка только для текущего пользователя (если нет root прав)
     pip3 install conan --user
     pip3 install conan --user
Установка конкретной версии (с удалением предыдущей версии)
    pip3 uninstall conan
    pip3 install --force-reinstall -v "conan==1.61.0"


==The Dark Mod==
==The Dark Mod==
Строка 389: Строка 698:


     svn co https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk darkmod_src
     svn co https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk darkmod_src
загрузка версии 2.11 (06 Feb 2023) - (опционально)
    wget https://www.thedarkmod.com/sources/thedarkmod.2.11.src.7z
    7z x thedarkmod.2.11.src.7z -odarkmod_src
добавляем custom рецепты в локальный conan-репозиторий, отвечаем yes
добавляем custom рецепты в локальный conan-репозиторий, отвечаем yes
     cd darkmod_src/ThirdParty && python3 1_export_custom.py
     cd darkmod_src/ThirdParty && python3 1_export_custom.py
Строка 396: Строка 710:
     cmake -DCMAKE_BUILD_TYPE=Release -DCOPY_EXE=OFF -DTHIRDPARTY_PLATFORM_OVERRIDE=elbrus-8c ..
     cmake -DCMAKE_BUILD_TYPE=Release -DCOPY_EXE=OFF -DTHIRDPARTY_PLATFORM_OVERRIDE=elbrus-8c ..
     make -j8
     make -j8
В случае отсутствия некоторых рецептов сборки (<code>ERROR: zlib/1.2.11: option 'minizip' doesn't exist</code>), следует добавить дополнительный репозиторий
    conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/public-conan
    conan config set general.revisions_enabled=1


==RapidJSON (черновик!)==
==RapidJSON (черновик!)==
Строка 426: Строка 744:
- [http://irrlicht.sourceforge.net/ Сайт]
- [http://irrlicht.sourceforge.net/ Сайт]


     wget http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.4.zip
     wget http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.5.zip
     unzip irrlicht-1.8.4.zip
     unzip irrlicht-1.8.5.zip
     cd irrlicht-1.8.4/source/Irrlicht
     cd irrlicht-1.8.5/source/Irrlicht
     make sharedlib NDEBUG=1 -j8
     make sharedlib NDEBUG=1 -j8
     make install
     make install
Строка 447: Строка 765:


     git clone --recursive https://github.com/minetest/minetest.git
     git clone --recursive https://github.com/minetest/minetest.git
переключение minetest на стабильную версию [https://github.com/minetest/minetest/releases/tag/5.7.0 5.7.0] (08 Apr 2023) - 1b95998d11fb0d51fbfeedc56de4ca2191ad3f7a (опционально)
    cd minetest && git checkout 1b95998d11fb0d51fbfeedc56de4ca2191ad3f7a
     cd minetest
     cd minetest
     cmake -DCMAKE_BUILD_TYPE=Release -DDEVELOPMENT_BUILD=FALSE -DBUILD_CLIENT=TRUE -DBUILD_SERVER=TRUE -DRUN_IN_PLACE=FALSE .
    git clone --recursive https://github.com/minetest/minetest_game.git games/minetest_game
    git clone --recursive https://github.com/minetest/irrlicht.git lib/irrlichtmt
 
переключение minetest_game на стабильную версию [https://github.com/minetest/minetest_game/releases/tag/5.7.0 5.7.0] (08 Apr 2023) - 833ed776204b194d96b50e400861dec07b5c16aa (опционально)
    cd games/minetest_game && git checkout 833ed776204b194d96b50e400861dec07b5c16aa
переключение IrrlichtMt на стабильную версию [https://github.com/minetest/irrlicht/releases/tag/1.9.0mt10 1.9.0mt10] (05 Mar 2023) - 1d43ea17ca8ee9a01262e9e34c5c89579b97397f (опционально)
    cd lib/irrlichtmt && git checkout 1d43ea17ca8ee9a01262e9e34c5c89579b97397f
 
    mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release -DDEVELOPMENT_BUILD=FALSE -DBUILD_CLIENT=TRUE -DBUILD_SERVER=TRUE -DRUN_IN_PLACE=FALSE ..
     make -j8
     make -j8
Создание deb пакета при помощи checkinstall (опционально)
Создание deb пакета при помощи checkinstall (опционально)
     checkinstall --type=debian --install=no --pkgname=minetest --pkgversion=5.4.0-dev --nodoc --strip --stripso --reset-uids --gzman make install
     checkinstall --type=debian --install=no --pkgname=minetest --pkgversion=5.7.0 --nodoc --strip --stripso --reset-uids --gzman make install


===Minetest's fork of Irrlicht===
===Minetest's fork of Irrlicht===
Строка 458: Строка 788:
- [https://github.com/minetest/irrlicht GitHub]
- [https://github.com/minetest/irrlicht GitHub]


     git clone --recursive https://github.com/minetest/irrlicht.git minetest_irrlicht
     git clone --recursive https://github.com/minetest/irrlicht.git irrlicht-mt
     cd minetest_irrlicht
переключение на стабильную версию [https://github.com/minetest/irrlicht/releases/tag/1.9.0mt12 1.9.0mt12] (20 Jul 2023) - c311d01c073fa4655fa5ada8feb9d4346b64669d (опционально)
    cd irrlicht-mt && git checkout c311d01c073fa4655fa5ada8feb9d4346b64669d
 
     cd irrlicht-mt
     mkdir build && cd build
     mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=TRUE ..
     cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=TRUE ..
     make -j8
     make -j8
     make install
     make install


Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
==SurrealEngine==
The goal of this project is to reimplement enough of the original Unreal Engine to make the Unreal Tournament (UT99) maps playable..
- [https://github.com/dpjudas/SurrealEngine GitHub]
Требуемые библиотеки:
# SDL 2.26 [https://wiki.libsdl.org/SDL2/SDL_GetWindowSizeInPixels]
    git clone --recursive https://github.com/dpjudas/SurrealEngine.git
    cd SurrealEngine && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8


==ioquake3==
==ioquake3==
Строка 473: Строка 819:


     git clone --recursive https://github.com/ioquake/ioq3.git
     git clone --recursive https://github.com/ioquake/ioq3.git
     cd ioq3
     cd ioq3 && git checkout 56c83c8a72532749b6e652c7b9d3760d87e15563
     make -j8
     make -j8


Строка 504: Строка 850:
     mkdir build & cd build
     mkdir build & cd build
     cmake -DCMAKE_BUILD_TYPE=Release ..
     cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
===Vulkan Renderer Library for Yamagi Quake II===
Optional Vulkan renderer lib for Yamagi Quake II.
- [https://github.com/yquake2/ref_vk GitHub]
    git clone --recursive https://github.com/yquake2/ref_vk.git
    cd ref_vk
    make -j8
==Q2RTX==
NVIDIA’s implementation of RTX ray-tracing in Quake II.
- [https://github.com/NVIDIA/Q2RTX GitHub]
    git clone --recursive https://github.com/NVIDIA/Q2RTX.git
    cd Q2RTX && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DALSOFT_CPUEXT_NEON=OFF -DALSOFT_BACKEND_OSS=OFF ..
     make -j8
     make -j8


Строка 513: Строка 878:
     git clone --recursive https://github.com/suijingfeng/vkQuake3.git
     git clone --recursive https://github.com/suijingfeng/vkQuake3.git
     cd vkQuake3
     cd vkQuake3
    make USE_CODEC_OPUS=0 -j8
==OpenArena==
OpenArena modifications to the ioquake3 engine
- [https://github.com/OpenArena/engine GitHub]
- [https://github.com/OpenArena/gamecode GitHub]
    git clone --recursive https://github.com/OpenArena/engine.git
    cd engine
    make USE_CODEC_XMP=0 -j8
    git clone --recursive https://github.com/OpenArena/gamecode.git
    cd gamecode
     make -j8
     make -j8


Строка 522: Строка 901:
     git clone --recursive https://github.com/suijingfeng/vkOpenArena.git
     git clone --recursive https://github.com/suijingfeng/vkOpenArena.git
     cd vkOpenArena
     cd vkOpenArena
    make -j8
==OpenJK==
Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
- [https://github.com/JACoders/OpenJK GitHub]
    git clone --recursive https://github.com/JACoders/OpenJK.git
    cd OpenJK && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
==iortcw==
Merge of ioquake3 features and fixes into RTCW (Return to Castle Wolfenstein) code bases.
- [https://github.com/iortcw/iortcw GitHub]
    git clone --recursive https://github.com/iortcw/iortcw.git
сборка single player
    cd iortcw/SP
    make -j8
сборка multiplayer
    cd iortcw/MP
     make -j8
     make -j8


Строка 557: Строка 961:
- [https://github.com/Kitware/CMake GitHub]
- [https://github.com/Kitware/CMake GitHub]


     wget https://cmake.org/files/v3.18/cmake-3.18.6.tar.gz
     wget https://cmake.org/files/v3.23/cmake-3.23.3.tar.gz
     tar -xvf cmake-3.18.6.tar.gz
     tar -xvf cmake-3.23.3.tar.gz
     cd ./cmake-3.18.6
     cd ./cmake-3.23.3
    ./bootstrap --verbose --parallel=8 --qt-gui --system-zstd --prefix=/usr
    make -j8
    make install
 
Если не нужен cmake-gui, тогда при конфигурировании заменить <code>--qt-gui</code> на <code>--no-qt-gui</code> 


===workaround для компилятора mcst-lcc 1.25 и ниже===
в компиляторе mcst-lcc, версии 1.25 и ниже, присутствует ошибка в C++ Front End от EDG (Edison Design Group)
     mcedit ./Source/cmMakefile.cxx
     mcedit ./Source/cmMakefile.cxx
заменить <code>decltype(this->Tests)</code> на <code>decltype(cmMakefile::Tests)</code>
заменить <code>decltype(this->Tests)</code> на <code>decltype(cmMakefile::Tests)</code>


    ./bootstrap --verbose --parallel=8 --no-qt-gui --system-zstd --prefix=/usr
==OpenXRay==
    make -j8
    make install
 
==OpenXRay (черновик!)==
OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.
OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.


Строка 575: Строка 982:
Требуемые библиотеки (заголовки) и инструменты:
Требуемые библиотеки (заголовки) и инструменты:
# GLEW, LockFile, OpenAL, ogg, vorbis, theora, SDL, lzo, jpeg, pcre
# GLEW, LockFile, OpenAL, ogg, vorbis, theora, SDL, lzo, jpeg, pcre
# [[How-to_compile_games_on_e2k#FreeImage|FreeImage, FreeImagePlus]]
# [[How-to_compile_games_on_e2k#CMake|CMake (не ниже версии 3.16)]]
# [[How-to_compile_games_on_e2k#CMake|CMake (не ниже версии 3.16)]]


     git clone --recursive https://github.com/OpenXRay/xray-16.git
     git clone --recursive https://github.com/OpenXRay/xray-16.git
     cd ./xray-16/Externals/LuaJIT
     cd xray-16
    cd Externals && rm -fr ./LuaJIT
    git clone --recursive -b openxray https://github.com/helce/LuaJIT.git
    cd .. && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j8
'''ВАЖНО!''' Процесс компиляции занимает свыше 2 часов на 8С (чуть больше получаса на 16С)


     git config user.name user
Можно собирать быстрее, если использовать ninja вместо make:
     git config user.email user@mail.com
     cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DUSE_CRYPTOPP=OFF ..
И далее сборка командой
     ninja


    git remote add helce https://github.com/helce/LuaJIT.git
    git fetch helce
    git rebase helce/v2.1
    cd ../.. && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DUSE_CRYPTOPP=OFF ..
В файле '''xray-16/src/xrServerEntities/restriction_space.h''' нужно заменить строку <code>using intrusive_base::release;</code> на
    <code>bool release() XR_NOEXCEPT</code>
    <code>{</code>
        <code>return intrusive_base::release();</code>
    <code>}</code>
    mcedit ../src/xrServerEntities/restriction_space.h
    make -j8
'''ВАЖНО!!!''' - Процесс компиляции занимает свыше 1.5 часов!!!


Создание .deb пакета
Создание .deb пакета
Строка 609: Строка 1006:
===e2k-alt-linux===
===e2k-alt-linux===
Для установки требуемых пакетов на '''e2k-alt-linux''' можно выполнить команду:
Для установки требуемых пакетов на '''e2k-alt-linux''' можно выполнить команду:
     # apt-get install cmake libfreeimage-devel libfreeimageplus-devel libglew-devel liblockfile-devel libopenal-devel libogg-devel libvorbis-devel libtheora-devel libSDL2-devel liblzo2-devel libjpeg-devel libpcre-devel
     # apt-get install gcc-c++ cmake ninja-build libglew-devel liblockfile-devel libopenal-devel libogg-devel libvorbis-devel libtheora-devel libSDL2-devel liblzo2-devel libjpeg-devel libpcre-devel libmimalloc-devel liblua5.1-devel


...и перед запуском cmake потребуется поправить путь к pcre.h (строчка дана для cwd == build):
...и перед запуском cmake потребуется поправить путь к pcre.h (строчка дана для cwd == build; в текущих исходниках будто нет в ней нужды):
     $ sed -i 's,pcre.h,pcre/pcre.h,' ../cmake/FindPCRE.cmake ../src/xrCore/_math.cpp
     $ sed -i 's,pcre.h,pcre/pcre.h,' ../cmake/FindPCRE.cmake ../src/xrCore/_math.cpp
На lcc 1.25.09 проверена возможность поднятия уровня оптимизации (ощутимо помогает fps):
$ sed -i 's,-O2,-O3,g' Externals/NVTT/src/nvtt/squish/config
либо перед запуском make:
$ grep -rl -- -O2 build | xargs -r sed -i 's,-O2,-O3,g' --
===типовые проблемы===
* 'lj_allow_escape_sequences' is undefined при сборке script_engine.cpp -- [http://github.com/OpenXRay/xray-16/issues/508 LuaJIT должен быть достаточно свежим], проверьте, успешно ли прошёл git rebase
* переключение языка на русский - <code>g_language rus</code>
* включение отображения счётчика кадросекунд - <code>rs_fps on</code>
* возможные проблемы с компиляцией файла '''xray-16/src/xrServerEntities/restriction_space.h'''
нужно заменить строку <code>using intrusive_base::release;</code> на
    <code>bool release() XR_NOEXCEPT</code>
    <code>{</code>
        <code>return intrusive_base::release();</code>
    <code>}</code>
    mcedit ../src/xrServerEntities/restriction_space.h


==Arx Libertatis==
==Arx Libertatis==
Строка 662: Строка 1080:
     wget https://camaya.net/download/gloox-1.0.24.tar.bz2 && tar -xf ./gloox-1.0.24.tar.bz2
     wget https://camaya.net/download/gloox-1.0.24.tar.bz2 && tar -xf ./gloox-1.0.24.tar.bz2
     cd gloox-1.0.24
     cd gloox-1.0.24
     ./configure
     ./configure --prefix=/usr
     make
     make -j8
     make install
     make install


Строка 671: Строка 1089:
- [http://miniupnp.free.fr/ Сайт]
- [http://miniupnp.free.fr/ Сайт]


     wget http://miniupnp.free.fr/files/miniupnpc-2.2.0.tar.gz && tar -xf ./miniupnpc-2.2.0.tar.gz
     wget http://miniupnp.free.fr/files/miniupnpc-2.2.2.tar.gz && tar -xf ./miniupnpc-2.2.2.tar.gz
     cd miniupnpc-2.2.0 && mkdir build && cd build
     cd miniupnpc-2.2.2 && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release ..
     cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
     make -j8
     make -j8
    make install


Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
Для замены системной установленной библиотеки можно указать дополнительную опцию <code>-DCMAKE_INSTALL_PREFIX=/usr</code> при конфигурировании через CMake. Тогда установка произойдёт в папку <code>/usr</code>, а не <code>/usr/local</code> (по умолчанию).
Строка 687: Строка 1106:
или
или
     wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz && tar -xf ./libsodium-1.0.18-stable.tar.gz
     wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz && tar -xf ./libsodium-1.0.18-stable.tar.gz
     cd libsodium
     cd ./libsodium-stable
     ./configure
     ./configure --prefix=/usr
     make -j8 && make check -j8
     make -j8 && make check -j8
     sudo make install
     make install


==libenet (ENet)==
==libenet (ENet)==
Строка 699: Строка 1118:


     git clone --recursive https://github.com/lsalzman/enet.git
     git clone --recursive https://github.com/lsalzman/enet.git
переключение на стабильную версию 1.3.17 (15 Nov 2020 ) - e0e7045b7e056b454b5093cb34df49dc4cee0bee (опционально)
    cd enet && git checkout e0e7045b7e056b454b5093cb34df49dc4cee0bee
     cd enet
     cd enet
     autoreconf -vfi
     autoreconf -vfi
     ./configure
     ./configure --prefix=/usr
     make -j8
     make -j8
     make install
     make install
Строка 712: Строка 1135:


     git clone --recursive https://github.com/fmtlib/fmt.git
     git clone --recursive https://github.com/fmtlib/fmt.git
переключение на стабильную версию 9.1.0 (27 Aug 2022) - a33701196adfad74917046096bf5a2aa0ab0bb50 (опционально)
    cd fmt && git checkout a33701196adfad74917046096bf5a2aa0ab0bb50
     cd fmt && mkdir build && cd build
     cd fmt && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF -DBUILD_SHARED_LIBS=ON ..
     cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DFMT_TEST=OFF -DBUILD_SHARED_LIBS=ON ..
     make -j8
     make -j8


Строка 725: Строка 1151:


Требуемые библиотеки:
Требуемые библиотеки:
# [[How-to_compile_games_on_e2k#gloox|gloox]]
# [[How-to_compile_games_on_e2k#gloox|gloox]] (нужно для lobby)
# [[How-to_compile_games_on_e2k#miniupnpc|miniupnpc]]
# [[How-to_compile_games_on_e2k#miniupnpc|miniupnpc]] (нужно для lobby)
# [[How-to_compile_games_on_e2k#libsodium|libsodium]]
# [[How-to_compile_games_on_e2k#libsodium|libsodium]]
# [[How-to_compile_games_on_e2k#libenet_(ENet)|libenet (ENet)]]
# [[How-to_compile_games_on_e2k#libenet_(ENet)|libenet (ENet)]]
Строка 734: Строка 1160:
     cd 0ad_svn/build/workspaces
     cd 0ad_svn/build/workspaces


возможные опции
     ./update-workspaces.sh --without-audio --without-lobby --without-miniupnpc --without-nvtt --with-system-mozjs --disable-atlas --without-tests --without-pch -j8
     ./update-workspaces.sh --without-audio --without-lobby --without-miniupnpc --without-nvtt --with-system-mozjs --disable-atlas --without-tests --without-pch -j8
или
собираем с nvtt (убираем --without-nvtt) и со звуком (убираем --without-audio)
     ./update-workspaces.sh --without-nvtt --with-system-mozjs --disable-atlas --without-pch -j8
     ./update-workspaces.sh --without-lobby --without-miniupnpc --with-system-mozjs --disable-atlas --without-tests --without-pch -j8
     cd gcc
     cd gcc
     make -j8
     make -j8
Строка 763: Строка 1190:
- [https://github.com/vcmi/vcmi GitHub]
- [https://github.com/vcmi/vcmi GitHub]
- [https://wiki.vcmi.eu/How_to_build_VCMI_(Linux) Инструкция по сборке]
- [https://wiki.vcmi.eu/How_to_build_VCMI_(Linux) Инструкция по сборке]
Требуемые библиотеки:
# sdl2-image (<code>apt install sdl2-image</code>)
# sdl2-mixer (<code>apt install sdl2-mixer</code>)
# sdl2-ttf (<code>apt install sdl2-ttf</code>)


     git clone --recursive https://github.com/vcmi/vcmi.git
     git clone --recursive https://github.com/vcmi/vcmi.git
     cd vcmi && mkdir build && cd build
     cd vcmi && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ERM=ON ..
     cmake -DCMAKE_BUILD_TYPE=Release ..
     make -j8
     make -j8


можно использовать опцию <code>-DENABLE_MONOLITHIC_INSTALL=ON</code> и указать префикс установки в одну конкретную папку
можно использовать опцию <code>-DENABLE_MONOLITHIC_INSTALL=ON</code> и указать префикс установки в одну конкретную папку
после 25 июля 2021 года было добавлено обязательное использование TBB (Intel Threading Building Blocks), поэтому можно откатиться на раннюю версию от 18 июля 2021 года, где ещё не требуется TBB
    cd vcmi && git checkout 10cfefdf9d09514086ca0b7208d688ae365eab9b
перед запуском игры сначала необходимо провести процедуру инициализации игровых данных
    vcmibuilder --data /path/to/game/Heroes-of-Might-and-Magic_3/
==devilutionX==
DevilutionX is a port of Diablo and Hellfire that strives to make it simple to run the game while providing engine improvements, bugfixes, and some optional quality of life features.
- [https://github.com/diasurgical/devilutionX GitHub]
перед началом сборки нужно закомментировать строчку [https://github.com/diasurgical/devilutionX/blob/master/CMakeLists.txt#L262 262] (не поддерживаемые, пока, опции <code>-fipa-pta;-fdevirtualize-at-ltrans</code>)
    git clone --recursive https://github.com/diasurgical/devilutionX.git
    cd devilutionX && git checkout 1616318bb185446cea4346c0eed48f80c1ac2e69
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDEVILUTIONX_SYSTEM_LIBFMT=OFF ..
    make -j8


==Urho3D==
==Urho3D==
Строка 803: Строка 1255:


     git clone --recursive https://github.com/OpenTTD/OpenTTD.git
     git clone --recursive https://github.com/OpenTTD/OpenTTD.git
переключение OpenTTD на стабильную версию 1.11.2 (3 May 2021) - 672f285218c6817784d86f737987b75db4bc78fc (опционально)
    cd OpenTTD && git checkout 672f285218c6817784d86f737987b75db4bc78fc
     cd OpenTTD && mkdir build && cd build
     cd OpenTTD && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release ..
     cmake -DCMAKE_BUILD_TYPE=Release ..
     make -j8
     make -j8
==PLIB==
PLIB (Portable Game Library) is a set of software libraries for writing games written by Steve J. Baker.
- [http://plib.sourceforge.net/ Сайт]
    wget http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz && tar -xvf plib-1.8.5.tar.gz
    cd plib-1.8.5
    wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
    wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
    ./configure
    make -j8
    make install
==SimGear==
SimGear is a set of open-source libraries designed to be used as building blocks for quickly assembling 3d simulations, games, and visualization applications.
SimGear is developed by the FlightGear project and also provides the base for the FlightGear Flight Simulator.
- [https://www.flightgear.org/ Сайт]
- [https://sourceforge.net/p/flightgear/simgear SourceForge]
- [https://github.com/FlightGear/simgear GitHub]
Требуемые библиотеки:
# [[How-to_compile_games_on_e2k#OpenSceneGraph|OpenSceneGraph]] (не ниже версии 3.6.0)
    git clone --recursive https://github.com/FlightGear/simgear.git
переключение на стабильную версию 2020.3.11 (29 Jul 2021) - a157e503020611a3e0caa1a450a01a97614c896a (опционально)
    cd simgear && git checkout a157e503020611a3e0caa1a450a01a97614c896a
предварительно добавляем <code>defined(__e2k__)</code> в файл <code>simgear/math/simd.hxx</code> (строка [https://github.com/FlightGear/simgear/blob/next/simgear/math/simd.hxx#L33 33]) для подключения заголовочного файла <code>x86intrin.h</code>.
    cd simgear && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DSIMGEAR_SHARED=ON -DENABLE_TESTS=OFF -DENABLE_SIMD=ON -DENABLE_SIMD_CODE=ON ..
    make -j8
==FlightGear==
FlightGear is an open-source flight simulator. 
- [https://www.flightgear.org/ Сайт]
- [https://sourceforge.net/p/flightgear/flightgear SourceForge]
- [https://github.com/FlightGear/flightgear GitHub]
Требуемые библиотеки:
# [[How-to_compile_games_on_e2k#OpenSceneGraph|OpenSceneGraph]] (не ниже версии 3.6.0)
# [[How-to_compile_games_on_e2k#PLIB|PLIB]]
# [[How-to_compile_games_on_e2k#SimGear|SimGear]]
    git clone --recursive https://github.com/FlightGear/flightgear.git
переключение на стабильную версию 2020.3.11 (30 Jul 2021) - c060800fed65ce9502a9dfad46cccf59c941362b (опционально)
    cd flightgear && git checkout c060800fed65ce9502a9dfad46cccf59c941362b
    cd flightgear && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DFG_BUILD_TYPE=Release ..
    make -j8
==goldberg-emulator==
Steam emulator that emulates steam online features. Lets you play games that use the steam multiplayer apis on a LAN without steam or an internet connection.
- [https://gitlab.com/Mr_Goldberg/goldberg_emulator GitLab]
    git clone --recursive https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
    cd goldberg_emulator && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
==Kisak-Strike==
100% Open Source CSGO
- [https://github.com/SwagSoftware/Kisak-Strike GitHub]
Требуемые библиотеки:
# [[How-to_compile_games_on_e2k#goldberg-emulator|goldberg-emulator]]
# sdl2-mixer (<code>apt install sdl2-mixer</code>)
    git clone --recursive https://github.com/SwagSoftware/Kisak-Strike.git
нужно скопировать ранее полученный libsteam_api.so в <code>Kisak-Strike/lib/public/linux64/</code> (предварительно удалив все файлы в этой папке linux64)
    cd Kisak-Strike && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DUSE_ROCKETUI=ON -DUSE_KISAK_PHYSICS=ON ..
    make -j8
'''ВАЖНО!''' Процесс компиляции занимает свыше 1,5 часов на 8С
В результате компиляции, уровнем выше Kisak-Strike, появится папка game (её нельзя переименовывать или перемещать). В неё нужно будет скопировать содержимое Kisak-Strike-Files (дополнительные файлы GUI rocketui для Kisak-Strike)
    cd ../../
    git clone https://github.com/SwagSoftware/Kisak-Strike-Files.git
    cp -r ./Kisak-Strike-Files/* ./game/
запуск игры
    ./game/csgo_linux64 -dev
или
    ./game/csgo_linux64 -console
===консольные команды===
* отображение счётчика кадросекунд - <code>net_graph 1</code>
* крупный шрифт счётчика кадросекунд - <code>net_graphproportionalfont 1</code>
* загрузка карты - <code>map cs_office</code>
* получение оружия - <code>give weapon_ak47</code>
* включение многопоточности - <code>host_thread_mode 1</code>
==ZZIPlib==
The ZZIPlib provides read access on ZIP-archives and unpacked data. It features an additional simplified API following the standard Posix API for file access.
- [https://github.com/gdraheim/zziplib Github]
    git clone --recursive https://github.com/gdraheim/zziplib.git
    cd zziplib&& mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j8
==Open Dynamics Engine==
ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API.
- [https://ode.org/ Сайт]
- [https://bitbucket.org/odedevs/ode/src/master/ Bitbucket]
    git clone --recursive https://bitbucket.org/odedevs/ode/
    cd ode && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON ..
    make -j8
==openDarkEngine==
Rewrite of the Dark Engine by Looking Glass.
- [https://github.com/volca02/openDarkEngine Github]
Требуемые библиотеки (заголовки) и инструменты:
# [[How-to_compile_games_on_e2k#FreeImagePlus|FreeImagePlus]]
# [[How-to_compile_games_on_e2k#ZZIPlib|ZZIPlib]]
# [[How-to_compile_games_on_e2k#OGRE_1.10.12|OGRE 1.10.12]]
# [[How-to_compile_games_on_e2k#Open_Dynamics_Engine|Open Dynamics Engine]]
    git clone --recursive https://github.com/volca02/openDarkEngine.git
    cd openDarkEngine&& mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
===запуск игры===
перед запуском игры нужно вручную создать и заполнить следующие конфигурационные файлы (примеры конфигураций можно посмотреть в [https://github.com/volca02/openDarkEngine/blob/master/doc/DEVELOPERS doc/DEVELOPERS]):
* opde.cfg
* plugins.cfg
* resources.cfg
* shock2.cfg
* thief1.cfg
* thief2.cfg
также, в папку с исполняемым файлом нужно скопировать папку [https://github.com/volca02/openDarkEngine/tree/master/scripts scripts] из директории с исходными кодами
запуск игр (Thief TDP, Thief II TMA, System Shock 2) осуществляется через подстановку соответствующих параметров исполняемому файлу (t1, t2, ss2)
    opdeMain ss2
==falltergeist==
Opensource crossplatform Fallout 2 engine writen in C++ and SDL.
- [https://falltergeist.org/ Сайт]
- [https://github.com/falltergeist/falltergeist GitHub]
    git clone --recursive https://github.com/falltergeist/falltergeist.git
    cd falltergeist && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8
Игру нужно поместить в папку <code>~/.local/share/falltergeist/</code> или <code>/usr/local/share/falltergeist</code>, причём в эту же папку нужно скопировать папку data из директории с исходными кодами.


==PCSX-Reloaded==
==PCSX-Reloaded==
Строка 865: Строка 1480:
     make -j16  
     make -j16  
     make install
     make install
 
N.B. При клонировании репозитория с флагом --recurse-submodules свежая версия ZMusic будет скачана и скомпилирована вместе с движком, т.к. библиотека теперь идёт как суб-модуль.
==Taisei Project==
==Taisei Project==


Строка 937: Строка 1552:
     make -j16
     make -j16
     make install
     make install
==DirectX Shader Compiler==
Компилятор шейдеров, считается лучшим.
Сборка:
    git clone --recursive https://github.com/microsoft/DirectXShaderCompiler.git
переключение на версию от 22 апреля 2023
    cd DirectXShaderCompiler && git checkout 918673ef5bde6f380aecc378b517def61758f4a1
    cd DirectXShaderCompiler && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DSPIRV_WERROR=OFF -C ../cmake/caches/PredefinedParams.cmake ..
    make -j8
    cp /usr/bin/llvm-as bin && cp /usr/bin/llvm-dis bin
Для OSL в случае llvm-13
    cp /usr/lib/llvm-13/bin/llvm-as bin && cp /usr/lib/llvm-13/bin/llvm-dis bin
Для OSL в случае llvm-9
    cp /usr/lib/llvm-9/bin/llvm-as bin && cp /usr/lib/llvm-9/bin/llvm-dis bin
    make install
==Ryzom==
Многопользовательская онлайн-игра(MMO) в стиле фэнтези, создателем которой является французская компания Nevrax. В 2007 году была признана одной из лучших MMORPG, но так и не приобрела широкую популярность.
Сборка:
    git clone --recursive https://github.com/ryzom/ryzomcore.git
    cd ryzomcore && git checkout main/atys-live
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DFINAL_VERSION=OFF ..
    make -j8
   
==Snes9x==
Эмулятор игровой консоли Super Nintendo(SNES).
Сборка:
    git clone --recursive https://github.com/snes9xgit/snes9x.git
    cd snes9x/gtk
    meson build --prefix=/usr --buildtype=release --strip
    cd build
    ninja -j8
   
Установка:
    ninja install
Ссылку можно будет найти в главном Меню -> Игры.
==Xpad Linux==
Драйвер геймпада от консолей Xbox/Xbox 360/Xbox 360 Wireless/Xbox One.
Сборка:
    git clone https://github.com/paroj/xpad.git
    cd xpad
    make -j8
Установка:
    cp xpad.ko /lib/modules/5.4.0-3.15-e8c-nn/kernel/drivers/input/
"5.4.0-3.15-e8c-nn" - заменить на вашу версию ядра и процессора.
== dxvk-native ==
@Ugeen4 сообщает, что [https://github.com/Joshua-Ashton/dxvk-native dxvk-native] (форк без winelib) собирается на e2k meson+ninja как минимум в конфигурации "только dx9" (см. meson_options.txt в корне).
==Godot==
'''Как скомпилировать'''<br>
Godot 3.5.3 собирается без изменений в коде, если отключить модули: pcre2_with_jit, denoise, lightmapper_cpu, raycast, mbedtls.
В sljit'е (pcre2_with_jit) неподдерживаемые ассемблерные вставки.
<br>В embree (denoise, lightmapper_cpu, raycast) баг https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935064
<br>В mbedtls тоже неподдерживаемый код (наименее проблемная часть; предположительно, с правками в коде этот модуль можно собрать).
<br>Игры которые используют эти модули работать не будут.
Предположительно, не будет поддержки сети и криптографии, не будет нормально работать 3D.
<br>'''UPD''': https://github.com/Mbed-TLS/mbedtls/pull/3574
makise-homura добавил в mbedtls поддержку E2K.
Имеет смысл пробовать собирать таким образом более новые версии 3.x (и более старые тоже).
3.1 проблемная, т.к. там в scons нет опции pcre2_with_jit и требуются правки в коде.
Исходники здесь:
https://github.com/godotengine/godot/archive/refs/tags/3.5.3-stable.zip
Зависимости и общая инструкци по сборке Godot под Linux/BSD здесь:
https://docs.godotengine.org/en/3.5/development/compiling/compiling_for_x11.html
Если scons падает с Python'овскими ошибками синтаксиса.<br>
Предположительно — старая версия scons.
Установите новую: https://scons.org/pages/download.html
На удалённом сервере можно использовать stand alone версию (scons-local Package) и сделать на неё алиас (в файле .bash_profile или .bashrc):
alias scons='python3 /srv/home/user_name/scons/scons.py'
Опции scons при компиляции.
Для редактора:<br>
    scons -j8 platform=x11 target=release_debug bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=yes optimize=none CCFLAGS="-O3 -pthread"
Для export template:<br>
    scons -j8 platform=x11 target=release bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=no optimize=none CCFLAGS="-O3 -pthread"
Для export template без 3D (для 2d игр; размер бинарника будет меньше на ~200 мб):<br>
    scons -j8 platform=x11 target=release bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=no disable_3d=yes optimize=none CCFLAGS="-O3 -pthread"
Посмотреть все опции сборки:<br>
    scons --help
-jN задаёт количество тредов при сборке. По умолчанию N == количество ядер CPU.
На удалённой машине -jN желательно задать, (-j4 или -j8) чтобы не нагружать все ядра на сервере и не мешать другим пользователям.
'''Как запускать'''
Игра на Годо это ресурсы игры (скрипты, текстуры, звук и прочее) запакованные в .pck или .zip файл.
Запустить игру можно бинарником движка, с редактором или без (с нужными игре модулями), при условии совместимости версий бинарника которым запускаем и версии редактора из которого экспортировали игру.<br>
    ''godot_binary'' --main-pack ''путь_к_игре''
Если в каталоге с бинарником лежит .pck файл с таким же именем, то при запуске бинарника он подхватывается автоматически.
Чтобы запустить игру на удалённом сервере через ssh, обычно нужно дополнительно указать движку --audio-driver Dummy<br>
Иначе будет виснуть на этапе инициализации звука (если Alsa не настроена для работы через ssh).
Почему через ssh всё тормозит?<br>
Это норма. Иксы через ssh медленно работают. На локальном Эльбрусе будет быстрее.
Как понять, что игра работает на Эльбрусе (при тестировании на удалённом сервере)?<br>
Нужно её запустить и дождаться загрузки main scene, как минимум. Появление сплеш скрина ещё ничего не значит.
Так же стоит проверить реакцию на Input (нажать/сделать что-то, на что игра должна отреагировать).
Если main scene загрузилась и игра нормально реагирует на ввод пользователя (пусть и медленно), скорее всего, на Эльбрусе будет работать нормально.
Почему бинарник получился около гигабайта?<br>
Для E2K большие бинарники это норма.
Можно запускать много игр совместимых версий одним бинарником.
'''Экспорт игры для E2K'''
Как теперь экспортировать свою игру под E2K?<br>
Как обычно: Проект -> Экспорт -> Выбираем предустановку (export template) Linux/X11, включаем 64 Bits,
а теперь в разделе Custom Template -> Release выбираем наш бинарник для E2K и жмём Экспортировать проект.
Это можно делать и на Эльбрусе, и на x86.<br>
Export template — это собранный под нужную архитектуру и ОС бинарник, который просто копируется в каталог для экспорта с именем как у .pck файла, без разницы на какой архитектуре это происходит.


== Ссылки ==
== Ссылки ==

Текущая версия от 09:27, 22 февраля 2024

HUD

В OpenGL-приложениях для выведения графической статистики можно использовать GALLIUM_HUD:

    GALLIUM_HUD=fps,cpu+GPU-load,cpu0+cpu1+cpu2+cpu3+cpu4+cpu5+cpu6+cpu7,requested-VRAM+VRAM-usage,draw-calls ./game_binary

В Vulkan-приложениях для выведения графической статистики можно использовать VK_LAYER_MESA_overlay или MangoHUD:

    VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics ./game_binary


Для увеличения производительности в OpenGL приложениях можно использовать опцию mesa_glthread=true (glthread, многопоточная реализация OpenGL)

MangoHud

A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.

- GitHub

    apt-get install mako mako3
    git clone --recursive https://github.com/flightlessmango/MangoHud.git
    cd MangoHud

переключение на стабильную версию 0.6.6-1 (23 Oct 2021) - da573e8ebaf8d8d0000890c1fab40944edebc7f1 (опционально)

    cd MangoHud && git checkout da573e8ebaf8d8d0000890c1fab40944edebc7f1

выключаем NV-CONTROL X extension (libxnvctrl, контроль за параметрами драйвера NVIDIA X) и NVIDIA Management Library (NVML)

    ./build.sh build -Dwith_xnvctrl=disabled -Dwith_nvml=disabled

установка в ОС (опционально)

    ./build.sh install

создание deb пакета при помощи checkinstall (опционально)

    checkinstall --type=debian --install=no --pkgname=mangohud --pkgversion=0.6.6 --nodoc --strip --stripso --gzman ./build.sh install


запуск OpenGL:

    MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,font_size=32 mangohud ./game_bin
    MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load,gpu_load_change,`gpu_load_color=0000FF,00FFFF,FF00FF`,`gpu_load_value=50,90`,cpu_load_change,`cpu_load_color=0000FF,00FFFF,FF00FF`,`cpu_load_value=50,90`,font_size=32 mangohud ./game_bin

dhewm3

dhewm3 is a source port of the original Doom3 (not Doom3 BFG, for that you may want to try RBDOOM-3-BFG).

- Сайт - GitHub

    git clone --recursive https://github.com/dhewm/dhewm3.git

переключение на стабильную версию 1.5.1 (14 Mar 2021) - 441c26e5b0a31fdf5b69ca7f63d7717a08855723 (опционально)

    cd dhewm3 && git checkout 441c26e5b0a31fdf5b69ca7f63d7717a08855723
    cd dhewm3 && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDEDICATED=ON -DONATIVE=ON ../neo
    make -j8

RBDOOM-3-BFG

Doom 3 BFG Edition with soft shadows, cleaned up source, Linux and 64 bit Support.

- GitHub

    git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git

переключение на стабильную версию 1.4.0 (Mar 6 2022) - f81a8c1dd9b762774a233ba071837b2c7a374751 (опционально)

    cd RBDOOM-3-BFG && git checkout f81a8c1dd9b762774a233ba071837b2c7a374751
    cd RBDOOM-3-BFG && mkdir build && cd build

OpenGL (без Intel Intrinsics):

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS_SSE=OFF ../neo

OpenGL (с Intel Intrinsics):

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DFFMPEG=OFF -DBINKDEC=ON ../neo


Vulkan (без Intel Intrinsics):

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS_SSE=OFF -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF ../neo

Vulkan (с Intel Intrinsics):

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_VULKAN=ON -DSPIRV_SHADERC=OFF -DFFMPEG=OFF -DBINKDEC=ON ../neo

Компилирование

    make -j8

Запуск через OpenGL (с выключением доп.эффектов)

    ./RBDoom3BFG +set r_usePBR 0 +set r_useShadowMapping 0 +set r_useHDR 0 +set r_useFilmicPostProcessing 0

Запуск с модом (например Ultimate HD mod)

    ./RBDoom3BFG +set fs_resourceLoadPriority 0 +set fs_game @UltimateHD

DOOM-BFA

DOOM: BFA (Big Freaking Anniversary) Edition (former Classic RBDoom 3 BFG) is a source port based on RBDOOM-3-BFG and enchance the experience of Ultimate DOOM, DOOM 2 and DOOM 3.

- GitHub

    git clone --recursive https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git
    cd Classic-RBDOOM-3-BFG && mkdir build && cd build

без Intel Intrinsics

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo

с Intel Intrinsics

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON ../neo

Компилирование

    make -j8

com.n0n3m4.diii4a

idTech4A++, DOOM III/Quake 4/Prey(2006) for Android, based on n0n3m4's DIII4A.

- GitHub

    git clone --recursive https://github.com/glKarin/com.n0n3m4.diii4a.git
    cd com.n0n3m4.diii4a && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release
    make -j8

Можно перейти на использование OpenGL ES 2 вместо OpenGL ES 3, указав опцию -DOPENGLES3=OFF при сборке.

libopenglrecorder

library allowing optional async readback OpenGL frame buffer with optional audio recording. One potential use case for libopenglrecorder is integrating video recording into a game.

- GitHub

    git clone --recursive https://github.com/Benau/libopenglrecorder.git
    cd libopenglrecorder && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

SuperTuxKart

SuperTuxKart is a 3D open-source arcade racer with a variety characters, tracks, and modes to play.

- Сайт - GitHub

Требуемые библиотеки:

  1. libopenglrecorder

загружаем игровые данные (без них будет ошибка на этапе конфигурирования через CMake)

    svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets
    git clone --recursive https://github.com/supertuxkart/stk-code.git

переключение на стабильную версию 1.3 (28 Sep 2021) - ec1775ebedb9cfa41b8099f980325271f80a007b (опционально)

    cd stk-code && git checkout ec1775ebedb9cfa41b8099f980325271f80a007b
    cd stk-code && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Serious Engine

A port to the OpenPandora (and working fine on plain Linux) of the open source version of a game engine developed by Croteam for the classic Serious Sam games.

- GitHub

    git clone --recursive https://github.com/ptitSeb/Serious-Engine.git
    cd Serious-Engine

Serious Sam The Second Encounter:

    mkdir build_ssam && cd build_ssam
    cmake -DCMAKE_BUILD_TYPE=Release ../Sources/
    make -j8

Serious Sam The First Encounter:

    mkdir build_ssam-tfe && cd build_ssam-tfe
    cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/
    make -j8

Получившиеся бинарники и содержимое папок Debug поместить в папку Bin соответствующих оригинальных игр.

Serious Sam Alpha Remake

Serious Sam Alpha Remake это модификация, полностью представляющая того «Серьезного Сэма», каким он мог быть изначально, до переделки всех уровней и моделей. Летом 2013 года команда с SeriousSite.ru отправили письмо в Croteam с просьбой предоставить предварительную версию «Серьёзного Сэма». Роман Рибарич согласился на просьбу и поделился старой версией с согласия других членов команды Croteam. Команда SeriousSite.ru анонсировала выпуск будущей бесплатной модификации Serious Sam Origins. К сожалению, по неизвестным причинам команда Serious Sam Origins заморозила проект в 2016 году и полностью прекратила его разработку. Параллельно польский фанат игры с ником Zdzichu сообщил о создании модификации Serious Sam Alpha Remake в 2015 году на основе утекшего windows билда предрелизной версии игры. После четырех лет разработки, в 2019 году вышла финальная версия мода Serious Sam Alpha Remake. Подробнее можно прочитать тут: SeriousSamAlphaRemake Wiki

Сборка для SeriousSamClassic (opengl) и SeriousSamClassic-VK (opengl/vulkan) идентична. Ниже сборка игры вместе с модификацией Serious Sam Alpha Remake и XPLUS.

Сначала клонируем репозитории.

git clone https://github.com/tx00100xt/SeriousSamClassic-VK.git
git clone https://github.com/tx00100xt/SeriousSamAlphaRemake.git

В файлах SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt и SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt можно заменить march=native на mtune="<Модель>" и выставить оптимизацию -O3

Потом получим архивы с контентом модов и распакуем их в клонированнй репозиторий.

Перейдем в клонированный репозиторий:

 
cd SeriousSamClassic-VK

Получим данные для модификации Serious Sam Alpha Remake:

 
wget https://archive.org/download/serioussam-alpharemake-mod-data/SeriousSamAlphaRemake_v1.5.7z
7z x -oSamTFE SeriousSamAlphaRemake_v1.5.7z

или

 
for var in a b c d; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-SSA/SeriousSamAlphaRemake_v1.5.tar.xz.parta$var; done; cat SeriousSamAlphaRemake_v1.5.tar.xz.part* > SeriousSamAlphaRemake_v1.5.tar.xz
tar -xJvpf SeriousSamAlphaRemake_v1.5.tar.xz -C SamTFE

Получим данные для модификации XPLUS:

 
wget https://archive.org/download/sam-tfe-xplus/SamTFE-XPLUS.tar.xz
wget https://archive.org/download/sam-tse-xplus/SamTSE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE

или

for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-XPLUS/SamTFE-XPLUS.tar.xz.parta$var; done; cat SamTFE-XPLUS.tar.xz.part* > SamTFE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTSE-XPLUS/SamTSE-XPLUS.tar.xz.parta$var; done; cat SamTSE-XPLUS.tar.xz.part* > SamTSE-XPLUS.tar.xz
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE

Далее соберём исполняемые файлы и библиотеки для игры Serious Sam Classic вместе с модификацией XPLUS:

cd SeriousSamClassic-VK
mkdir build
mkdir build-xplus
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
make install
cd ..
cd build-xplus
cmake -DCMAKE_BUILD_TYPE=Release -DXPLUS=TRUE ..
make -j8
make install

Далее соберём и библиотеки для модификации Serious Sam Alpha Remake:

cd SeriousSamAlphaRemake/Sources
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ..
make ecc
make -j8

Получившиеся библиотеки libEntities.so и libGame.so из build/Debug поместить в папку SamTFE/Mods/SSA/Bin

Также можно собрать rpm пакеты для установки в систему используя инструкцию:

Как собрать rpm пакет для игры Serious Sam на системе ALT Linux.


Теперь скопируем данные игр Serious Sam The First Encounter и Serious Sam The Second Encounter:

Чтобы начать игру, вам потребуются исходные ресурсы лицензионной копии игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.

Steam-версия.

Если у вас есть цифровая копия игры в Steam, то ресурсы можно найти в ~/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/ (каталог установки игры Steam по умолчанию в Linux).

cd SeriousSamClassic-VK
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The First Encounter/" SamTFE
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/" SamTSE

GOG-версия.

Если вы купили цифровую версию на GOG, вы можете распаковать ресурсы с помощью инструмента командной строки innoextract.

cd SeriousSamClassic-VK
innoextract --gog setup_serious_sam_the_first_encounter_2.0.0.10.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTFE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
innoextract --gog setup_serious_sam_the_second_encounter_2.1.0.8.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTSE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
rm -rf commonappdata

CD-версия.

Если вы купили физическую копию игры и у вас есть ISO-образ вашего диска, вы можете распаковать ресурсы любым менеджером архивов. Ресурсы игры находятся в папке Install на диске. Просто скопируйте оттуда все файлы *.gro, а также каталог Levels в каталоги SeriousSamClassic-VK/SamTFE и SeriousSamClassic-VK/SamTSE соответственно для игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.

Запуск игры.

Для запуска игры используйте скрипт:

run_game.sh

или

run_game_hud.sh

если вам нужен мониторинг MangoHUD.

OpenVR SDK

OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.

- Сайт - GitHub

    git clone --recursive https://github.com/ValveSoftware/openvr.git
    cd openvr && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=ON ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

Bullet Physics SDK

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

- Сайт - GitHub

    git clone --recursive https://github.com/bulletphysics/bullet3.git

переключение на стабильную версию 3.23 (Apr 25 2022) - e95657f80fcaccf2c83db3166d845c59d2cd2d2d (опционально)

    cd bullet3 && git checkout e95657f80fcaccf2c83db3166d845c59d2cd2d2d
    cd bullet3 && mkdir build && cd build

По умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно (-DBUILD_SHARED_LIBS=ON).

    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..

Также можно включить двойную точность (по умолчанию идёт без неё, данная функциональность нужна для OpenMW) и многопоточность с использованием OpenMP (по умолчанию она включается с использованием mutex).

    -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON

Также можно выключить сборку examples и тестов (если в них нет потребности, ускорит сборку библиотеки)

    -DBUILD_CPU_DEMOS=OFF -DBUILD_BULLET2_DEMOS=OFF -DBUILD_EXTRAS=OFF -DBUILD_UNIT_TESTS=OFF
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

Unshield

Tool and library to extract CAB files from InstallShield installers

- GitHub

    git clone --recursive https://github.com/twogood/unshield.git

переключение на стабильную версию 1.5.1 (5 Dec 2021) - 871c2bf9a5694e694abeeeceb034a687fd29b243 (опционально)

    cd unshield && git checkout 871c2bf9a5694e694abeeeceb034a687fd29b243
    cd unshield && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

OpenSceneGraph

The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.

- Сайт - GitHub

    git clone --recursive https://github.com/openscenegraph/OpenSceneGraph.git

переключение на стабильную версию 3.6.5 (31 Jan 2020) - a827840baf0786d72e11ac16d5338a4ee25779db (опционально)

    cd OpenSceneGraph && git checkout a827840baf0786d72e11ac16d5338a4ee25779db
    cd OpenSceneGraph && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

OGRE

OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware.

- Сайт - GitHub

    git clone --recursive https://github.com/OGRECave/ogre.git
    cd ogre && mkdir build && cd build

пре-компилирование и плагин ASSIMP приводят к ошибке при компиляции, поэтому выключаем их (доп.компоненты PYTHON/JAVA/CSHARP/IMGUI также можно отключить)

    cmake -DCMAKE_BUILD_TYPE=Release -DOGRE_ENABLE_PRECOMPILED_HEADERS=FALSE -DOGRE_BUILD_PLUGIN_ASSIMP=FALSE -DOGRE_BUILD_COMPONENT_PYTHON=FALSE -DOGRE_BUILD_COMPONENT_JAVA=FALSE -DOGRE_BUILD_COMPONENT_CSHARP=FALSE ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

OGRE 1.10.12

версия движка OGRE, применяемая в движке openDarkEngine

В /OgreMain/include/OgrePlatform.h в 168 строку добавить дефайн e2k

    wget https://github.com/OGRECave/ogre/archive/v1.10.12.zip
    unzip v1.10.12.zip
    cd ogre-1.10.12 && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DOGRE_BUILD_DEPENDENCIES=FALSE -DOGRE_USE_STD11=TRUE -DOGRE_BUILD_COMPONENT_PYTHON=FALSE -DOGRE_BUILD_COMPONENT_JAVA=FALSE -DOGRE_CONFIG_THREAD_PROVIDER=std ..
    make -j8

MyGUI

MyGUI is a library for creating Graphical User Interfaces (GUIs) for games and 3D applications.

- Сайт - GitHub

    git clone --recursive https://github.com/MyGUI/mygui.git

переключение на стабильную версию 3.4.1 (1 Mar 2021) - 81e5c67e92920607d16bc2aee1ac32f6fd7d446b (опционально)

    cd mygui && git checkout 81e5c67e92920607d16bc2aee1ac32f6fd7d446b
    cd mygui && mkdir build && cd build

по умолчанию MyGUI требует установленный движок OGRE (MYGUI_RENDERSYSTEM=3), но можно собрать и без него, поэтому стоит переключиться на использование OpenGL 3.x (MYGUI_RENDERSYSTEM=7) или OpenGL (MYGUI_RENDERSYSTEM=4)

    cmake -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 ..

или можно собрать без всего дополнительного (движок OGRE, демо, плагины и инструменты)

    cmake -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=1 -DMYGUI_BUILD_DEMOS=OFF -DMYGUI_BUILD_PLUGINS=OFF -DMYGUI_BUILD_TOOLS=OFF ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

RecastNavigation

Navigation-mesh Toolset for Games

- GitHub

    git clone --recursive https://github.com/recastnavigation/recastnavigation.git
    cd recastnavigation && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
    make -j8

LuaJIT

Support of e2k architecture for LuaJIT.

- GitHub

    git clone --recursive https://github.com/helce/LuaJIT.git
    cd LuaJIT
    make HOST_CC=gcc CC=gcc XCFLAGS="-DLUAJIT_UNWIND_EXTERNAL -fexceptions" TARGET_STRIP="true" PREFIX=/usr -j8

создание отладочной (debug) версии

    make HOST_CC=gcc CC=gcc XCFLAGS="-DLUAJIT_UNWIND_EXTERNAL -fexceptions -O0 -g" TARGET_STRIP="true" PREFIX=/usr -j8

Sphinx

Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText sources)

- Сайт - GitHub

    pip install -U sphinx

OpenMW

OpenMW is an open-source open-world RPG game engine that supports playing Morrowind

- Сайт - GitHub - GitLab

Требуемые библиотеки:

  1. Unshield
  2. OpenSceneGraph (не ниже версии 3.4)
  3. MyGUI (не ниже версии 3.2.2)
  4. Bullet Physics SDK (не ниже версии 2.86)
  5. RecastNavigation
  6. LuaJIT (можно выключить использование через опцию -DUSE_LUAJIT=OFF. В таком случае будет использоваться Lua)
  7. Sphinx (необходим при использовании опции -DBUILD_DOCS=ON)
  8. yaml-cpp (apt install yaml-cpp)
  9. git (apt install git)
    git clone --recursive https://github.com/OpenMW/openmw.git

переключение на стабильную версию 0.48 (20 Aug 2023) - a63d7e473eef5be221ad5e036f23bbb36c6dca10 (опционально)

    cd openmw && git checkout openmw-48
    cd openmw && mkdir build && cd build

Важно!!! - если библиотека Bullet Physics SDK собиралась без опции двойной точности (-DUSE_DOUBLE_PRECISION=ON), то в игре нужно перейти на использование встроенной библиотеки (-DOPENMW_USE_SYSTEM_BULLET=OFF)

    cmake -DCMAKE_BUILD_TYPE=Release ..

Можно собрать с доп.опциями создания документации и статической линковки всего в один исполняемый файл

    -DBUILD_DOCS=ON -DBOOST_STATIC=ON -DQT_STATIC=ON -DOPENMW_USE_SYSTEM_BULLET=OFF -DOPENMW_USE_SYSTEM_OSG=OFF -DOPENMW_USE_SYSTEM_MYGUI=OFF -DOPENMW_USE_SYSTEM_RECASTNAVIGATION=OFF -DOPENMW_USE_SYSTEM_SQLITE3=OFF 
    make -j8

OSG on steroids

Fork of OpenSceneGraph for OpenMW-specific performance improvements.

Разработчики OpenMW рекомендуют использовать их fork оригинального движка OpenSceneGraph, поскольку с их слов это даст некоторую прибавку к производительности

- GitHub

    git clone --recursive https://github.com/OpenMW/osg.git
    cd osg && mkdir build && cd build

движок OSG по умолчанию собирает много плагинов, которые не нужны OpenMW, поэтому их можно отключить на этапе конфигурирования (доп.опции взяты из мануала разработчиков OpenMW по сборке)

    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_OSG_PLUGINS_BY_DEFAULT=0 -DBUILD_OSG_PLUGIN_OSG=1 -DBUILD_OSG_PLUGIN_DDS=1 -DBUILD_OSG_PLUGIN_TGA=1 -DBUILD_OSG_PLUGIN_BMP=1 -DBUILD_OSG_PLUGIN_JPEG=1 -DBUILD_OSG_PLUGIN_PNG=1 -DBUILD_OSG_PLUGIN_FREETYPE=1 -DBUILD_OSG_DEPRECATED_SERIALIZERS=0 ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

Xash3D FWGS Engine

Xash3D FWGS engine. Rebooted fork since big Xash3D 0.99 (1.0 is not yet) update.

Open source implementation of the Half-Life 1 game engine

- GitHub

    git clone --recursive https://github.com/FWGS/xash3d-fwgs.git

Автоматически определяет, что на е2к нужно собирать 64 битную версию движка, но можно указать вручную через -8/--64bits (опция нужна только для x86) На е2к автоматически соберёт с OpenGL 1.1 (максимальный реализованный уровень в самом движке)

    cd xash3d-fwgs && ./waf configure -T release

Автоматически определяет количество ядер для компиляции, но можно указать вручную через -j/--jobs

    ./waf build
    ./waf install --strip --destdir=./xash-fwgs_e2k

Получим файлы

    /usr/local/lib/xash3d/libmenu.so
    /usr/local/lib/xash3d/libref_gl.so 
    /usr/local/lib/xash3d/libref_soft.so 
    /usr/local/lib/xash3d/libxash.so 
    /usr/local/lib/xash3d/xash3d

Half-Life SDK for Xash3D

Fork of patched Half-Life SDK 2.3 from original Xash3D engine sources

- GitHub

    git clone --recursive https://github.com/FWGS/hlsdk-xash3d.git
    cd hlsdk-xash3d && ./waf configure -T release
    ./waf build
    ./waf install --strip --destdir=./hlsdk-xash3d_e2k

Получим файлы

    /valve/cl_dlls/client_e2k.so
    /valve/dlls/hl_e2k.so

Полученная папка valve с библиотеками (client_e2k.so и hl_e2k.so) копируется прямо поверх папки valve в оригинальной игре (сохраняя иерархию).

valve - это единственная необходимая папка из Half-Life 1.

Ранее полученные файлы Xash3D (libmenu.so, libref_gl.so, libref_soft.so, libxash.so, xash3d) копируются также в корень папки с оригинальной игрой. Запускать с LD_LIBRARY_PATH=.

source-engine

Modified source engine (2017) developed by Valve and leaked in 2020. Not for commercial purporses.

- GitHub

    git clone --recursive https://github.com/nillerusr/source-engine.git
    cd source-engine
    ./waf configure --64bits --build-type=native --build-games=hl2 --prefix=/path/to/game
    ./waf build --jobs=8
    ./waf install

дополнительные игры

    ./waf configure --64bits --build-type=native --build-games=cstrike --enable-opus --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=hl2mp --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=episodic --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=portal --prefix=/path/to/game
    ./waf configure --64bits --build-type=native --build-games=dod --prefix=/path/to/game

premake5

Generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.

- Сайт - GitHub

    git clone --recursive https://github.com/premake/premake-core.git
    cd premake-core
    make -f Bootstrap.mak linux

Или

    wget https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-src.zip
    unzip premake-5.0.0-beta2-src.zip
    cd premake-5.0.0-beta2-src/build/gmake2.unix
    make config=release

Скомпилированные файлы будут находиться в /bin/release

GLFW

A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.

- Сайт - GitHub

    git clone --recursive https://github.com/glfw/glfw.git

переключение на стабильную версию 3.3.8 (22 Jul 2022) - 7482de6071d21db77a7236155da44c172a7f6c9e (опционально)

    cd glfw && git checkout 7482de6071d21db77a7236155da44c172a7f6c9e
    cd glfw && mkdir build && cd build

по умолчанию собирается как статическая библиотека, поэтому динамический вариант нужно включить отдельно

    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).


Cоздание deb пакета при помощи checkinstall (опционально)

    checkinstall --type=debian --install=no --pkgname=glfw --pkgversion=3.3.8 --nodoc --strip --stripso --addso --gzman make install

re3

The aim of this project is to reverse GTA III for PC by replacing parts of the game one by one such that we have a working game at all times.

- GitHub

Требуемые библиотеки:

  1. premake5
  2. GLFW (не ниже версии 3.3.2)
    git clone --recursive https://github.com/GTAmodding/re3.git

или

    git clone --recursive https://github.com/hottabxp/re3.git

или

    git clone --recursive https://git.rip/DMCA_FUCKER/re3.git
    cd re3
    premake5 --with-librw gmake2
    cd build
    make -j8 config=release_linux-amd64-librw_gl3_glfw-oal

скомпилированные файлы будут находиться в /bin/release

reVC

The aim of this project is to reverse GTA Vice-City

    git clone --recursive -b miami https://github.com/hottabxp/re3.git reVC

reLCS

The aim of this project is to reverse GTA Liberty City Stories.

    git clone --recursive -b lcs https://github.com/hottabxp/re3.git reLCS

OpenGothic

Reimplementation of Gothic 2 Notr (Night of the raven)

- GitHub

    git clone --recursive https://github.com/Try/OpenGothic.git

переключение на стабильную версию 0.52 (6 Nov 2021) - c9c807936e95292b47e1667964be2243439d25c3 (опционально)

    cd OpenGothic && git checkout c9c807936e95292b47e1667964be2243439d25c3
    cd OpenGothic && mkdir build && cd build

предварительно удаляем -Wconversion из CMakeLists.txt (строка 26) - присутствует ошибка в библиотеке TinySoundFont

    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

OpenGothic-e2k

ввиду отсутствия на текущий момент полной поддержки стандарта С++20 в компиляторе mcst-lcc 1.26/1.27 была создана модифицированная версия OpenGothic от Алексея Мишина, которая представляет собой версию от 2 ноября 2022 с откатом назад некоторых системных библиотек.

- GitHub

    git clone --recursive https://github.com/DarkMalex/OpenGothic-e2k.git

Ship of Harkinian

Порт игры The Legend of Zelda: Ocarina of Time основанный на её декомпилированной версии.

- Сайт - GitHub

    git clone --recursive https://github.com/HarbourMasters/Shipwright.git
    git checkout 5.1.4
    cd Shipwright

Копируем образ с игрой в каталог для извлечения ресурсов

    cp <Путь к ROM> OTRExporter

Готовим проект

    cmake -H. -Bbuild-cmake -GNinja

Во встроенной библиотеке fmt исправляем ошибку (нужный файл) или линкуемся к системной версии с -DSPDLOG_FMT_EXTERNAL=ON

В libultraship/src/debug/CrashHandler.cpp нужно убрать код функции PrintRegisters (на этой строчке), или скрыть ее за !defined(__e2k__)

Собираем

    cmake --build build-cmake --target ExtractAssets
    cmake --build build-cmake


Conan

The open-source C/C++ package manager (начиная с версии 1.33 имеет поддержку е2к)

- Сайт - GitHub

Перед установкой conan желательно обновить pip на актуальную версию

    /usr/bin/python3 -m pip install --upgrade pip
    pip3 install conan

Установка только для текущего пользователя (если нет root прав)

    pip3 install conan --user

Установка конкретной версии (с удалением предыдущей версии)

    pip3 uninstall conan
    pip3 install --force-reinstall -v "conan==1.61.0"

The Dark Mod

The Dark Mod is free and open-source software first-person stealth video game, inspired by the Thief series by Looking Glass Studios.

- Сайт - GitHub

Требуемые библиотеки:

  1. Conan
    svn co https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk darkmod_src

загрузка версии 2.11 (06 Feb 2023) - (опционально)

    wget https://www.thedarkmod.com/sources/thedarkmod.2.11.src.7z
    7z x thedarkmod.2.11.src.7z -odarkmod_src

добавляем custom рецепты в локальный conan-репозиторий, отвечаем yes

    cd darkmod_src/ThirdParty && python3 1_export_custom.py
    conan install . --build -o platform_name=elbrus-8c
    cd .. && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCOPY_EXE=OFF -DTHIRDPARTY_PLATFORM_OVERRIDE=elbrus-8c ..
    make -j8

В случае отсутствия некоторых рецептов сборки (ERROR: zlib/1.2.11: option 'minizip' doesn't exist), следует добавить дополнительный репозиторий

    conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/public-conan
    conan config set general.revisions_enabled=1

RapidJSON (черновик!)

A fast JSON parser/generator for C++ with both SAX/DOM style API.

- Сайт - GitHub

Загрузить пакет rapidjson-dev и установить

    https://packages.debian.org/buster/rapidjson-dev

Опционально можно установить пакет rapidjson-doc

    https://packages.debian.org/buster/rapidjson-doc

OGRE v2 (OGRE-next)

scene-oriented, flexible 3D engine written in C++

- Сайт - GitHub

Требуемые библиотеки:

  1. RapidJSON
    git clone --recursive https://github.com/OGRECave/ogre-next.git
    cd ogre-next && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DOGRE_SIMD_NEON=FALSE ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

Irrlicht Engine

- Сайт

    wget http://downloads.sourceforge.net/irrlicht/irrlicht-1.8.5.zip
    unzip irrlicht-1.8.5.zip
    cd irrlicht-1.8.5/source/Irrlicht
    make sharedlib NDEBUG=1 -j8
    make install

development версия

    svn co svn://svn.code.sf.net/p/irrlicht/code/trunk irrlicht
    cd irrlicht/source/Irrlicht
    make sharedlib NDEBUG=1 -j8
    make install

Minetest

Minetest is an open source voxel game engine with easy modding and game creation.

- Сайт - GitHub

Требуемые библиотеки:

  1. Irrlicht Engine
    git clone --recursive https://github.com/minetest/minetest.git

переключение minetest на стабильную версию 5.7.0 (08 Apr 2023) - 1b95998d11fb0d51fbfeedc56de4ca2191ad3f7a (опционально)

    cd minetest && git checkout 1b95998d11fb0d51fbfeedc56de4ca2191ad3f7a
    cd minetest
    git clone --recursive https://github.com/minetest/minetest_game.git games/minetest_game
    git clone --recursive https://github.com/minetest/irrlicht.git lib/irrlichtmt

переключение minetest_game на стабильную версию 5.7.0 (08 Apr 2023) - 833ed776204b194d96b50e400861dec07b5c16aa (опционально)

    cd games/minetest_game && git checkout 833ed776204b194d96b50e400861dec07b5c16aa

переключение IrrlichtMt на стабильную версию 1.9.0mt10 (05 Mar 2023) - 1d43ea17ca8ee9a01262e9e34c5c89579b97397f (опционально)

    cd lib/irrlichtmt && git checkout 1d43ea17ca8ee9a01262e9e34c5c89579b97397f
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDEVELOPMENT_BUILD=FALSE -DBUILD_CLIENT=TRUE -DBUILD_SERVER=TRUE -DRUN_IN_PLACE=FALSE ..
    make -j8

Создание deb пакета при помощи checkinstall (опционально)

    checkinstall --type=debian --install=no --pkgname=minetest --pkgversion=5.7.0 --nodoc --strip --stripso --reset-uids --gzman make install

Minetest's fork of Irrlicht

Разработчики Minetest рекомендуют использовать их fork оригинального движка Irrlicht Engine.

- GitHub

    git clone --recursive https://github.com/minetest/irrlicht.git irrlicht-mt

переключение на стабильную версию 1.9.0mt12 (20 Jul 2023) - c311d01c073fa4655fa5ada8feb9d4346b64669d (опционально)

    cd irrlicht-mt && git checkout c311d01c073fa4655fa5ada8feb9d4346b64669d
    cd irrlicht-mt
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=TRUE ..
    make -j8
    make install

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

SurrealEngine

The goal of this project is to reimplement enough of the original Unreal Engine to make the Unreal Tournament (UT99) maps playable..

- GitHub

Требуемые библиотеки:

  1. SDL 2.26 [1]
    git clone --recursive https://github.com/dpjudas/SurrealEngine.git
    cd SurrealEngine && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

ioquake3

ioquake3 is a free software first person shooter engine based on the Quake 3: Arena and Quake 3: Team Arena source code.

- Сайт - GitHub

    git clone --recursive https://github.com/ioquake/ioq3.git
    cd ioq3 && git checkout 56c83c8a72532749b6e652c7b9d3760d87e15563
    make -j8

vkQuake

Vulkan Quake port based on QuakeSpasm

- GitHub

    git clone --recursive https://github.com/Novum/vkQuake.git
    cd vkQuake/Quake

меняем в vkQuake/Quake/Makefile (строка 23) MP3LIB=mad на MP3LIB=mpg123

    make -j8

vkQuake2

id Software's Quake 2 v3.21 with mission packs and Vulkan support.

- GitHub

    git clone --recursive https://github.com/kondrak/vkQuake2.git
    cd vkQuake2/linux
    make release -j8

Yamagi Quake II

The Yamagi Quake II client.

- Сайт - GitHub

    git clone --recursive https://github.com/yquake2/yquake2.git
    cd yquake2
    mkdir build & cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Vulkan Renderer Library for Yamagi Quake II

Optional Vulkan renderer lib for Yamagi Quake II.

- GitHub

    git clone --recursive https://github.com/yquake2/ref_vk.git
    cd ref_vk
    make -j8

Q2RTX

NVIDIA’s implementation of RTX ray-tracing in Quake II.

- GitHub

    git clone --recursive https://github.com/NVIDIA/Q2RTX.git
    cd Q2RTX && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DALSOFT_CPUEXT_NEON=OFF -DALSOFT_BACKEND_OSS=OFF ..
    make -j8

vkQuake3

Its based on ioq3,added a vulkan based modular render back end which originally from https://github.com/kennyalive/Quake-III-Arena-Kenny-Edition

- GitHub

    git clone --recursive https://github.com/suijingfeng/vkQuake3.git
    cd vkQuake3
    make USE_CODEC_OPUS=0 -j8

OpenArena

OpenArena modifications to the ioquake3 engine

- GitHub - GitHub

    git clone --recursive https://github.com/OpenArena/engine.git
    cd engine
    make USE_CODEC_XMP=0 -j8
    git clone --recursive https://github.com/OpenArena/gamecode.git
    cd gamecode
    make -j8

vkOpenArena

fork of OpenArena with specific changes to its renderer module (Vulkan)

- GitHub

    git clone --recursive https://github.com/suijingfeng/vkOpenArena.git
    cd vkOpenArena
    make -j8

OpenJK

Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software

- GitHub

    git clone --recursive https://github.com/JACoders/OpenJK.git
    cd OpenJK && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

iortcw

Merge of ioquake3 features and fixes into RTCW (Return to Castle Wolfenstein) code bases.

- GitHub

    git clone --recursive https://github.com/iortcw/iortcw.git

сборка single player

    cd iortcw/SP
    make -j8

сборка multiplayer

    cd iortcw/MP
    make -j8

avp

Aliens vs Predator Linux enhanced with cutscene support and new screen resolutions.

- GitHub

    git clone --recursive https://github.com/neuromancer/avp.git
    cd avp && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

FreeImage

FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications.

- GitHub

    git clone --recursive https://github.com/WinMerge/freeimage.git
    cd freeimage
    make -j8 -f Makefile.gnu
    make -f Makefile.gnu install

FreeImagePlus

    make -j8 -f Makefile.fip
    make -f Makefile.fip install

CMake

the cross-platform, open-source build system.

- Сайт - GitLab - GitHub

    wget https://cmake.org/files/v3.23/cmake-3.23.3.tar.gz
    tar -xvf cmake-3.23.3.tar.gz
    cd ./cmake-3.23.3
    ./bootstrap --verbose --parallel=8 --qt-gui --system-zstd --prefix=/usr
    make -j8
    make install

Если не нужен cmake-gui, тогда при конфигурировании заменить --qt-gui на --no-qt-gui

workaround для компилятора mcst-lcc 1.25 и ниже

в компиляторе mcst-lcc, версии 1.25 и ниже, присутствует ошибка в C++ Front End от EDG (Edison Design Group)

    mcedit ./Source/cmMakefile.cxx

заменить decltype(this->Tests) на decltype(cmMakefile::Tests)

OpenXRay

OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

- GitHub

Требуемые библиотеки (заголовки) и инструменты:

  1. GLEW, LockFile, OpenAL, ogg, vorbis, theora, SDL, lzo, jpeg, pcre
  2. CMake (не ниже версии 3.16)
    git clone --recursive https://github.com/OpenXRay/xray-16.git
    cd xray-16
    cd Externals && rm -fr ./LuaJIT
    git clone --recursive -b openxray https://github.com/helce/LuaJIT.git
    cd .. && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j8

ВАЖНО! Процесс компиляции занимает свыше 2 часов на 8С (чуть больше получаса на 16С)

Можно собирать быстрее, если использовать ninja вместо make:

    cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DUSE_CRYPTOPP=OFF ..

И далее сборка командой

    ninja


Создание .deb пакета

    make package


Процесс запуска игры описан в wiki, пункт Игровые ресурсы.

e2k-alt-linux

Для установки требуемых пакетов на e2k-alt-linux можно выполнить команду:

    # apt-get install gcc-c++ cmake ninja-build libglew-devel liblockfile-devel libopenal-devel libogg-devel libvorbis-devel libtheora-devel libSDL2-devel liblzo2-devel libjpeg-devel libpcre-devel libmimalloc-devel liblua5.1-devel

...и перед запуском cmake потребуется поправить путь к pcre.h (строчка дана для cwd == build; в текущих исходниках будто нет в ней нужды):

    $ sed -i 's,pcre.h,pcre/pcre.h,' ../cmake/FindPCRE.cmake ../src/xrCore/_math.cpp

На lcc 1.25.09 проверена возможность поднятия уровня оптимизации (ощутимо помогает fps):

$ sed -i 's,-O2,-O3,g' Externals/NVTT/src/nvtt/squish/config

либо перед запуском make:

$ grep -rl -- -O2 build | xargs -r sed -i 's,-O2,-O3,g' --

типовые проблемы

  • 'lj_allow_escape_sequences' is undefined при сборке script_engine.cpp -- LuaJIT должен быть достаточно свежим, проверьте, успешно ли прошёл git rebase
  • переключение языка на русский - g_language rus
  • включение отображения счётчика кадросекунд - rs_fps on
  • возможные проблемы с компиляцией файла xray-16/src/xrServerEntities/restriction_space.h

нужно заменить строку using intrusive_base::release; на

   bool release() XR_NOEXCEPT
   {
       return intrusive_base::release();
   }
    mcedit ../src/xrServerEntities/restriction_space.h

Arx Libertatis

Cross-platform port of Arx Fatalis, a first-person role-playing game

- Сайт - GitHub

    git clone --recursive https://github.com/arx/ArxLibertatis.git
    cd ArxLibertatis && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

minizip-ng

Fork of the popular zip manipulation library found in the zlib distribution.

- GitHub

    git clone --recursive https://github.com/zlib-ng/minizip-ng
    cd minizip-ng
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DMZ_BUILD_TEST=ON -DBUILD_SHARED_LIBS=ON ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

Xonotic (черновик!)

The Free and Fast Arena Shooter

- Сайт - GitLab - Инструкция по сборке

Требуемые библиотеки:

  1. minizip-ng
    git clone https://gitlab.com/xonotic/xonotic.git
    cd xonotic
    ./all update -l best
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

gloox

rock-solid, full-featured Jabber/XMPP client library

- Сайт

    wget https://camaya.net/download/gloox-1.0.24.tar.bz2 && tar -xf ./gloox-1.0.24.tar.bz2
    cd gloox-1.0.24
    ./configure --prefix=/usr
    make -j8
    make install

miniupnpc

UPnP IGD client lightweight library client

- Сайт

    wget http://miniupnp.free.fr/files/miniupnpc-2.2.2.tar.gz && tar -xf ./miniupnpc-2.2.2.tar.gz
    cd miniupnpc-2.2.2 && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j8
    make install

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

libsodium

modern, portable, easy to use crypto library

- Сайт - GitHub

    git clone --recursive https://github.com/jedisct1/libsodium --branch stable

или

    wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz && tar -xf ./libsodium-1.0.18-stable.tar.gz
    cd ./libsodium-stable
    ./configure --prefix=/usr
    make -j8 && make check -j8
    make install

libenet (ENet)

Reliable UDP networking library

- Сайт - GitHub

    git clone --recursive https://github.com/lsalzman/enet.git

переключение на стабильную версию 1.3.17 (15 Nov 2020 ) - e0e7045b7e056b454b5093cb34df49dc4cee0bee (опционально)

    cd enet && git checkout e0e7045b7e056b454b5093cb34df49dc4cee0bee
    cd enet
    autoreconf -vfi
    ./configure --prefix=/usr
    make -j8
    make install

fmt

A modern formatting library

- Сайт - GitHub

    git clone --recursive https://github.com/fmtlib/fmt.git

переключение на стабильную версию 9.1.0 (27 Aug 2022) - a33701196adfad74917046096bf5a2aa0ab0bb50 (опционально)

    cd fmt && git checkout a33701196adfad74917046096bf5a2aa0ab0bb50
    cd fmt && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DFMT_TEST=OFF -DBUILD_SHARED_LIBS=ON ..
    make -j8

Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr при конфигурировании через CMake. Тогда установка произойдёт в папку /usr, а не /usr/local (по умолчанию).

0 A.D. (черновик!)

A free, open-source, historical Real Time Strategy (RTS) game currently under development by Wildfire Games, a global group of volunteer game developers.

- Сайт - Инструкция по сборке

Требуемые библиотеки:

  1. gloox (нужно для lobby)
  2. miniupnpc (нужно для lobby)
  3. libsodium
  4. libenet (ENet)
  5. {fmt}
    svn co https://svn.wildfiregames.com/public/ps/trunk/ 0ad_svn
    cd 0ad_svn/build/workspaces

возможные опции

    ./update-workspaces.sh --without-audio --without-lobby --without-miniupnpc --without-nvtt --with-system-mozjs --disable-atlas --without-tests --without-pch -j8

собираем с nvtt (убираем --without-nvtt) и со звуком (убираем --without-audio)

    ./update-workspaces.sh --without-lobby --without-miniupnpc --with-system-mozjs --disable-atlas --without-tests --without-pch -j8
    cd gcc
    make -j8

fheroes2

Free implementation of Heroes of Might and Magic II game engine.

- Сайт - GitHub

    git clone --recursive https://github.com/ihhub/fheroes2.git
    cd fheroes2/script/demo
    ./demo_linux.sh
    cd ../../
    export RELEASE="ON" FHEROES2_IMAGE_SUPPORT="ON"
    make -j8

Для компилирования с SDL 1

    export FHEROES2_SDL1="ON"
    make -j8

VCMI

Open-source engine for Heroes of Might and Magic III

- Сайт - GitHub - Инструкция по сборке

Требуемые библиотеки:

  1. sdl2-image (apt install sdl2-image)
  2. sdl2-mixer (apt install sdl2-mixer)
  3. sdl2-ttf (apt install sdl2-ttf)
    git clone --recursive https://github.com/vcmi/vcmi.git
    cd vcmi && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

можно использовать опцию -DENABLE_MONOLITHIC_INSTALL=ON и указать префикс установки в одну конкретную папку


после 25 июля 2021 года было добавлено обязательное использование TBB (Intel Threading Building Blocks), поэтому можно откатиться на раннюю версию от 18 июля 2021 года, где ещё не требуется TBB

    cd vcmi && git checkout 10cfefdf9d09514086ca0b7208d688ae365eab9b

перед запуском игры сначала необходимо провести процедуру инициализации игровых данных

    vcmibuilder --data /path/to/game/Heroes-of-Might-and-Magic_3/

devilutionX

DevilutionX is a port of Diablo and Hellfire that strives to make it simple to run the game while providing engine improvements, bugfixes, and some optional quality of life features.

- GitHub

перед началом сборки нужно закомментировать строчку 262 (не поддерживаемые, пока, опции -fipa-pta;-fdevirtualize-at-ltrans)

    git clone --recursive https://github.com/diasurgical/devilutionX.git
    cd devilutionX && git checkout 1616318bb185446cea4346c0eed48f80c1ac2e69
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDEVILUTIONX_SYSTEM_LIBFMT=OFF ..
    make -j8

Urho3D

Cross-platform 2D and 3D game engine.

- Сайт - GitHub

    git clone --recursive https://github.com/urho3d/Urho3D.git
    cd Urho3D && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DURHO3D_LIB_TYPE=SHARED -DURHO3D_ANGELSCRIPT=OFF -DURHO3D_LUAJIT=OFF ..
    make -j8

OpenXcom

Open-source clone of the original X-Com.

- Сайт - GitHub

    git clone --recursive https://github.com/OpenXcom/OpenXcom.git
    cd OpenXcom && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Создание .deb пакета

    make package

OpenTTD

Is an open source simulation game based upon Transport Tycoon Deluxe.

- Сайт - GitHub

    git clone --recursive https://github.com/OpenTTD/OpenTTD.git

переключение OpenTTD на стабильную версию 1.11.2 (3 May 2021) - 672f285218c6817784d86f737987b75db4bc78fc (опционально)

    cd OpenTTD && git checkout 672f285218c6817784d86f737987b75db4bc78fc
    cd OpenTTD && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

PLIB

PLIB (Portable Game Library) is a set of software libraries for writing games written by Steve J. Baker.

- Сайт

    wget http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz && tar -xvf plib-1.8.5.tar.gz
    cd plib-1.8.5
    wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
    wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
    ./configure
    make -j8
    make install

SimGear

SimGear is a set of open-source libraries designed to be used as building blocks for quickly assembling 3d simulations, games, and visualization applications. SimGear is developed by the FlightGear project and also provides the base for the FlightGear Flight Simulator.

- Сайт - SourceForge - GitHub

Требуемые библиотеки:

  1. OpenSceneGraph (не ниже версии 3.6.0)
    git clone --recursive https://github.com/FlightGear/simgear.git

переключение на стабильную версию 2020.3.11 (29 Jul 2021) - a157e503020611a3e0caa1a450a01a97614c896a (опционально)

    cd simgear && git checkout a157e503020611a3e0caa1a450a01a97614c896a

предварительно добавляем defined(__e2k__) в файл simgear/math/simd.hxx (строка 33) для подключения заголовочного файла x86intrin.h.

    cd simgear && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DSIMGEAR_SHARED=ON -DENABLE_TESTS=OFF -DENABLE_SIMD=ON -DENABLE_SIMD_CODE=ON ..
    make -j8

FlightGear

FlightGear is an open-source flight simulator.

- Сайт - SourceForge - GitHub

Требуемые библиотеки:

  1. OpenSceneGraph (не ниже версии 3.6.0)
  2. PLIB
  3. SimGear
    git clone --recursive https://github.com/FlightGear/flightgear.git

переключение на стабильную версию 2020.3.11 (30 Jul 2021) - c060800fed65ce9502a9dfad46cccf59c941362b (опционально)

    cd flightgear && git checkout c060800fed65ce9502a9dfad46cccf59c941362b
    cd flightgear && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DFG_BUILD_TYPE=Release ..
    make -j8

goldberg-emulator

Steam emulator that emulates steam online features. Lets you play games that use the steam multiplayer apis on a LAN without steam or an internet connection.

- GitLab

    git clone --recursive https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
    cd goldberg_emulator && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Kisak-Strike

100% Open Source CSGO

- GitHub

Требуемые библиотеки:

  1. goldberg-emulator
  2. sdl2-mixer (apt install sdl2-mixer)
    git clone --recursive https://github.com/SwagSoftware/Kisak-Strike.git

нужно скопировать ранее полученный libsteam_api.so в Kisak-Strike/lib/public/linux64/ (предварительно удалив все файлы в этой папке linux64)

    cd Kisak-Strike && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DUSE_ROCKETUI=ON -DUSE_KISAK_PHYSICS=ON ..
    make -j8

ВАЖНО! Процесс компиляции занимает свыше 1,5 часов на 8С

В результате компиляции, уровнем выше Kisak-Strike, появится папка game (её нельзя переименовывать или перемещать). В неё нужно будет скопировать содержимое Kisak-Strike-Files (дополнительные файлы GUI rocketui для Kisak-Strike)

    cd ../../
    git clone https://github.com/SwagSoftware/Kisak-Strike-Files.git
    cp -r ./Kisak-Strike-Files/* ./game/

запуск игры

    ./game/csgo_linux64 -dev

или

    ./game/csgo_linux64 -console

консольные команды

  • отображение счётчика кадросекунд - net_graph 1
  • крупный шрифт счётчика кадросекунд - net_graphproportionalfont 1
  • загрузка карты - map cs_office
  • получение оружия - give weapon_ak47
  • включение многопоточности - host_thread_mode 1

ZZIPlib

The ZZIPlib provides read access on ZIP-archives and unpacked data. It features an additional simplified API following the standard Posix API for file access.

- Github

    git clone --recursive https://github.com/gdraheim/zziplib.git
    cd zziplib&& mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j8

Open Dynamics Engine

ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API.

- Сайт - Bitbucket

    git clone --recursive https://bitbucket.org/odedevs/ode/
    cd ode && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON ..
    make -j8

openDarkEngine

Rewrite of the Dark Engine by Looking Glass.

- Github

Требуемые библиотеки (заголовки) и инструменты:

  1. FreeImagePlus
  2. ZZIPlib
  3. OGRE 1.10.12
  4. Open Dynamics Engine
    git clone --recursive https://github.com/volca02/openDarkEngine.git
    cd openDarkEngine&& mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

запуск игры

перед запуском игры нужно вручную создать и заполнить следующие конфигурационные файлы (примеры конфигураций можно посмотреть в doc/DEVELOPERS):

  • opde.cfg
  • plugins.cfg
  • resources.cfg
  • shock2.cfg
  • thief1.cfg
  • thief2.cfg

также, в папку с исполняемым файлом нужно скопировать папку scripts из директории с исходными кодами

запуск игр (Thief TDP, Thief II TMA, System Shock 2) осуществляется через подстановку соответствующих параметров исполняемому файлу (t1, t2, ss2)

    opdeMain ss2

falltergeist

Opensource crossplatform Fallout 2 engine writen in C++ and SDL.

- Сайт - GitHub

    git clone --recursive https://github.com/falltergeist/falltergeist.git
    cd falltergeist && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

Игру нужно поместить в папку ~/.local/share/falltergeist/ или /usr/local/share/falltergeist, причём в эту же папку нужно скопировать папку data из директории с исходными кодами.

PCSX-Reloaded

Is a forked version of the dead PCSX emulator, with a nicer interface and several improvements to stability and functionality.

- GitHub

    git clone --recursive https://github.com/iCatButler/pcsxr.git
    cd pcsxr && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DDYNAREC=no ..
    make -j8

ScummVM

Современный движок для игр-квестов восьмидесятых и девяностых годов на движках SCUMM и подобных (Loom, Legend of Kyrandia 1, 2, 3 и т.п.)

Сайт

Проверена собираемость и работоспособность версии 2.2.0 на ОС Эльбрус 6.0-rc3.

    wget https://downloads.scummvm.org/frs/scummvm/2.2.0/scummvm-2.2.0.tar.gz
    tar xf scummvm-2.2.0.tar.gz
    cd scummvm-2.2.0
    ./configure --enable-release --prefix=/usr
    make -j16
    make install

ZMusic

Библиотека поддержки воспроизведения музыки для GZDoom современных версий.

Проверена собираемость и работоспособность снапшота git@9e950c1 на ОС Эльбрус 6.0-rc3.

    git clone https://github.com/coelckers/ZMusic
    cd ZMusic
    mkdir build; cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j16 
    make install

GZDoom

Современный движок для 3D-шутеров на движках id Tech 1 и подобных (Doom, Doom II, Heretic, Hexen, Strife) с дополнительными возможностями для моддинга. Основан на ZDoom.

Сайт

Проверена собираемость и работоспособность версии git@013078a на ОС Эльбрус 6.0-rc3.

Для версий раньше коммита 10c682a (30.11.2020) нужно раскомментировать строчку с вызовом sed (разумеется, для версий позже этого коммита можно её вообще убрать - соответствующий pull request уже принят в апстрим).

Перед сборкой необходимо собрать и установить ZMusic.

    git clone https://github.com/coelckers/gzdoom
    cd gzdoom
    # sed -i 's/goto \*ops/goto *(void*)ops/' src/common/scripting/vm/vmexec.cpp   # только для версий раньше 10c682a
    mkdir build; cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j16 
    make install

N.B. При клонировании репозитория с флагом --recurse-submodules свежая версия ZMusic будет скачана и скомпилирована вместе с движком, т.к. библиотека теперь идёт как суб-модуль.

Taisei Project

Кроссплатформенная FOSS-игра, аналогичная играм серии Touhou Project (по этому же сеттингу).

Сайт

Проверена собираемость и работоспособность снапшота git@6a44aa4 на ОС Эльбрус 6.0-rc3.

    git clone https://github.com/taisei-project/taisei
    cd taisei
    git submodule init
    git submodule update
    mkdir build; cd build
    meson --prefix=/usr ..
    ninja
    ninja install

DOSBox-X

Эмулятор машин на процессорах i8086-i386, аналогичный DOSBox, но более расширенный и с поддержкой эмуляции PC-98.

Сайт

Проверена собираемость и работоспособность версии 0.83.7 на ОС Эльбрус 6.0-rc3.

Нужен следующий патч:

   diff --git a/stb_vorbis.h b/stb_vorbis.h.0
   index 35422b2..7c70034 100644
   --- a/src/libs/decoders/stb_vorbis.h
   +++ b/src/libs/decoders/stb_vorbis.h
   @@ -5202,19 +5202,19 @@ stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, int *err
    #define PLAYBACK_LEFT     2
    #define PLAYBACK_RIGHT    4
    
   -#define L  (PLAYBACK_LEFT  | PLAYBACK_MONO)
   -#define C  (PLAYBACK_LEFT  | PLAYBACK_RIGHT | PLAYBACK_MONO)
   -#define R  (PLAYBACK_RIGHT | PLAYBACK_MONO)
   +#define CH_L  (PLAYBACK_LEFT  | PLAYBACK_MONO)
   +#define CH_C  (PLAYBACK_LEFT  | PLAYBACK_RIGHT | PLAYBACK_MONO)
   +#define CH_R  (PLAYBACK_RIGHT | PLAYBACK_MONO)
    
    static int8 channel_position[7][6] =
    {
       { 0 },
   -   { C },
   -   { L, R },
   -   { L, C, R },
   -   { L, R, L, R },
   -   { L, C, R, L, R },
   -   { L, C, R, L, R, C },
   +   { CH_C },
   +   { CH_L, CH_R },
   +   { CH_L, CH_C, CH_R },
   +   { CH_L, CH_R, CH_L, CH_R },
   +   { CH_L, CH_C, CH_R, CH_L, CH_R },
   +   { CH_L, CH_C, CH_R, CH_L, CH_R, CH_C },
    };
    
    

У версии 0.83.7 и выше надо отключать динамический эмулятор процессора параметром --disable-dynamic-core.

    wget https://github.com/joncampbell123/dosbox-x/archive/dosbox-x-v0.83.7.tar.gz
    tar xf dosbox-x-v0.83.7.tar.gz
    cd dosbox-x-dosbox-x-v0.83.7
    patch -p1 < ../vorbis.patch # Это патч, про который говорилось выше
    ./autogen.sh
    ./configure --prefix=/usr --enable-d3d9 --enable-d3d-shaders --enable-sdl --enable-sdl2 --disable-dynamic-core
    make -j16
    make install

DirectX Shader Compiler

Компилятор шейдеров, считается лучшим.

Сборка:

    git clone --recursive https://github.com/microsoft/DirectXShaderCompiler.git

переключение на версию от 22 апреля 2023

    cd DirectXShaderCompiler && git checkout 918673ef5bde6f380aecc378b517def61758f4a1
    cd DirectXShaderCompiler && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DSPIRV_WERROR=OFF -C ../cmake/caches/PredefinedParams.cmake ..
    make -j8
    cp /usr/bin/llvm-as bin && cp /usr/bin/llvm-dis bin

Для OSL в случае llvm-13

    cp /usr/lib/llvm-13/bin/llvm-as bin && cp /usr/lib/llvm-13/bin/llvm-dis bin

Для OSL в случае llvm-9

    cp /usr/lib/llvm-9/bin/llvm-as bin && cp /usr/lib/llvm-9/bin/llvm-dis bin
    make install

Ryzom

Многопользовательская онлайн-игра(MMO) в стиле фэнтези, создателем которой является французская компания Nevrax. В 2007 году была признана одной из лучших MMORPG, но так и не приобрела широкую популярность.

Сборка:

    git clone --recursive https://github.com/ryzom/ryzomcore.git
    cd ryzomcore && git checkout main/atys-live
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DFINAL_VERSION=OFF ..
    make -j8
    

Snes9x

Эмулятор игровой консоли Super Nintendo(SNES).

Сборка:

    git clone --recursive https://github.com/snes9xgit/snes9x.git
    cd snes9x/gtk
    meson build --prefix=/usr --buildtype=release --strip
    cd build
    ninja -j8
    

Установка:

    ninja install

Ссылку можно будет найти в главном Меню -> Игры.

Xpad Linux

Драйвер геймпада от консолей Xbox/Xbox 360/Xbox 360 Wireless/Xbox One.

Сборка:

    git clone https://github.com/paroj/xpad.git
    cd xpad
    make -j8

Установка:

    cp xpad.ko /lib/modules/5.4.0-3.15-e8c-nn/kernel/drivers/input/

"5.4.0-3.15-e8c-nn" - заменить на вашу версию ядра и процессора.

dxvk-native

@Ugeen4 сообщает, что dxvk-native (форк без winelib) собирается на e2k meson+ninja как минимум в конфигурации "только dx9" (см. meson_options.txt в корне).

Godot

Как скомпилировать
Godot 3.5.3 собирается без изменений в коде, если отключить модули: pcre2_with_jit, denoise, lightmapper_cpu, raycast, mbedtls.

В sljit'е (pcre2_with_jit) неподдерживаемые ассемблерные вставки.
В embree (denoise, lightmapper_cpu, raycast) баг https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935064
В mbedtls тоже неподдерживаемый код (наименее проблемная часть; предположительно, с правками в коде этот модуль можно собрать).
Игры которые используют эти модули работать не будут. Предположительно, не будет поддержки сети и криптографии, не будет нормально работать 3D.
UPD: https://github.com/Mbed-TLS/mbedtls/pull/3574 makise-homura добавил в mbedtls поддержку E2K.

Имеет смысл пробовать собирать таким образом более новые версии 3.x (и более старые тоже). 3.1 проблемная, т.к. там в scons нет опции pcre2_with_jit и требуются правки в коде.

Исходники здесь: https://github.com/godotengine/godot/archive/refs/tags/3.5.3-stable.zip

Зависимости и общая инструкци по сборке Godot под Linux/BSD здесь: https://docs.godotengine.org/en/3.5/development/compiling/compiling_for_x11.html

Если scons падает с Python'овскими ошибками синтаксиса.
Предположительно — старая версия scons. Установите новую: https://scons.org/pages/download.html На удалённом сервере можно использовать stand alone версию (scons-local Package) и сделать на неё алиас (в файле .bash_profile или .bashrc): alias scons='python3 /srv/home/user_name/scons/scons.py'

Опции scons при компиляции.

Для редактора:

    scons -j8 platform=x11 target=release_debug bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=yes optimize=none CCFLAGS="-O3 -pthread"

Для export template:

    scons -j8 platform=x11 target=release bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=no optimize=none CCFLAGS="-O3 -pthread"

Для export template без 3D (для 2d игр; размер бинарника будет меньше на ~200 мб):

    scons -j8 platform=x11 target=release bits=64 builtin_pcre2_with_jit=no module_denoise_enabled=0 module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_mbedtls_enabled=no tools=no disable_3d=yes optimize=none CCFLAGS="-O3 -pthread"

Посмотреть все опции сборки:

    scons --help

-jN задаёт количество тредов при сборке. По умолчанию N == количество ядер CPU. На удалённой машине -jN желательно задать, (-j4 или -j8) чтобы не нагружать все ядра на сервере и не мешать другим пользователям.

Как запускать

Игра на Годо это ресурсы игры (скрипты, текстуры, звук и прочее) запакованные в .pck или .zip файл. Запустить игру можно бинарником движка, с редактором или без (с нужными игре модулями), при условии совместимости версий бинарника которым запускаем и версии редактора из которого экспортировали игру.

    godot_binary --main-pack путь_к_игре

Если в каталоге с бинарником лежит .pck файл с таким же именем, то при запуске бинарника он подхватывается автоматически.

Чтобы запустить игру на удалённом сервере через ssh, обычно нужно дополнительно указать движку --audio-driver Dummy
Иначе будет виснуть на этапе инициализации звука (если Alsa не настроена для работы через ssh).

Почему через ssh всё тормозит?
Это норма. Иксы через ssh медленно работают. На локальном Эльбрусе будет быстрее.

Как понять, что игра работает на Эльбрусе (при тестировании на удалённом сервере)?
Нужно её запустить и дождаться загрузки main scene, как минимум. Появление сплеш скрина ещё ничего не значит. Так же стоит проверить реакцию на Input (нажать/сделать что-то, на что игра должна отреагировать). Если main scene загрузилась и игра нормально реагирует на ввод пользователя (пусть и медленно), скорее всего, на Эльбрусе будет работать нормально.

Почему бинарник получился около гигабайта?
Для E2K большие бинарники это норма. Можно запускать много игр совместимых версий одним бинарником.

Экспорт игры для E2K

Как теперь экспортировать свою игру под E2K?
Как обычно: Проект -> Экспорт -> Выбираем предустановку (export template) Linux/X11, включаем 64 Bits, а теперь в разделе Custom Template -> Release выбираем наш бинарник для E2K и жмём Экспортировать проект. Это можно делать и на Эльбрусе, и на x86.
Export template — это собранный под нужную архитектуру и ОС бинарник, который просто копируется в каталог для экспорта с именем как у .pck файла, без разницы на какой архитектуре это происходит.

Ссылки