Сборка Quake 2 XP в Linux
Подготовка к сборке
Для сборки Quake 2 XP под Linux кроме самих исходниковпотребуются следующие библиотеки:
- OpenGL
- SDL
- OpenAL
- DevIL
- Vorbis
В Ubuntu (и её производныз) для установки вышеперечисленных либ в эуляторе терминала наберите следуюущее:
sudo apt-get install build-essential libvorbis-dev libdevil-dev libsdl1.2-dev libopenal-dev subversion
Сборка
Будут установлены необходимые библиотеки, а также компилятор GCC и сопутствующие утилиты, при помощи которых и будет происходить сборка.
Кроме этого потребуется интерпретатор Python для системы сборки waf, но в 99% десктопных Linux-дистрибутивов питонуже в наличии "из коробки".
Получамем исходники из SVN:
svn co https://quake2xp.svn.sourceforge.net/svnroot/quake2xp quake2xp
В каталоге quake2xp три директории:
- glsl - шейдеры
- tools - утилиты для компиляции карт
- trunk - собственно сам исходный код , именно в этот каталог и переходим для процесса сборки.
Сборка состоит из трех этапов - конфигурирование, собственно процесс компиляции бинарников и (опционально) установки.
python waf configure
python waf
sudo python waf install
Последний этап выполняется при помощи sudo, только втом случаее, если установка происходит не в домашнюю директорию пользователя (например /home/username/q2xp). по умолчанию именно так и происходит - путь установки "/usr/local". Его можно изменить, указав явно на этапе конфигурации сборки.
python waf configure --prefix=$HOME/q2xp
python waf
python install
Это выполнит сборку и установку в директорию q2xp в домашнем каталоге текущего пользователя.
Если надо деинсталлировать Quake 2 XP, то в каталоге с исходными текстами выполнить в эмуляторе терминала команду:
python waf uninstall
Копирование файлов с игровым контентом
Перед запуском необходимо скопировать pak-файлы с текстурыами, моделями, картами и прочим игровым контентом.
- baseq2/pak0.pak файл с оригинального CD Quake II.
- каталог baseq2 из последнего официального патча q2-3.20-x86-full.exe (*.dll файлы копировать не нужно)
- каталог baseq2 со всем содержимым(кроме *.dll) из официального установщика Quake 2 XP, который можно распаковать при помози архиватора 7zip.
- из каталога с шейдерами, полученного из SVN перед сборкой, копируем все файлы в каталог baseq2/glsl (создав последний, если он отсутствует).
(необязательно) Оригинальный саундтрек Quake 2 в формате ogg можно взять здесь. Треки надо скопировать в каталог baseq2/music, имена файлов должны быть вида trackNN.ogg, где NN - 02, 03, etc.
Официальные адд-оны
Установка официальных аддонов ("xatrix" и "rogue") заключается в копировании соответствующих каталогов в основной каталог Q2XP - "$PREFIX/share/quake2xp" (если Quake 2 XP был установлен в /usr/local, то каталоги "xatrix" и "rogue" будут лежать в "/usr/local/share/quake2xp").
Запуск аддонов осуществляется просто quake2xp + set game
Саундтрек аддонов можно найти по ссылке выше, вместе с треками оригинального Quake 2. Копировать необходимо в "music" директории адд-она. Правила именования треков аналогичны оригиналу.
И прочие моды
Процесс установки других модов практически идентичен оному для официальных мишн-паков. В основномм каталоге с данными quake2xp создаем директорию мода (на одном уровне с baseq2, xatrix, rogue) и складываем внеё необходимые ресурсы. За исключением gamex86.dll.
Если имеется клиентская библиотека мода, собранная под Linux (gamex86.so в общем случаее) просто переименовываем её в game.so и стартуем Q2XP с выбором каталога нужного мода. Но для архитектур x86 и x86_64 необходимы разные бинарники, так что если у вас game.so 32-битной версии, на 64-битной архитектуре ничего не запуститя.
В этом случаее только сборка game.so под нужную архитектуру из сиходников мода (если они конечно в наличии).
Примечания
Фреймрейт (количество кадров в секунду) по умолчанию не ограниченно. Но его можно принудительно ограничеить, при помози консольной переменной "cl_maxfps", выставв нужное значение (например "cl_maxfps 60").
В случае, если у вас возникли задержки звука, попробуйте выбрать "PulseAudio", а не
"ALSA" в качестве звукового устройства в меню настроек.
Воспроизведение музыки возможно в трех режимах (переключемых через меню или при помощи консольной переменной s_musicsrc, принимающей значения от 0 до 3.
- disabled (s_musicsrc 0) - без воспроизвения музыки.
- CD_ROM s_musicsrc 1) - воспроизводит трекси с CD-диска, находяшегося в CD-приводе.
- soundtrack files s_musicsrc 2) - воспроизводить OGG\WAV-файлы с именем "baseq2/music/trackXX.EXT" (где XX это 02, 03 и т.д.). Они будут использоваться в качестве оригинальных CD-треков (различных для каждого уровня).
- any files (s_musicsrc 3) - воспроизводит любые OGG\WAV-файлы, найденые в каталоге "baseq2/music".
Переключение треков осуществляется при помощи консольной команды "music".