✔️Друзья, сегодня Q3 в 20:30 МСК. Сервер немного другой, он так же переехал как и остальные сервера от Жиги. Играть будем в моде CPMA, ярлык в корне игры CPMA_launcher.bat
Было дело, играл в комп клубах, когда можно было получить в лицо если ты выйграл. А если проиграл то тоже могли дать потому что херово играл :) А еще если за бабки, там примерно одинаковая ситуация: выйграл - не отдадут, и заберут, проиграл - тоже не ничего хорошего. Но было ощущение, что ты смог кого то то обыграть:) Я к чему это.... Была у нас учительница, которой было 21 год!!!! по информатике. Ей никто не перечил, ее слушали, а знаете почему??? а я хз, у нее был прикол что после уроков, когда она писала журналы - она нам давала поиграть на компах. И был это квэйк. Зарубы были жестокие, дам мы чуть после школы еще дрались. Но Никто не позволял себе такое на ее уроке. Сдуреть сколько можно времени потратил, чтобы найти этот ролик в Ультра качестве. Тут ее просто дам как пример. Если кому надо - скину на почту.
Залетайте на традиционную пятничную мясорубку в наш DosZone Multiplayer Hub. Играем в браузерные мультиплеерные Half-Life: Deathmatch , Quake 3: Arena , Quake II и добавленный на этой неделе Doom! ИГРАЕМ В БРАУЗЕРЕ ЗДЕСЬ
Залетайте на традиционную пятничную мясорубку в браузерные Half-Life: Deathmatch и Quake 3: Arena в наш мультиплеерный хаб! Без реклам, смс, регистраций и в браузере!
В предпраздничный сокращённый день с коллегами решили, а чего бы нам немного не погонять в 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-порт игры, который порадует как фанатов классической игры, так и новых пользователей, объединяя тысячи людей по всему миру.