Руководство по сетевой игре
Стратегия совместимости версий
jrpm — это tagged-версия (jrpm-0.1.0), рукопожатие требует полного совпадения строки ревизии:
| Сценарий | Поведение |
|---|---|
| Клиент jrpm ↔ Сервер jrpm | ✅ Нормальная игра (версии совпадают) |
| Клиент jrpm ↔ Сервер оригинальный jgrpp / pulsexlb | ❌ Отказ (изоляция версий) |
| Клиент оригинальный jgrpp → Сервер jrpm | ✅ Разрешено (сервер принимает ревизии jgrpp-*) |
| Клиент pulsexlb → Сервер jrpm | ✅ Разрешено (принимает ревизии pxp) |
Версии NewGRF
Независимо от версии клиента, номер версии NewGRF должен полностью совпадать с серверным (строгая проверка _openttd_newgrf_version), это основа детерминированного симулятора.
Создание сервера
bash
# Выделенный сервер (без GUI)
openttd-jrpm -D -c server.cfgРекомендуемая конфигурация server.cfg (подробнее в настройке производительности сервера):
ini
[network]
server_name = My JRPM Server
server_port = 3979
max_clients = 32
max_companies = 15
frame_freq = 3
sync_freq = 50
commands_per_frame = 8
bytes_per_frame = 16
bytes_per_frame_burst = 512
max_join_time = 1000
max_download_time = 2000
max_lag_time = 1200Подключение к серверу
- В игре: «Многопользовательская игра → Подключиться к интернет-серверу / Добавить сервер», или
- Из командной строки:
openttd-jrpm -n <host>:<port>
Загрузка контента (NewGRF/Сценарии)
jrpm поддерживает несколько зеркал + параллельную загрузку:
ini
[network]
content_server = content.openttd.org ; Сервер метаданных
content_mirrors = https://binaries.openttd.org/bananas,https://your-mirror.example/bananas
content_download_parallel = 4 ; Количество параллельных загрузок (1-8)- Список зеркал через запятую, используются по порядку; при сбое одного зеркала автоматически переключается на следующее;
- Переменные окружения
OTTD_CONTENT_MIRROR_URI/OTTD_CONTENT_SERVER_CSимеют приоритет над настройками; - При сбое всех зеркал автоматический откат к старому протоколу TCP.
Управление сервером
- Консольные команды:
status,clients,kick,ban,save,reset_company,autogroup(автоматическая группировка ТС) и т.д.; - RCON: установите
rcon_passwordна сервере для удалённой отправки консольных команд.