How-to compile games on e2k: различия между версиями
(→libenet (ENet): + libenet 1.3.17) |
(→fmt: + fmt 8.0.1) |
||
Строка 753: | Строка 753: | ||
git clone --recursive https://github.com/fmtlib/fmt.git | git clone --recursive https://github.com/fmtlib/fmt.git | ||
переключение на стабильную версию 8.0.1 (03 Jul 2021) - d141cdbeb0fb422a3fb7173b285fd38e0d1772dc(опционально) | |||
cd fmt && git checkout d141cdbeb0fb422a3fb7173b285fd38e0d1772dc | |||
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 -DFMT_TEST=OFF -DBUILD_SHARED_LIBS=ON .. |
Версия от 22:57, 17 ноября 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 или 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.5 (Jul 8 2021) - e42002c57bd41235e14f155a45453223861e26d6 (опционально)
cd MangoHud && git checkout e42002c57bd41235e14f155a45453223861e26d6
выключаем 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.5 --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
переключение на стабильную версию 1.3.0 (Oct 30 2021) - b4e0366c2033adfa876b9355a740170fb69e81f1 (опционально)
cd RBDOOM-3-BFG && git checkout b4e0366c2033adfa876b9355a740170fb69e81f1
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
SuperTuxKart
SuperTuxKart is a 3D open-source arcade racer with a variety characters, tracks, and modes to play.
загружаем игровые данные (без них будет ошибка на этапе конфигурирования через 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.
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.
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.
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.
git clone --recursive https://github.com/OGRECave/ogre.git
переключение на стабильную версию 1.12.12 (21 Apr 2021) - be8c2a225ecae636c8e669a12129b603db6b0e3c (опционально)
cd ogre && git checkout be8c2a225ecae636c8e669a12129b603db6b0e3c
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.
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)
pip install -U sphinx
OpenMW
OpenMW is an open-source open-world RPG game engine that supports playing Morrowind
Требуемые библиотеки:
- Unshield
- OpenSceneGraph (не ниже версии 3.4)
- MyGUI (не ниже версии 3.2.2)
- Bullet Physics SDK (не ниже версии 2.86)
- 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.
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.
git clone --recursive https://github.com/glfw/glfw.git
переключение на стабильную версию 3.3.4 (8 Apr 2021) - 814b7929c5add4b0541ccad26fb81f28b71dc4d8 (опционально)
cd glfw && git checkout 814b7929c5add4b0541ccad26fb81f28b71dc4d8
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.4 --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
Требуемые библиотеки:
git clone --recursive https://github.com/GTAmodding/re3.git
или
git clone --recursive https://github.com/td512/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к)
Перед установкой 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.
Требуемые библиотеки:
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.
Загрузить пакет 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++
Требуемые библиотеки:
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.
Требуемые библиотеки:
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.
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.
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
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
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.
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
Требуемые библиотеки (заголовки) и инструменты:
- GLEW, LockFile, OpenAL, ogg, vorbis, theora, SDL, lzo, jpeg, pcre
- FreeImage, FreeImagePlus
- 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
На 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
Arx Libertatis
Cross-platform port of Arx Fatalis, a first-person role-playing game
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 - Инструкция по сборке
Требуемые библиотеки:
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.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 .. make -j8
Для замены системной установленной библиотеки можно указать дополнительную опцию -DCMAKE_INSTALL_PREFIX=/usr
при конфигурировании через CMake. Тогда установка произойдёт в папку /usr
, а не /usr/local
(по умолчанию).
libsodium
modern, portable, easy to use crypto library
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 make -j8 && make check -j8 make install
libenet (ENet)
Reliable UDP networking library
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 make -j8 make install
fmt
A modern formatting library
git clone --recursive https://github.com/fmtlib/fmt.git
переключение на стабильную версию 8.0.1 (03 Jul 2021) - d141cdbeb0fb422a3fb7173b285fd38e0d1772dc(опционально)
cd fmt && git checkout d141cdbeb0fb422a3fb7173b285fd38e0d1772dc
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.
Требуемые библиотеки:
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.
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 .. make -j8
можно использовать опцию -DENABLE_MONOLITHIC_INSTALL=ON
и указать префикс установки в одну конкретную папку
Urho3D
Cross-platform 2D and 3D game engine.
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.
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.
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
Ссылки
- Elbrus PC Test: youtube-канал в т.ч. со стримами игр на Эльбрусе (сборка, применение)
- игры в репозитории альта: многие из них вообще не требуют патчей для сборки, для других можно посмотреть как минимум spec-файлы на packages.altlinux.org