суббота, 17 января 2009 г.

Quake в Linux

Некоторое время меня интересовал вопрос запуска Quake 1 в Linux. Готовых пакетов для Debian или Ubuntu я не нашёл, а запускать Quake в Wine как-то глупо, потому что исходники Quake открыты и было сделано очень много портов и модификаций этой игры.

В частности есть Quake использующий библиотеку OpenGL (оригинальная игра для отрисовки изображения пользовалась ТОЛЬКО программными расчётами). Неоднократно слышал, что Quake портировали на Linux, на мобильные телефоны и т.п.

Наткнулся на один из таких неофициальных движков на сайте http://ezquake.sourceforge.net/. Это Quake работающий на платформах Linux, FreeBSD, MacOS X, Windows и для отрисовки изображения использующий OpenGL. По ссылкам на сайте можно скачать два варианта для Linux: для архитектуры x86 и x86_64. Первое соответствует принятому в Debian названию архитектуры i386, второе - amd64.

Поскольку я пользуюсь Lenny i386, то я скачал и распаковал первый Linux-архив:
$ wget http://downloads.sourceforge.net/ezquake/ezquake_linux-x86_1.9.2.tar.gz
$ tar xzvf ezquake_linux-x86_1.9.2.tar.gz
$ mv ezquake_linux-x86_1.9.2 ezquake
Теперь сделаем исполняемым файл ezquake-gl.gfx, чтобы впоследствии можно было запустить игру:
$ chmod +x ezquake/ezquake-gl.gfx
Теперь нужно добавить к движку игры игровые ресурсы. Их я взял с имеющегося у меня компакт-диска с игрой для Windows. Это файлы pak0.pak и pak1.pak, которые нужно скопировать в подкаталог ezquake/id1. Файлы ресурсов должны обязательно состоять только из строчных букв, иначе движок их не найдёт.

Далее, на сайте проекта ezquake в разделе downloads упоминаются три проекта, посвящённые более качественной перерисовке текстур и моделей из Quake.

Скачаем оба архива с перерисованными текстурами: http://qrp.quakeonline.net/qrp-maptextures-2007-10-06r2-7files.zip и http://facelift.quakedev.com/download/SKINSbmodels-48files-4-23-05.zip и распакуем их туда, где они должны лежать в соответствии с информацией из readme-файлов в архивах.
$ wget http://qrp.quakeonline.net/qrp-maptextures-2007-10-06r2-7files.zip
$ unzip qrp-maptextures-2007-10-06r2-7files.zip -d ezquake/id1/
$ wget http://facelift.quakedev.com/download/SKINSbmodels-48files-4-23-05.zip
$ mkdir ezquake/id1/textures
$ unzip SKINSbmodels-48files-4-23-05.zip -d ezquake/id1/trextures
В принципе игра готова к запуску, однако я обнаружил одну небольшую проблему - отсутствие звука. Я пробовал менять настройки звука в игре. Не смотря на то, что в движке заявлена поддержка звуковой подсистемы ALSA, игра не воспроизводила звук. Я попробовал поставить пакет-переходник alsa-oss, эмулирующий интерфейс OSS для тех программ, которые не умеют пользоваться интерфейсом ALSA и запустить игру с указанием переключиться на интерфейс OSS, но ничего не помогало. Звука либо не было вообще, либо звук был прерывисто-заикающийся через очень короткие интервалы времени (менее секунды).

Я решил поискать решение этой проблемы в интернете. Я нашёл тему на одном из форумов: http://www.quakeworld.nu/forum/viewtopic.php?id=1956, где посоветовали указать принудительное использование подсистемы OSS и частоты дискретизации звука в 48 килогерц. Я попробовал и мне помогло!

Правильно игру нужно запускать так:
$ ezquake/ezquake-gl.glx +set s_noalsa 1 +set s_device /dev/dsp +set s_khz 48 +set s_bits 16
Можно сделать специальный скрипт, в котором указать команду запуска ezquake со всеми нужными параметрами.

6 комментариев:

Анонимный комментирует...

Quake в Linux
http://frit.su/index.php/Quake_III

morbo комментирует...

Quake 3 можно поставить проще:
1. ставим OpenArena из репозитория,
2. переходим в домашний каталог (cd ~),
3. создаём каталог .openarena, если его ещё нет (mkdir .openarena),
4. переходим в него (cd .openarena),
5. копируем туда каталог baseq3 с оригинального диска с игрой (cp -R /cdrom/baseq3 ~/.openarena/)
6. ...
7. профит!

А всякое непотребье в виде инсталляторов я предпочитаю не ставить.

Кстати, кто бы подсказал простой способ поиграть в Quake 2 в Linux?

Tesla комментирует...

Еще есть дарк плейсис

http://quakegate.ru/help/linux-quake-howto.html

Работает на отличненько. убунту 9.04

morbo комментирует...

Я об этом знаю. Тот же Nexuiz использует движок Darkplaces, поэтому я и написал следующую заметку - http://vladimir-stupin.blogspot.com/2009/01/quake-nexuiz.html

Анонимный комментирует...

А ещё можно воспользоваться darkplaces (и его графическими "плюшками")

morbo комментирует...

>А ещё можно воспользоваться darkplaces (и его графическими "плюшками")

А ещё можно прочитать комментарии выше и узнать, что
1. Все плюшки Darkplaces есть в Nexuiz.
2. Запуск Quake 1 на движке Nexuiz описывается в моей следующей заметке http://vladimir-stupin.blogspot.com/2009/01/quake-nexuiz.html