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

Материал из ALT Linux Wiki
Строка 192: Строка 192:


     git clone --recursive https://github.com/MyGUI/mygui.git
     git clone --recursive https://github.com/MyGUI/mygui.git
переключение на стабильную версию 3.4.0 (11 Feb Sep 2020) - 42594b05f87f9cfa6ade9fe4c296ec49b2c9982e (опционально)
    cd mygui && git checkout 42594b05f87f9cfa6ade9fe4c296ec49b2c9982e
     cd mygui && mkdir build && cd build
     cd mygui && mkdir build && cd build



Версия от 20:38, 7 декабря 2020

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

или

    /neo/cmake-linux-release-nosimd.sh

OpenGL (с Intel Intrinsics):

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

или

    /neo/cmake-linux-release.sh


Vulkan (без Intel Intrinsics):

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

или

    /neo/cmake-linux-nvidia-jetson-vulkan-release.sh

Vulkan (с Intel Intrinsics):

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

или

    /neo/cmake-linux-vulkan-release.sh

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

    make -j8

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

или

    /neo/cmake-linux-release-nosimd.sh

с Intel Intrinsics

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

или

    /neo/cmake-linux-release.sh

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

    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_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED=ON ..
    make -j8

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

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

    cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON ..


если не установлена библиотека OpenVR SDK, то нужно дополнительно указать опции, которые выключат некоторые зависимые от неё компоненты

    -DBUILD_BULLET2_DEMOS=OFF -DBUILD_UNIT_TESTS=OFF
    make -j8

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_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
    make -j8

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_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
    make -j8

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.9 (20 Sep 2020) - 7d0c8181ac43ad20bdba326abbd3deeddf310f0b (опционально)

    cd ogre && git checkout 7d0c8181ac43ad20bdba326abbd3deeddf310f0b
    cd ogre && mkdir build && cd build

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

    cmake -DCMAKE_INSTALL_PREFIX=/usr -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

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.0 (11 Feb Sep 2020) - 42594b05f87f9cfa6ade9fe4c296ec49b2c9982e (опционально)

    cd mygui && git checkout 42594b05f87f9cfa6ade9fe4c296ec49b2c9982e
    cd mygui && mkdir build && cd build

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

    cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 ..

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

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

Sphinx

is a tool that makes it easy to create documentation for Python projects (or other documents consisting of multiple reStructuredText sources) нужна для OpenMW с доп.опцией -BUILD_DOCS=ON

- https://github.com/sphinx-doc/sphinx

1) pip install -U sphinx

OpenMW

открытая реализация игры TES 3 Morrowind (Tribunal и Bloodmoon)

- https://github.com/OpenMW/openmw

требуемые библиотеки (нужно предварительно собрать по инструкции выше): - Unshield - OpenSceneGraph 3.4 - OpenGL rendering toolkit - MyGUI 3.2.2 - GUI toolkit - Bullet 2.86 - the physics engine

1) git clone --recursive https://github.com/OpenMW/openmw.git 2) cd openmw && mkdir build && cd build 3) cmake -DCMAKE_BUILD_TYPE=Release .. или -DBUILD_DOCS=ON -DMYGUI_STATIC=ON -DBOOST_STATIC=ON -DSDL2_STATIC=ON -DOSG_STATIC=ON -DQT_STATIC=ON можно собрать с доп.опциями создания документации и статической линковки всего в один бинарник 4) make -j8

Xash3D FWGS Engine

fork Xash3D Engine, открытая реализация движка игры Half-Life 1

- https://github.com/FWGS/xash3d-fwgs

1) git clone --recursive https://github.com/FWGS/xash3d-fwgs.git 1) cd xash3d-fwgs && ./waf configure -T release автоматически определяет, что на е2к нужно собирать 64 битную версию движка, но можно указать вручную через -8/--64bits (опци нужна только для x86) на е2к автоматически соберёт с OpenGL 1.1 (максимальный реализованный в самом движке) 2) ./waf build автоматически определяет количество ядер для компиляции, но можно указать вручную через -j/--jobs 3) ./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

- https://github.com/FWGS/hlsdk-xash3d

1) git clone --recursive https://github.com/FWGS/hlsdk-xash3d.git 2) cd hlsdk-xash3d && ./waf configure -T release 3) ./waf build 4) ./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=.


Благодарность за текст Рамилю Саттарову =)

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.

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

    git clone https://github.com/coelckers/gzdoom
    cd gzdoom
    sed -i 's/goto \*ops/goto *(void*)ops/' src/common/scripting/vm/vmexec.cpp
    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