В предпраздничный сокращённый день с коллегами решили, а чего бы нам немного не погонять в Quake III Arena. Игруха кроссплатформенная, легко устанавливается и можно прекрасно помеситься.
После такого замеса нам захотелось по вечерам дома, дабы после работы не задерживаться. Поэтому было принято соломоново решение сделать свой сервант для игр и сваять инструкцию для установки Quake III на все используемые домашние системы. Таким образом, и родилась эта статья.
В конце будет милое видео с котиком :)
❯ План работ
Для того чтобы создать свой сервер опишу план предстоящих работ. 1. Найти где создать сервер на Ubuntu 20.04. 2. Включить firewall UFW, предварительно добавив в него исключения для порта 22 (ssh) и 27960 (quake 3 arena). Если вы планируете несколько серверов, то надо добавить исключения и для этих портов (27961, 27962...) 3. Создать двух пользователей: quake с ограниченными правами, для сервера и q3srv с правами sudo для настройки. 4. Настроить ssh: Отключить возможность подключения по ssh от пользователя root. В идеале отключить логин по паролю, оставить только по ключам. Но сие не всегда удобно, поэтому опущу этот момент. 5. Установить ioquake3-server. 6. Скопировать оригинальные ресурсы *.pk3 с компакт-диска или скачать их с интернета 7. Настроить игровой сервер. 8. … 9. Наслаждаться игрой.
❯ Выбор сервера
Выбор, где размещать свой сервер не стоит, конечно же, у timeweb :). Тем более что для нашей древней игрушки подойдёт самый бюджетный сервер. Сервант сто́ит выбирать там, где будет больше всего игроков, иначе будет очень большой пинг. Если игроки в Москве, то сто́ит взять его в Москве.
Если отключить бекапы (они в нашем случае не нужны, сервак можно легко и просто развернуть заново), то, выходит, всего 300 рублей в месяц. После непродолжительного создания самого виртуального сервера у нас будет IP и пароль. После чего можем начать конфигурировать его по ssh.
❯ Конфигурирование игрового сервера
Подключаемся по ssh, благо это можно сделать даже в современном Windows через cmd. Инструкция по настройке очень краткая, в конце статьи я дам ссылки с пояснениями. В принципе это всё можно просто скопировать в bash-скрипт и исполнить на сервере под root.
# настройка firewall # Добавляем правила для SSH (порт 22) и Quake 3 Arena (порт 27960) ufw allow ssh ufw allow 27960
# Включаем firewall UFW ufw enable
# Проверяем статус firewall ufw status
# Создаём пользователя quake с ограниченными правами adduser quake
# Создаём пользователя q3srv adduser q3srv
# Добавляем пользователя q3srv в группу sudo для получения прав администратора usermod -aG sudo q3srv
# Проверяем, что пользователи созданы корректно id quake id q3srv
# Отключаем возможность входа root через SSH sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# Проверяем, что изменение применилось grep "PermitRootLogin" /etc/ssh/sshd_config
# Перезапускаем службу SSH для применения изменений systemctl restart ssh
# Проверяем статус службы SSH systemctl status ssh
apt update && apt install mc tmux ioquake3-server
Сервер настроен, осталось запустить и настроить игровой сервант.
❯ Базовая настройка Quake III сервера
Установить из репозиториев ioquake3-server недостаточно, нужно ещё ему подкинуть ресурсы игры. А именно папку baseq3 с вашего диска, которая содержит файлы pak*.pk3. Ресурсы можно легко найти в интернете, но поскольку это всё же коммерческая часть, я не буду рассказывать, откуда их брать. Будем считать, что у вас есть лицензионный диск (есть же, да? :) ), откуда вы всё перепишете. В общем, содержимое папки baseq3 оригинального quake надо переписать на сервер:
Всё, уже на этом этапе можно запустить сервер и чуток погонять, удобно сервер делать в tmux чтобы консольный процесс оставался доступен и после завершения сессии ssh:
tmux
Дальше просто запускается:
/usr/lib/ioquake3/ioq3ded
И в выпадающей консоли игры уже написать имя карты на которой хочется играть:
map q3dm1
Вот с этого момента уже можно гонять с друзьями, просто подключаясь по ssh и меняя карты. Для того чтобы подключиться к серверу, нужно в консоли клиента написать:
/connect ipsrv:27960
Всё, рассылаете своим друзьям эту команду и можно бежать играть. Сервер легко администрируется через ssh. Команды управления сервером можно легко найти в интернете. Но в какой-то момент хочется сделать у сервера имя, некоторую ротацию карт, добавить возможность добавления/удаления ботов и, главное — дать людям удалённое управление именно игровым сервером. Это всё уже более углублённые настройки, которые тоже легко реализуются.
❯ Продвинутая настройка Quake III сервера
В принципе можно все эти настройки сделать вручную в консоли сервера, но все они потеряются при следующем перезапуске, поэтому лучше всего создать конфиг-файл с именем server.cfg в папке home/quake/.q3a/baseq3, следующего содержания:
set d1 "map q3dm1 ; set nextmap vstr d2" set d2 "map q3dm17 ; set nextmap vstr d3" set d3 "map q3tourney4 ; set nextmap vstr d4" set d4 "map q3tourney5 ; set nextmap vstr d1" vstr d1
rconPassword rconpasswd
Краткое пояснение:
sv_hostname — это имя сервера, которое будет отображаться на публичных серверах quake.
sv_dedicated 1 — выделенный личный сервер, который не регистрируется наверху, если хотите других игроков, то ставьте ноль. Раньше сразу приходило куча народу, сейчас тишина.
g_gametype 0 — тип игры free for all. Цифры задают тип игры, это самый простой и популярный.
fraglimit и timelimit — соответственно, лимит фрагов и времени в минутах.
Большая сложная конструкция — это скрипт ротации карт, логика его работы понятна и так. Если нужно больше карт, просто увеличивается метки d* и прописываете дальше, какая карта должна быть, и в конце надо вернуться на метку d1.
rconPassword — это задание пароля rcon для управления сервером из консоли игры. Более подробно можно на русском почитать тут .
Далее наше сервер запускаем следующей командой:
/usr/lib/ioquake3/ioq3ded +exec server.cfg
В целом там много чего можно накрутить, но не буду переусложнять статью, для базово поиграть вечером этого хватит с лихвой. Для того, чтобы начать управление сервером, после подключения на клиенте надо ввести:
\rconPassword rconpasswd
И потом:
\rcon map q3dm17 // например, для смены карты
Таким образом, игрой может управлять любой, у кого есть rcon-пароль. Напомню, что в quake есть автодополнение по tab.
Quake III отличная игра, которая работает просто на всех платформах. Можно даже на Android или iPhone телефоне, подключив клавиатуру и мышку, сыграть на этом сервере. Но я всё же расскажу, как установить на обычные ПК эту крутую игрушку.
❯ Установка клиентской игры
Так уж получилось, что у всех разные системы, на которых мы собираемся играть. У меня Linux, у кого-то Windows, у кого-то MacOS. И везде оказались свои тонкости и приколы по установке. Поэтому специально подготовил готовую инструкцию для каждого случая. В принципе, забегая вперёд, достаточно будет подготовить единую сборку, которую можно всем рассылать, и она будет вполне корректно везде работать (кроме MacOS). Но, всё же расскажу классический способ установки.
Linux (Ubuntu, Mint)
На мой взгляд, самый простой способ установки, это скачать сборку ioquake прямо с сайта https://ioquake3.org/ . Распаковать её, и закинуть в папку baseq3 файлы pak0.pk3-pak8.pk3.
Можно по аналогии, как выше я рассказывал об установке сервера, установить клиента. В любом случае все конфиги ваши будут храниться в ~/.q3a/. Достаточно запустить игру командой:
./ioquake3.x86_64
И наслаждаться ей. Но, внезапно столкнулся с особенностями ввода мыши в Linux. В нормальном таком замесе, при резком повороте мышь оказывалась где угодно, но совсем не там куда ты её направил. Для этого нужно настроить raw input. Всё проделывал в Linux Mint:
# Отключаем эмуляцию средней кнопки мыши Option "Emulate3Buttons" "false"
EndSection
Последний момент важный. У меня стоит прыжок на правую кнопку мыши, а стрелять на левую. Поэтому если хочется сделать rocket jump, то получается эмуляция третьей кнопки мыши и получается просто zoom.
Всё, у нас теперь чистый ввод, и можно устраивать честный замес, без всяких прослоек, которые ведут курсор в неизвестном направлении.
Windows
C Windows установка самая простая. Также скачиваем с https://ioquake3.org/ сборку для винды, распаковываем её в удобное место и закидываем в папку baseq3 файлы pak0.pk3-pak8.pk3. Всё можно играть. Единственное, что на одной системе столкнулся с тем игра отказывалась запускаться, так как ресурсы лежать не по тому пути. Пришлось папку baseq3 со всеми паками переписать по пути:
C:\Users\%USERNAME%\AppData\Roaming\Quake3\baseq3
Не факт, что у вас такое встретиться. Но если что, вот рецепт.
MacOS
С этой системой пришлось повозиться, как-то дружба с маком у меня не задалась. Но тем не менее смог победить и это. Всё, что описывается ниже, проверялось на Macbooc Air M1. Сначала я пытался также скачать с официального сайта, но так и не смог победить эту надпись:
Поэтому решил применить *nix way на Маке, и он сработал.
Устанавливаем ioquake3 с помощью brew:
brew install ioquake3
После этого, оригинальные паки (всю ту же злополучную папку baseq3 с файлами pak0.pk3-pak8.pk3) нужно переписать в
Долго искал, в какую точно папку это разместить (по инструкции на сайте папка указана другая), с этой всё запускается. И всё работает! Полный экран я так и не понял, как сделать (через настройки игры не выходит), но всё работает и можно играть!
❯ Выводы
Не зря сделал эти все инструкции для друзей, в действительности теперь каждый вечер идёт весёлый замес и можно как раньше отвести душу, постепенно повышая скилы. Иногда смотришь, а товарищ что-то фигово играет, а, оказывается, ему котёнок помогает играть (это реально присланное видео):
Конечно после игры с друзьями захочется накидать уже других модов, таких как cpma или defrag для олдфажников, но всё это делается уже по аналогии и достаточно просто. Самое приятное, что моды можно поставить только на сервант, а клиент уже сам подхватит. Короче говоря, есть почва, где поразвлекаться и вспомнить молодость.
Легендарный арена-шутер Quake III: Arena возвращается. Культовая игра во многом определившая развитие жанра сетевых соревновательных баталий теперь доступна практически на любом устройстве в браузере. Команда DosZone Team со всей любовью и радостью представляет мультиплеерный web-порт игры, который порадует как фанатов классической игры, так и новых пользователей, объединяя тысячи людей по всему миру.
Увидел ответ про Dangerous Dave. Включил летсплей, ностальгия. И оказывается, это сделали в 1991 году всё те Джон Кармак и Джон Ромеро, которые потом сотворили Wolfenstein, богоподобный Quake (3й монументальный), и Doom.
Привет, мои любители видео игр! Сегодня за чашкой насыщенного чая и чего нить вкусненького (жареной картошечки с котлеткой, соленым огурчиком) мы проведем несколько минут ностальгии. А именно вспомним отличный шутер от первого лица - Quake III Arena! Впервые игра вышла на ПК в далеком 1999 году! Ребята, 26 лет назад!!! Но и по сей день игра актуальна. Да, многие скажут: "Старье, графика вообще отстой. Да и сейчас много онлайн игр, тапи варфейс". Отчасти я соглашусь с данным мнением. Но это пост скорее для олдов, которые выросли на этой игре. Часами сидели на пеньках 3 и на минималках или средних настройках запускали Quake 3. Кстати о графике в игре... На момент 1999-го года графика в этой игре была на высоте. А гейм плей - просто улет. Возможность играть по сети (локальной)! Все ребята, хватит слов. Предлагаю насладиться просмотром видео. Заваривайте чай и доставайте что нить сладкого. Приятного просмотра. PS. Quake 3 в последующие годы выходила в нескольких вариантах. Пишите в комментариях какие были версии этой игры и в чем их особенности.
✔️Погнали сегодня 🔥Quake 3, мод CPMA. Игра выбиралась тайным голосованием, в котором даже я не учувствовал 😂. К следующей неделе Zhigadriga обещает полноценное голосование за ивент. Пока все будет в рамках телеги и дискорда.
🟢Кто хочет, заходите через IP: 80.90.188.39:27962 Ссылка на клиент ниже, качаем и в папке Pikabu есть два батника, нам нужен CPMA PikORI.bat, запускаете и сразу попадаете на сервак. Советую выйти в настройки и сделать все, как вам удобно.