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
Запустить новую игру, сохранять и загружать игры можно точно таким же образом, как было описано выше.