How-to compile games on e2k: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
==MangoHud== | |||
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. | |||
- https://github.com/flightlessmango/MangoHud/ | - https://github.com/flightlessmango/MangoHud/ | ||
Строка 16: | Строка 14: | ||
- MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load mangohud ./game_bin | - MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load mangohud ./game_bin | ||
==RBDOOM-3-BFG== | |||
fork оригинального DOOM-3-BFG | |||
RBDOOM-3-BFG | |||
- https://github.com/RobertBeckebans/RBDOOM-3-BFG | - https://github.com/RobertBeckebans/RBDOOM-3-BFG | ||
Строка 36: | Строка 32: | ||
4) make -j8 | 4) make -j8 | ||
==DOOM-BFA== | |||
независимый fork RBDOOM-3-BFG | |||
DOOM-BFA | |||
- https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG | - https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG | ||
Строка 49: | Строка 43: | ||
4) make -j8 | 4) make -j8 | ||
==SuperTuxKart== | |||
free kart racing game | |||
- https://github.com/supertuxkart/stk-code | - https://github.com/supertuxkart/stk-code | ||
Строка 66: | Строка 58: | ||
---------------------------------------------------------- | ---------------------------------------------------------- | ||
Serious Engine | ==Serious Engine== | ||
открытый код оригинальных игр Serious Sam TFE и TSE | |||
- https://github.com/ptitSeb/Serious-Engine | - https://github.com/ptitSeb/Serious-Engine | ||
Строка 83: | Строка 76: | ||
5) make -j8 | 5) make -j8 | ||
==OpenVR SDK== | |||
OpenVR is an API and runtime (нужна для Bullet Physics SDK) | |||
OpenVR SDK | |||
- https://github.com/ValveSoftware/openvr | - https://github.com/ValveSoftware/openvr | ||
Строка 95: | Строка 86: | ||
4) make -j8 | 4) make -j8 | ||
==Bullet Physics SDK== | |||
real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc (нужна для OpenMW) | |||
Bullet Physics SDK | |||
- https://github.com/bulletphysics/bullet3 | - https://github.com/bulletphysics/bullet3 | ||
Строка 115: | Строка 104: | ||
---------------------------------------------------------- | ---------------------------------------------------------- | ||
Unshield | ==Unshield== | ||
extract CAB files from an InstallShield installer archive (нужна для OpenMW) | |||
- https://github.com/twogood/unshield | - https://github.com/twogood/unshield | ||
Строка 124: | Строка 114: | ||
4) make -j8 | 4) make -j8 | ||
==OpenSceneGraph== | |||
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 (нужна для OpenMW) | |||
- https://github.com/openscenegraph/OpenSceneGraph | - https://github.com/openscenegraph/OpenSceneGraph | ||
Строка 136: | Строка 124: | ||
4) make -j8 | 4) make -j8 | ||
==OSG on steroids== | |||
OSG on steroids | OpenMW fork оригинального OpenSceneGraph | ||
разработчики OpenMW рекомендуют использовать их fork оригинального движка OpenSceneGraph, поскольку с их слов это даст 10-15% прибавку к производительности | разработчики OpenMW рекомендуют использовать их fork оригинального движка OpenSceneGraph, поскольку с их слов это даст 10-15% прибавку к производительности | ||
Строка 148: | Строка 136: | ||
4) make -j8 | 4) make -j8 | ||
==OGRE== | |||
a scene-oriented, flexible 3D engine (нужна для библиотеки MyGUI) | |||
- https://github.com/OGRECave/ogre | - https://github.com/OGRECave/ogre | ||
Строка 161: | Строка 147: | ||
4) make -j8 | 4) make -j8 | ||
==MyGUI== | |||
a cross-platform library for creating graphical user interfaces (GUIs) for games and 3D applications (нужна для OpenMW) | |||
- https://github.com/MyGUI/mygui | - https://github.com/MyGUI/mygui | ||
Строка 177: | Строка 161: | ||
4) make -j8 | 4) 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 | нужна для OpenMW с доп.опцией -BUILD_DOCS=ON | ||
Строка 187: | Строка 169: | ||
1) pip install -U sphinx | 1) pip install -U sphinx | ||
==OpenMW== | |||
открытая реализация игры TES 3 Morrowind (Tribunal и Bloodmoon) | |||
- https://github.com/OpenMW/openmw | - https://github.com/OpenMW/openmw | ||
Строка 208: | Строка 188: | ||
4) make -j8 | 4) make -j8 | ||
==Xash3D FWGS Engine== | |||
fork Xash3D Engine, открытая реализация движка игры Half-Life 1 | |||
Xash3D FWGS Engine | |||
- https://github.com/FWGS/xash3d-fwgs | - https://github.com/FWGS/xash3d-fwgs | ||
Строка 229: | Строка 207: | ||
- /usr/local/lib/xash3d/xash3d | - /usr/local/lib/xash3d/xash3d | ||
==Half-Life SDK for Xash3D== | |||
Half-Life SDK for Xash3D | |||
- https://github.com/FWGS/hlsdk-xash3d | - https://github.com/FWGS/hlsdk-xash3d | ||
Строка 247: | Строка 224: | ||
запускать с LD_LIBRARY_PATH=. | запускать с LD_LIBRARY_PATH=. | ||
Благодарность за текст Рамилю Саттарову =) | Благодарность за текст Рамилю Саттарову =) | ||
Версия от 05:08, 6 октября 2020
MangoHud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.
- https://github.com/flightlessmango/MangoHud/
- git clone --recursive https://github.com/flightlessmango/MangoHud.git
- cd MangoHud
- ./build.sh build -Dwith_xnvctrl=disabled -Dwith_nvml=disabled
- вылючаем NV-CONTROL X extension (libxnvctrl, контроль за параметрами драйвера NVIDIA X) и NVIDIA Management Library (NVML)
- ./build.sh install
- установка в ОС (опционально)
запуск OpenGL програм: - MANGOHUD_DLSYM=1 MANGOHUD_CONFIG=core_load mangohud ./game_bin
RBDOOM-3-BFG
fork оригинального DOOM-3-BFG
- https://github.com/RobertBeckebans/RBDOOM-3-BFG
1) git clone --recursive https://github.com/RobertBeckebans/RBDOOM-3-BFG.git 2) cd RBDOOM-3-BFG && mkdir build && cd build
OpenGL: 3) cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo или /neo/cmake-linux-release-nosimd.sh 4) make -j8
Vulkan: 3) 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 4) make -j8
DOOM-BFA
независимый fork RBDOOM-3-BFG
- https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG
1) git clone --recursive https://github.com/MadDeCoDeR/Classic-RBDOOM-3-BFG.git 2) cd Classic-RBDOOM-3-BFG && mkdir build && cd build 3) cmake -DCMAKE_BUILD_TYPE=Release -DSDL2=ON -DONATIVE=ON -DUSE_INTRINSICS=OFF ../neo или /neo/cmake-linux-release-nosimd.sh 4) make -j8
SuperTuxKart
free kart racing game
- https://github.com/supertuxkart/stk-code
1) svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets загружаем игровые данные от игры (без них будет ошибка на этапе CMake) 2) git clone --recursive https://github.com/supertuxkart/stk-code.git 3) cd stk-code && mkdir build && cd build 4) cmake -DCMAKE_BUILD_TYPE=Release .. 5) make -j8
Serious Engine
открытый код оригинальных игр Serious Sam TFE и TSE
- https://github.com/ptitSeb/Serious-Engine
1) git clone --recursive https://github.com/ptitSeb/Serious-Engine.git 2) cd Serious-Engine
Serious Sam The Second Encounter: 3) mkdir build_ssam && cd build_ssam 4) cmake -DCMAKE_BUILD_TYPE=Release ../Sources/ 5) make -j8
Serious Sam The First Encounter: 3) mkdir build_ssam-tfe && cd build_ssam-tfe 4) cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/ 5) make -j8
OpenVR SDK
OpenVR is an API and runtime (нужна для Bullet Physics SDK)
- https://github.com/ValveSoftware/openvr
1) git clone --recursive https://github.com/ValveSoftware/openvr.git 2) cd openvr && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. 4) make -j8
Bullet Physics SDK
real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc (нужна для OpenMW)
- https://github.com/bulletphysics/bullet3
1) git clone --recursive https://github.com/bulletphysics/bullet3.git 2) cd bullet3 && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_DOUBLE_PRECISION=ON -DBULLET2_MULTITHREADING=ON -DBULLET2_USE_OPEN_MP_MULTITHREADING=ON .. включаем двойную точность (по умолчанию идёт без неё) и многопоточность (по умолчанию она включается с использованием mutex ) с использованием OpenMP
если ранее не установить библиотеку OpenVR, то нужно дополнительно указать опции, которые выключат некоторые зависимые от неё компоненты -DBUILD_BULLET2_DEMOS=OFF -DBUILD_UNIT_TESTS=OFF
3) make -j8
Unshield
extract CAB files from an InstallShield installer archive (нужна для OpenMW)
- https://github.com/twogood/unshield
1) git clone --recursive https://github.com/twogood/unshield.git 2) cd unshield && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. 4) make -j8
OpenSceneGraph
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 (нужна для OpenMW)
- https://github.com/openscenegraph/OpenSceneGraph
1) git clone --recursive https://github.com/openscenegraph/OpenSceneGraph.git 2) cd OpenSceneGraph && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. 4) make -j8
OSG on steroids
OpenMW fork оригинального OpenSceneGraph разработчики OpenMW рекомендуют использовать их fork оригинального движка OpenSceneGraph, поскольку с их слов это даст 10-15% прибавку к производительности
- https://github.com/OpenMW/osg
1) git clone --recursive https://github.com/OpenMW/osg.git 2) cd osg && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -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 .. движок OSG по умолчанию собирает много плагинов, которые не нужны OpenMW, поэтому их можно отключить на этапе конфигурирования (доп.опции взяты из мануала разработчиков OpenMW по сборке) 4) make -j8
OGRE
a scene-oriented, flexible 3D engine (нужна для библиотеки MyGUI)
- https://github.com/OGRECave/ogre
1) git clone --recursive https://github.com/OGRECave/ogre.git 2) cd ogre && mkdir build && cd build 3) 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 .. пре-компилирование и плагин ASSIMP дают ошибку при компиляции, поэтому выключаем их пока не исправят (доп.компоненты тоже) 4) make -j8
MyGUI
a cross-platform library for creating graphical user interfaces (GUIs) for games and 3D applications (нужна для OpenMW)
- https://github.com/MyGUI/mygui
1) git clone --recursive https://github.com/MyGUI/mygui.git 2) cd mygui && mkdir build && cd build 3) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DMYGUI_RENDERSYSTEM=7 .. по умолчанию 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=1 -DMYGUI_BUILD_DEMOS=OFF -DMYGUI_BUILD_PLUGINS=OFF -DMYGUI_BUILD_TOOLS=OFF .. можно собрать без всего дополнительного (движок OGRE, демо, плагины и инструменты), доп.опции взяты из мануала разработчиков OpenMW по сборке OpenMW 4) 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=.
Благодарность за текст Рамилю Саттарову =)