Что вам понадобится
- Операционная система: 64-разрядный Linux для шагов ниже. OpenRCT2 публикует переносимые сборки для Linux под Debian bookworm и trixie и Ubuntu noble и resolute.
- Сохранённый парк: сервер размещает уже существующий файл сохранения. Сам с пустого сценария он не стартует.
- Сеть: по умолчанию TCP-порт 11753, открытый в брандмауэре машины и проброшенный на роутере, если вы за NAT.
- Игра для игроков: в README OpenRCT2 сказано, что для игры нужны оригинальные файлы RollerCoaster Tycoon 2, которые можно купить в Steam или на GOG.com. Наш сервер работает без них.
OpenRCT2 бесплатен и имеет открытый исходный код, так что вы платите за машину, электричество и трафик, а не за программу.
Вариант 1: разместить самому
Это работает на старом ПК, домашнем сервере или облачной виртуальной машине. Параметры командной строки взяты из man-страницы OpenRCT2 и её вики-страницы о мультиплеере, а шаги загрузки повторяют наш скрипт установки.
Linux (пример на Debian 12)
- Скачайте переносимую сборку. Выберите файл для своего дистрибутива в последнем релизе OpenRCT2. Для Debian 12 (bookworm) имя файла заканчивается на
Linux-bookworm-x86_64.tar.gz.
mkdir ~/openrct2-server && cd ~/openrct2-server
curl -L -o OpenRCT2.tar.gz "<the download link of that file>"
tar -xvf OpenRCT2.tar.gz
Архив распаковывается в папку OpenRCT2, в которой лежит openrct2-cli.
- Установите библиотеки, если он не запускается. Если
openrct2-cli останавливается с сообщением «error while loading shared libraries» (например libicuuc.so.72), в системе нет библиотеки, с которой связана переносимая сборка. Вот пакеты Debian 12, которые наш скрипт установки добавляет для сборки bookworm:
sudo apt install libicu72 libfontconfig1 libfreetype6 libpng16-16 libzip4
- Положите сохранённый парк в папку, которую вы контролируете, например
~/openrct2-server/ServerData/save/save.park. Можно взять сохранение из своей игры.
- Запустите сервер.
--port задаёт порт, а --user-data-path задаёт папку, в которой лежит config.ini:
cd ~/openrct2-server
./OpenRCT2/openrct2-cli host ServerData/save/save.park --port 11753 --user-data-path ~/openrct2-server/ServerData/
Добавьте --password <password>, чтобы требовать пароль при входе. Без --port, как сказано в man-странице OpenRCT2, используется порт по умолчанию 11753.
- Откройте порт. Разрешите TCP 11753 в брандмауэре (с ufw:
sudo ufw allow 11753/tcp) и пробросьте его на роутере на эту машину.
- Зайдите. В игре откройте Мультиплеер, нажмите New Server и введите адрес сервера. Чтобы указать другой порт, добавьте его после адреса, например
203.0.113.10:22050. Из командной строки клиент может использовать openrct2 join <address> --port 11753.
Чтобы сервер продолжал работать после выхода из системы, вики OpenRCT2 описывает юнит systemd, /etc/systemd/system/openrct2.service, в котором ExecStart запускает openrct2-cli host с вашим сохранением, а затем systemctl daemon-reload, systemctl enable openrct2.service и systemctl start openrct2.service. На той же вики-странице официальный контейнер Docker, openrct2-docker, назван одним из самых простых способов запустить выделенный сервер.
Другие настройки
Поведение сервера задаётся в config.ini в папке --user-data-path. Наша панель управляет, в частности, такими ключами: network.maxplayers, network.server_name, network.default_password, network.advertise, network.pause_server_if_no_clients, general.autosave и general.autosave_amount. В исходном коде OpenRCT2 значения по умолчанию такие: 16 игроков, advertise включён и pause_server_if_no_clients выключен.
Как стать администратором
Вики OpenRCT2 описывает один способ: зайдите на сервер клиентом, введите network.players в терминале самого выделенного сервера, чтобы узнать свой индекс игрока, затем назначьте свою группу администраторской командой network.players[1].group = 0 (подставьте свой индекс). После этого вы сможете управлять правами из игры.
Вариант 2: разместить на PlayNHost
Аренда избавляет от шагов с брандмауэром, пробросом портов и загрузкой. Программа сервера и её порт настраиваются за вас.
- Выберите план. Откройте страницу хостинга серверов OpenRCT2 и сравните планы (на момент написания KIDDIE, FAMILY и COASTER, на 16, 32 и 64 игрока). Нажмите Создать сервер у плана или Настроить план, если страница это предлагает, и оформите заказ. Цены меняются, поэтому проверяйте их на этой странице.
- Дождитесь установки. Вам придёт письмо «сервер готов», а сам сервер появится на panel.playnhost.com. На вкладке Консоль панель считает сервер запущенным, когда выводит
Listening for clients on.
- Откройте Настройки, затем Настройки игры. Эти поля применяются при каждом запуске сервера:
- Название сервера и Пароль сервера: название, которое видят игроки, и пароль для входа. Очистите пароль, чтобы сервер был открытым.
- Макс. игроков: при создании сервера задаётся равным числу игроков вашего плана.
- Файл сохранения: парк для загрузки, по умолчанию
ServerData/save/save.park.
- Загружать последнее автосохранение: см. примечание ниже.
- Интервал автосохранения и Хранить автосохранений: как часто сервер делает автосохранение и сколько автосохранений хранит.
- Анонсировать сервер и Ставить сервер на паузу, если нет клиентов: на наших серверах оба по умолчанию выключены. В наших тестах попадание в публичный список серверов OpenRCT2 с наших серверов не удаётся, поэтому оставьте Анонсировать сервер выключенным и пусть игроки заходят по адресу.
- Описание сервера: показывается, когда игроки наводят курсор на ваш сервер в списке. Приветствие сервера: сообщение, которое получает каждый зашедший игрок.
- Перезапустите. Когда панель покажет «Сохранено. Чтобы изменения вступили в силу, сервер нужно перезапустить.», нажмите Перезапустить сейчас и дождитесь строки о готовности.
- Загрузите свой парк (по желанию). Откройте вкладку Файлы, загрузите свой файл
.park (имя файла без пробелов), укажите его путь в поле Файл сохранения и выключите Загружать последнее автосохранение, чтобы он загрузился. Пока опция выключена, каждый перезапуск снова загружает этот файл. Когда сервер сделает автосохранение вашего нового парка, включите опцию обратно, чтобы прогресс сохранялся между перезапусками.
- Зайдите. В OpenRCT2 откройте Мультиплеер, нажмите New Server, введите адрес и порт вашего сервера из панели, а затем Пароль сервера, если вы его задали.
Что наша настройка делает за вас
- Строка о готовности. Панель считает сервер запущенным, когда в логе появляется
Listening for clients on.
- Порт и настройки. При каждом запуске панель записывает порт вашего сервера в
network.default_port вместе с названием, паролем, числом игроков и настройками анонса, паузы, автосохранения и журналирования чата и действий. Ручные правки этих ключей в ServerData/config.ini заменяются при следующем запуске, поэтому меняйте их в Настройки игры.
- Стартовый парк. Установка скачивает файл
save.park по умолчанию в ServerData/save, если его там нет, чтобы новый сервер мог стартовать сразу.
- Автосохранение побеждает по умолчанию. Когда Загружать последнее автосохранение включено, каждый запуск загружает самый новый файл в
ServerData/save/autosave/ вместо Файл сохранения. Так прогресс сохраняется между перезапусками. Это также значит, что другой Файл сохранения игнорируется, пока вы не выключите настройку.
- Версии. Настройка Версия OpenRCT2 по умолчанию равна
latest. Тег релиза начиная с v0.4.15, записанный в точности как на странице релизов OpenRCT2, например v0.5.7, закрепляет версию. Он читается только во время установки сервера: перезапуск не применит изменение, даже если панель предложит его после сохранения. Чтобы перевести существующий сервер на другую версию, откройте тикет в поддержку, и мы переустановим его для вас.
- Консоль. Вкладка Консоль показывает лог сервера. Текст, введённый там, до игры не доходит, поэтому админский шаг с
network.players выше там выполнить нельзя.
Свой хостинг или аренда: честное сравнение
- Стоимость. Свой хостинг: программа бесплатна, а вы платите за железо, электричество и трафик или за облачную виртуальную машину. Аренда: ежемесячный платёж по плану. Смотрите текущие планы.
- Доступность. Свой хостинг: надёжен настолько, насколько надёжны ваша машина, электричество и домашний интернет, и он должен работать, пока друзья строят. Аренда: работает на оборудовании хостинга, а не на вашем ПК.
- Открытость сети. Свой хостинг: игроки подключаются к вашему публичному IP, а брандмауэр и роутер на вас. Аренда: ваш домашний IP не задействован.
- Нужные навыки. Свой хостинг: командная строка, проброс портов и настройка службы или Docker. Вполне по силам и хороший способ научиться. Аренда: веб-панель с полями форм.
- Обновления. Свой хостинг: скачайте новый релиз и замените папку. Аренда: сервер остаётся на той версии, с которой был установлен (на тот момент
latest, если вы не задали Версия OpenRCT2), а поддержка переустанавливает его, когда вам нужна другая.
Свой хостинг подойдёт, если какая-то машина и так работает весь день и вы уверенно обращаетесь с сетями. Аренда подойдёт, если вы предпочитаете не возиться с железом.
Частые проблемы и решения
Бинарный файл релиза не запускается
Причина: в системе нет библиотеки, с которой связана переносимая сборка, например libicuuc.so.72.
Решение: в Debian 12 установите libicu72 libfontconfig1 libfreetype6 libpng16-16 libzip4 или используйте официальный контейнер Docker.
Друзья не могут подключиться
Причина: порт закрыт в брандмауэре или не проброшен на роутере.
Решение: откройте TCP 11753 (или свой порт) в обоих местах и добавьте порт после адреса, если он не стандартный.
Сервер всё время загружает старый парк (PlayNHost)
Причина: Загружать последнее автосохранение включено, поэтому вместо Файл сохранения загружается самое новое автосохранение.
Решение: выключите Загружать последнее автосохранение и перезапустите сервер.
Ваши правки в config.ini пропадают (PlayNHost)
Причина: этот ключ входит в число тех, которые панель записывает при каждом запуске.
Решение: измените его в Настройки игры.
FAQ
Можно ли бесплатно разместить сервер OpenRCT2?
Да. OpenRCT2 бесплатен и имеет открытый исходный код. Но вы всё равно платите за машину, электричество и интернет, и она должна работать, пока люди играют.
Какой порт использует OpenRCT2?
По умолчанию TCP 11753. Измените его через --port или в config.ini.
Сколько игроков могут зайти?
Значение network.maxplayers по умолчанию равно 16. Наши планы рассчитаны на 16, 32 и 64 игрока.
Можно ли начать на сервере совершенно новый сценарий?
На нашем нельзя: Файл сохранения должен указывать на существующий файл .park, а по умолчанию загружается стартовый парк. Загрузите свой парк, чтобы это изменить.
Нужны ли оригинальные файлы RollerCoaster Tycoon 2?
Игрокам нужны: в README OpenRCT2 сказано, что игра их требует. Наш сервер работает без них.
Готовы строить вместе? Смотрите планы сервера OpenRCT2.