Найти в Дзене
TechrooM

OpenSource движки популярных игр ч. 1 MOHAA и Quake 1

Относительно недавно свет увидела бета версия v 0.80.0 открытого движка на базе ioquake3 некогда нашумевшей Medal of Honor Allied Assault, добавив ресурсы игры к движку вы можете с легкостью тряхнуть стариной и попробовать на вкус MOHAA на Linux или на любой другой платформе где есть компилятор и необходимые библиотеки.
Ссылка на страницу проекта: https://github.com/openmoh/openmohaa
Со сборкой сложностей возникнуть не должно, все как обычно вытягиваем с github через git clone https://github.com/openmoh/openmohaa.git
Далее переходим в каталог с проектом и выполняем mkdir .cmake && cd .cmake конфигурируем проект командой cmake -G Ninja ../ далее запускаем ninja одноименной командой ninja и ожидаем завершение компиляции
Примечание:
На LinuxMint 20.04 столкнулся с ошибкой компиляции, проект не хотел линковаться, проблема решилась правкой CMakeLists.txt
Пример ошибки:
/usr/bin/ld: CMakeFiles/openmohaa.dir/code/client/libmumblelink.c.o: undefined reference to symbol 'shm_open@@GLIBC

Относительно недавно свет увидела бета версия v 0.80.0 открытого движка на базе ioquake3 некогда нашумевшей Medal of Honor Allied Assault, добавив ресурсы игры к движку вы можете с легкостью тряхнуть стариной и попробовать на вкус MOHAA на Linux или на любой другой платформе где есть компилятор и необходимые библиотеки.
Ссылка на страницу проекта:
https://github.com/openmoh/openmohaa

Со сборкой сложностей возникнуть не должно, все как обычно вытягиваем с github через

git clone https://github.com/openmoh/openmohaa.git

Далее переходим в каталог с проектом и выполняем

mkdir .cmake && cd .cmake

конфигурируем проект командой

cmake -G Ninja ../

далее запускаем ninja одноименной командой

ninja

и ожидаем завершение компиляции
Примечание:
На LinuxMint 20.04 столкнулся с ошибкой компиляции, проект не хотел линковаться, проблема решилась правкой CMakeLists.txt

Пример ошибки:
/usr/bin/ld: CMakeFiles/openmohaa.dir/code/client/libmumblelink.c.o: undefined reference to symbol 'shm_open@@GLIBC_2.2.5'

/usr/bin/ld: /lib/x86_64-linux-gnu/librt.so.1: ошибка добавления символов: DSO missing from command line

clang: error: linker command failed with exit code 1 (use -v to see invocation)

[4/5] Building CXX object code/Launcher/CMakeFiles/openmohaa_launcher_breakthrough.dir/launch_linux.cpp.o

ninja: build stopped: subcommand failed.

В CMakeLists.txt в корне проекта надо заменить строчку 196 с

target_link_libraries(openmohaa PRIVATE omohclient)

на

target_link_libraries(openmohaa PRIVATE omohclient -lrt)

После чего удалить папку CMakeFiles и файл CMakeCache.txt и повторить настройку и компиляцию проекта.

Размещаем бинарники (omohaaded.x86_64 и openmohaa.x86_64) в папке с ресурсами и погнали

Medal of Honar Allied Assault запущенная в LinuxMint 20.04
Medal of Honar Allied Assault запущенная в LinuxMint 20.04

Теперь перейдем к открытому движку Quake 1 здесь все действия в начале аналогичны, сначала вытягиваем исходный код через git

git clone https://github.com/xonotic/darkplaces

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

make sdl-release -j4

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

git checkout xonotic-v0.8.6

По завершению сборки в каталоге появятся исполняемый файл darkplaces-sdl, размещаем его в папке с ресурсами и погнали.
У игры есть ДЕЙСТВУЮЩИЙ поиск серверов, так что можно зарубиться онлайн.

-2

Ниже ссылки на готовые сборки с ресурсами, собраны на LinuxMint 20.04 под glibc 2.31-0ubuntu9.16 gcc 9.4.0 x86_64

Сборки представлены для ознакомительного запуска.
MOHAA

MOHAA-0.80.0-x86_64.tar.xz

Darkplaces

darkplace-0.8.6.tar.xz

Quake
987 интересуются