MadWars
БАЗА ЗНАНИЙ · Q3

ioquake3: полное руководство по клиенту и выделенному серверу

Официальные сборки, легальные игровые данные, пути cfg, OpenGL2, OpenAL, ioq3ded, HTTP-загрузки, OSP и безопасная миграция.

MadWars · 28.07.2026

Что такое ioquake3

ioquake3 — поддерживаемый GPLv2-движок на основе исходного кода Quake III Arena. Он исправляет ошибки и уязвимости, улучшает работу на современных ОС и служит основой для множества id Tech 3-проектов.

Это не бесплатная полная Quake III Arena. Движок не содержит коммерческие карты, модели и звуки.

Что скачать

Используйте только официальную страницу ioquake3 и репозиторий проекта.

Официальные сборки доступны для Windows, macOS и Linux. У проекта нет официального Android/iOS-клиента; store-порты сторонние и upstream их не поддерживает. GitHub Releases пуст: готовые ZIP распространяются через ioquake3.org, поэтому не придумывайте «последний номер версии» по стороннему архиву.

С августа 2025 года основной способ сборки — CMake; старый Makefile объявлен deprecated.

Легальные игровые данные

Для retail Q3A нужны:

1. законно полученный baseq3/pak0.pk3 из Steam, GOG или CD; 2. официальные patch data pak1.pk3pak8.pk3; 3. для Team Arena — купленный missionpack/pak0.pk3 и patch files missionpack.

Не скачивайте pak0.pk3 из случайных сборок и не размещайте его на публичном зеркале.

Установка

Windows:

1. распакуйте официальный ZIP; 2. положите pak0.pk3 и pak1pak8 в ioquake3/baseq3; 3. запускайте ioquake3.x86_64.exe; 4. пересоздайте старый shortcut, иначе он продолжит открывать quake3.exe.

macOS: держите приложение и каталоги baseq3/missionpack в /Applications/ioquake3/. Не кладите игровые данные внутрь .app или .dmg.

Linux: распакуйте сборку, добавьте assets в baseq3, запускайте ioquake3.x86_64.

Где лежат cfg и загруженные файлы

Current README:

  • Windows: %APPDATA%\Quake3;
  • macOS: ~/Library/Application Support/Quake3;
  • Linux current main: config ~/.config/Quake3, data ~/.local/share/Quake3, state ~/.local/state/Quake3.

Старые и некоторые packaged Linux-сборки используют ~/.q3a. Если этот каталог уже существует, движок может продолжить его использовать. Фактические basepath/homepath видны в стартовом console log.

Путь переопределяется startup-only параметром:


+set fs_homepath "/srv/ioquake3/home"

Не смешивайте install directory, пользовательский homepath и каталог мода.

Widescreen и renderer

Для desktop resolution:


seta r_mode "-2"

Для своего размера:


seta r_mode "-1"
seta r_customwidth "2560"
seta r_customheight "1440"
vid_restart

OpenGL2:


/cl_renderer opengl2
/vid_restart

Откат:


/cl_renderer opengl1
/vid_restart

OpenGL2 добавляет HDR, tone mapping, shadows, MSAA, texture upsampling и современные форматы материалов. Значение по умолчанию зависит от сборки: проверьте cl_renderer, не обещайте, что OpenGL2 включён везде.

Звук и OpenAL


/s_useOpenAL 1
/snd_restart

OpenAL улучшает многоканальный звук и требуется для встроенного VoIP. Если после переключения звук пропал, проверьте выбранное устройство и вернитесь к предыдущему backend.

Первый ioq3ded

Откройте/пробросьте UDP 27960:


ioq3ded.x86_64 +set dedicated 2 +set net_port 27960 +set fs_game baseq3 +exec server.cfg
  • dedicated 1 — LAN/direct IP;
  • dedicated 2 — публичный master listing;
  • разные инстансы используют 27960, 27961 и далее;
  • fs_game задавайте в командной строке.

OSP:


ioq3ded.x86_64 +set dedicated 2 +set net_port 27960 +set fs_game osp +exec team.cfg

ioquake3 официально гарантирует сетевую совместимость с финальным Q3 1.32c и говорит, что большинство модов 1.32c работает. Отдельной гарантии для каждой сборки OSP upstream не публикует. OSP обычно работает через QVM; не форсируйте vm_game 0 без нативной библиотеки нужной архитектуры.

Pure и загрузки

sv_pure 1 ограничивает клиент теми PK3, которые знает сервер.


set sv_allowDownload "1"
set sv_dlURL "https://downloads.example.org/q3"

Клиент формирует путь:


<sv_dlURL>/<fs_game>/<filename.pk3>

Проверяйте регистр имён, HTTP-права и точный каталог мода. sv_allowDownload в ioquake3 — bitmask: 4 выключает старую UDP-загрузку, 8 позволяет не разрывать соединение при redirect. Не переносите sv_dlURL в документацию vanilla q3ded.

IPv4 и IPv6

ioquake3 может слушать IPv4 и IPv6 одновременно:

  • net_ip6, net_port6;
  • net_enabled — bitmask: IPv4 1, IPv6 2, prefer IPv6 4, disable multicast 8.

Значения складываются. Не меняйте protocol cvar без причины: у движка есть hardened protocol и legacy-совместимость, но случайные номера ломают подключение.

RCON и несколько серверов


set rconPassword "LONG_RANDOM_SECRET"

Пароль должен быть длинным и уникальным. Запускайте каждый сервер с отдельным fs_homepath, портом и логами. Конфиги и игровые PK3 можно держать read-only, а запись разрешить только в home/log directory.

Миграция с q3ded

1. Сохраните baseq3, osp, server cfg, ротации, bans и log scripts. 2. Поставьте ioquake3 в новый каталог, не поверх старого сервера. 3. Добавьте легальный pak0 и pak1pak8. 4. Скопируйте каталог мода без переупаковки PK3. 5. Запустите тест на 27961 с dedicated 1. 6. Проверьте QVM, карты, pure, downloads, ready/votes и старые клиенты. 7. Только затем переключайте production 27960 и dedicated 2.

Старый каталог оставьте для rollback до проверки полного игрового цикла.

Безопасность и обновления

Upstream прямо предупреждает: старые неизменённые бинарники 2005 года удалённо уязвимы и не должны оставаться в открытом Интернете.

  • обновляйте engine отдельно от неизменных game assets;
  • запускайте отдельным непривилегированным пользователем;
  • не публикуйте cfg и логи;
  • ограничьте RCON firewall/VPN;
  • используйте актуальный directory server;
  • не рассчитывайте на PunkBuster: ioquake3 его не поддерживает.

Диагностика

  • Sys_Error ... pak0.pk3 — нет retail data;
  • User Interface is version 3, expected 6 — нет pak1pak8;
  • HUNK_ALLOC FAILED — запустите с +set com_hunkmegs 256;
  • консоль не открывается — Shift+Escape работает как fallback;
  • новый EXE не используется — shortcut всё ещё ведёт на старый binary;
  • black screen — явно выберите opengl1 и выполните vid_restart;
  • server absent — dedicated 2, карта, UDP/firewall/NAT, свежий directory DNS;
  • HTTP download failed — проверьте <sv_dlURL>/<fs_game>/<pk3>;
  • OSP падает в native VM — верните QVM defaults.

Источники

Связанные материалы: vanilla q3ded и OSP 1.03a.