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

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(OGRE)
(OpenXRay (черновик!))
 
(не показано 12 промежуточных версий 2 участников)
Строка 242: Строка 242:
 
     git clone --recursive https://github.com/OpenMW/openmw.git
 
     git clone --recursive https://github.com/OpenMW/openmw.git
 
     cd openmw && mkdir build && cd build
 
     cd openmw && mkdir build && cd build
 +
'''Важно!!!''' - если библиотека [[How-to_compile_games_on_e2k#Bullet_Physics_SDK|Bullet Physics SDK]] собиралась без опции двойной точности (<code>-DUSE_DOUBLE_PRECISION=ON</code>), то в игре она должна быть отключена (<code>-DBULLET_USE_DOUBLES=OFF</code>)
 
     cmake -DCMAKE_BUILD_TYPE=Release -DBULLET_USE_DOUBLES=OFF ..
 
     cmake -DCMAKE_BUILD_TYPE=Release -DBULLET_USE_DOUBLES=OFF ..
 
Можно собрать с доп.опциями создания документации и статической линковки всего в один исполняемый файл
 
Можно собрать с доп.опциями создания документации и статической линковки всего в один исполняемый файл
Строка 375: Строка 376:
  
 
- [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
Строка 600: Строка 604:
  
 
     make -j8
 
     make -j8
ВАЖНО: Процесс компиляции занимает свыше 1.5 часов!!!
+
'''ВАЖНО!!!''' - Процесс компиляции занимает свыше 1.5 часов!!!
 +
 
 +
Можно собирать быстрее, если использовать ninja вместо make:
 +
    cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DUSE_CRYPTOPP=OFF ..
 +
И далее сборка командой
 +
    ninja
 +
 
  
 
Создание .deb пакета
 
Создание .deb пакета
Строка 782: Строка 792:
 
     make -j8
 
     make -j8
  
==OpenXcom (черновик!)==
+
==OpenXcom==
 
Open-source clone of the original X-Com.
 
Open-source clone of the original X-Com.
  
Строка 790: Строка 800:
 
     git clone --recursive https://github.com/OpenXcom/OpenXcom.git
 
     git clone --recursive https://github.com/OpenXcom/OpenXcom.git
 
     cd OpenXcom && mkdir build && cd build
 
     cd OpenXcom && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release .. |& tee cmake_config.log
+
     cmake -DCMAKE_BUILD_TYPE=Release ..
 
     make -j8
 
     make -j8
  
Строка 796: Строка 806:
 
     make package
 
     make package
  
==OpenTTD (черновик!)==
+
==OpenTTD==
 
Is an open source simulation game based upon Transport Tycoon Deluxe.
 
Is an open source simulation game based upon Transport Tycoon Deluxe.
  
Строка 804: Строка 814:
 
     git clone --recursive https://github.com/OpenTTD/OpenTTD.git
 
     git clone --recursive https://github.com/OpenTTD/OpenTTD.git
 
     cd OpenTTD && mkdir build && cd build
 
     cd OpenTTD && mkdir build && cd build
     cmake -DCMAKE_BUILD_TYPE=Release .. |& tee cmake_config.log
+
     cmake -DCMAKE_BUILD_TYPE=Release ..
 +
    make -j8
 +
 
 +
==PCSX-Reloaded==
 +
Is a forked version of the dead PCSX emulator, with a nicer
 +
interface and several improvements to stability and functionality.
 +
 
 +
- [https://github.com/iCatButler/pcsxr 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
 
     make -j8
  

Текущая версия на 20:19, 11 мая 2021

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

    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.1 (29 Nov 2020) - 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1 (опционально)

    cd MangoHud && git checkout 079f67a7295a47eb2ca98a79f95ecf22dd17a5e1

выключаем 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.1 --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

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
    cd RBDOOM-3-BFG && mkdir build && cd build

OpenGL (без Intel Intrinsics):

    cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=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=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

SuperTuxKart[править]

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

- Сайт - GitHub

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

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

переключение на стабильную версию 1.2 (28 Aug 2020) - 6e17f2ed6bc5134e6d9070c3321ff245739aa23a (опционально)

    cd stk-code && git checkout 6e17f2ed6bc5134e6d9070c3321ff245739aa23a
    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

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
    cd bullet3 && mkdir build && cd build

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

    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..

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

    -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON
    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.4.3 (30 Oct 2018) - c5d3560def781abceb36a07080437a291170ada4 (опционально)

    cd unshield && git checkout c5d3560def781abceb36a07080437a291170ada4
    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

переключение на стабильную версию 1.12.11 (13 Feb 2021) - f9bf70d8e4b3c3d6e2cb6f9f2cacf98e8312d22c (опционально)

    cd ogre && git checkout f9bf70d8e4b3c3d6e2cb6f9f2cacf98e8312d22c
    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 (по умолчанию).

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 (MYGUI_RENDERSYSTEM=4) или OpenGL 3.x (MYGUI_RENDERSYSTEM=7)

    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 (по умолчанию).

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. Sphinx
    git clone --recursive https://github.com/OpenMW/openmw.git
    cd openmw && mkdir build && cd build

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

    cmake -DCMAKE_BUILD_TYPE=Release -DBULLET_USE_DOUBLES=OFF ..

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

    -DBUILD_DOCS=ON -DMYGUI_STATIC=ON -DBOOST_STATIC=ON -DSDL2_STATIC=ON -DOSG_STATIC=ON -DQT_STATIC=ON
    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=.

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-alpha15/premake-5.0.0-alpha15-src.zip
    unzip premake-5.0.0-alpha15-src.zip
    cd premake-5.0.0-alpha15/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.2 (20 Jan 2020) - 0a49ef0a00baa3ab520ddc452f0e3b1e099c5589 (опционально)

    cd glfw && git checkout 0a49ef0a00baa3ab520ddc452f0e3b1e099c5589
    cd glfw && mkdir build && cd build

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

    cmake -DCMAKE_BUILD_TYPE=Release -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.2 --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://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

OpenGothic[править]

Reimplementation of Gothic 2 Notr (Night of the raven)

- GitHub

    git clone --recursive https://github.com/Try/OpenGothic.git
    cd OpenGothic && mkdir build && cd build

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

    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

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

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

добавляем 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

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.4.zip
    unzip irrlicht-1.8.4.zip
    cd irrlicht-1.8.4/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
    cd minetest
    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.4.0-dev --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 minetest_irrlicht
    cd minetest_irrlicht
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=TRUE ..
    make -j8
    make install

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

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
    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

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 -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

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.18/cmake-3.18.6.tar.gz
    tar -xvf cmake-3.18.6.tar.gz
    cd ./cmake-3.18.6
    mcedit ./Source/cmMakefile.cxx

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

    ./bootstrap --verbose --parallel=8 --no-qt-gui --system-zstd --prefix=/usr
    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.

- GitHub

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

  1. GLEW, LockFile, OpenAL, ogg, vorbis, theora, SDL, lzo, jpeg, pcre
  2. FreeImage, FreeImagePlus
  3. CMake (не ниже версии 3.16)
    git clone --recursive https://github.com/OpenXRay/xray-16.git
    cd ./xray-16/Externals/LuaJIT
    git config user.name user
    git config user.email user@mail.com
    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 нужно заменить строку using intrusive_base::release; на

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

ВАЖНО!!! - Процесс компиляции занимает свыше 1.5 часов!!!

Можно собирать быстрее, если использовать 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 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

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

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

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
    make
    make install

miniupnpc[править]

UPnP IGD client lightweight library client

- Сайт

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

Для замены системной установленной библиотеки можно указать дополнительную опцию -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
    ./configure
    make -j8 && make check -j8
    sudo make install

libenet (ENet)[править]

Reliable UDP networking library

- Сайт - GitHub

    git clone --recursive https://github.com/lsalzman/enet.git
    cd enet
    autoreconf -vfi
    ./configure
    make -j8
    make install

fmt[править]

A modern formatting library

- Сайт - GitHub

    git clone --recursive https://github.com/fmtlib/fmt.git
    cd fmt && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release -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
  2. miniupnpc
  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

или

    ./update-workspaces.sh --without-nvtt --with-system-mozjs --disable-atlas --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 - Инструкция по сборке

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

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

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
    cd OpenTTD && mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j8

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

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

Ссылки[править]