воскресенье, 18 января 2009 г.

Запуск Quake на движке Nexuiz

Nexuiz - это игра распространяемая по лицензии GPL. Она основана на движке DarkPlaces, который в свою очередь был создан на основе движка Quake 1. Может показаться, что если игра основана на столь устаревшем движке, то и выглядит она не очень красиво. Но это не так!

Среди различных улучшений можно отметить: динамическое освещение, поддержка текстур с высоким разрешением, поддержка рельефного текстурирования, сжатие звуков ogg vorbis, карты в формате Quake 3, скелетную анимацию. Подробнее см. соответствующие статьи на Википедии DarkPlaces и Nexuiz.

При этом сама логика игры, как и прежде, реализуется программированием на языке QuakeC. Движок имеет встроенный интерпретатор байт-кода QuakeC, что позволяет создавать новые игры с новой игровой логикой не затрагивая код движка. Например, таким способом были сделаны первые игры типа CTF (Capture The Flag - захват флага) и игра с ботами. В Quake 2 разработчики по каким-то причинам отказались от реализации интерпретатора байт-кода, и выполнили реализацию игровой логики в виде загружаемой разделяемой библиотеки. Однако в Quake 3 разработчики вновь вернулись к прежнему подходу и реализовали интерпретатор байт-кода внутри игрового движка. C учётом того что в Quake 3 не было реализовано рельефное текстурирование и скелетная анимация, можно отметить, что движок Nexuiz по техническим характеристикам превосходит движок Quake 3.

Одним из следствий того, что движок Nexuiz содержит интерпретатор байт-кода Quake 1, является возможность запуска на этом движке игры Quake и любого мода Quake!

Для начала установим саму игру Nexuiz:
# aptitude install nexuiz
Теперь можете запустить игру и посмотреть на неё. По содержанию и графике игра показалась мне очень похожей на Unreal Tournament.

Для запуска Quake на движке nexuiz достаточно скопировать игровые ресурсы из оригинального Quake в каталог ~/.nexuiz/data/. Я скопировал туда файлы pak0.pak, pak1.pak, qrp-maptextures-2007-10-06r2.pk3 и каталог textures. Откуда взять эти файлы и каталоги - описано в моей предыдущей заметке Quake в Linux.

Вкратце: первые два файла берутся из каталога id1 с компакт-диска с оригинальной игрой Quake, третий берётся по ссылке http://qrp.quakeonline.net/qrp-maptextures-2007-10-06r2-7files.zip, а файлы в каталоге textures можно взять из архива по ссылке http://facelift.quakedev.com/download/SKINSbmodels-48files-4-23-05.zip. В принципе, для запуска игры вполне достаточно двух первых файлов взятых с компакт-диска. Два архива, ссылки на скачивание которых приведены выше, нужны лишь для улучшения качества картинки - они содержат более качественные текстуры, перерисованные энтузиастами.

Теперь можно запустить игру. К сожалению в Nexuiz не предусмотрено меню для запуска других игр, кроме как самого Nexuiz. Но любую игру можно запустить воспользовавшись консолью игры.

По умолчанию консоль открывается по одновременному нажатию клавиш Shift и Esc, а закрывается по нажатию клавиши Esc. После подключения игровых ресурсов от Quake консоль можно открыть простым нажатием на клавишу тильды - ~ (слева от клавиши 1 на основной клавиатуре).

Теперь запустим Quake. Для этого введём две команды:
deathmatch 0
map start
Первая команда отключает режим deathmatch и переключает игру в режим cooperative. Вторая команда грузит карту для выбора уровня сложности и эпизода игры. Всё, можно наслаждаться игрой.

Теперь, если захочется сохранить игру, можно ввести в консоли игры команду:
save game
game - это имя файла, в который будет сохранена текущая игра.

Загрузить сохранённую игру так же просто:
load game
Где game - имя файла, в котором была сохранена игра.

Не остановимся на этом и попробуем загрузить какой-нибудь мод. Например, я взял с компакт-диска pak-файл pak0.pak от мода rogue. Создадим каталог ~/.nexuiz/rogue и скопируем туда pak-файл. Внимание: важно чтобы имя файла состояло только из строчных букв!

Теперь запустим игру rogue из командной строки таким образом:
nexuiz -game rogue
Запустить новую игру, сохранять и загружать игры можно точно таким же образом, как было описано выше.

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

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

спасибо

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

а кто мешает сделать путь ~/.nexuiz/quake, сложить туда файлы quake, и запускать игру командой, аналогичной запуску Rogue?

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

Rogue - это так называемый add-on, а не самостоятельная игра. Он использует ресурсы оригинальной игры Quake, которые как раз и лежат в папке ~/.nexuiz/quake.

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

не могу никак понять почему каталог textures не тянется

скачал файл SKINSbmodels-48files-4-23-05.zip

залил всё содержимое в ~/.nexuiz/data/textures

ничего не поменялось

в readme который в архиве написано:

DarkPlaces: extract the files to quake\id1\textures\progs &&& you must rename the files to model.mdl_0.tga (so for example, armor_0.tga would need to be renamed to armor.mdl_0.tga ... the .mdl must be)


но как мне переименовать файлы типа +0_med25s_luma.tga ?

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

сделал проще: собрал без нехуиза чистый дарк плэйсез с текстурами и музыкой всё проще и меньше места