Кроссплей между платформами: настройка сервера
Друг зовёт поиграть с PS5, у вас ПК, у третьего — телефон, и все хотят на один сервер. В теории это называется кроссплей, на практике — квест с конфигами, портами и иногда неприятным сюрпризом в духе "а это две разные версии игры, они физически не видят друг друга". Разберём, где кроссплей реально работает, как его включать и на что обратить внимание, если не хотите объяснять игрокам через неделю, почему консольщики выносят всех в PvP.
Содержание
Два типовых сценария включения на сервере
Если игра поддерживает кроссплей, обычно всё сводится к одному из двух вариантов.
Сценарий 1: отдельный кроссплатформенный сервер по умолчанию. Часть игр (в первую очередь те, что изначально проектировались с прицелом на консоли и мобильные устройства) поднимают сервер как кроссплатформенный сразу — никакой отдельной настройки не требуется, все клиенты стучатся на один и тот же порт одним и тем же протоколом.
Сценарий 2: явный флаг в конфигурации. Здесь при первом запуске сервер по умолчанию либо не виден игрокам с других платформ, либо на других платформах ограничен, и нужно руками включить опцию — обычно она называется примерно как bCrossplay, EnableCrossplay, CrossplayPlatforms в зависимости от игры и лежит в основном конфиге (GameUserSettings.ini, Config.lua, server.cfg — опять же, зависит от движка). Точное имя параметра и его синтаксис всегда сверяйте с актуальной документацией именно вашей версии игры на дату запуска — разработчики меняют названия опций между патчами, и конфиг из старого гайда может просто не сработать или, хуже, тихо проигнорироваться.
Практический совет: после включения любого такого флага не полагайтесь на "наверное заработало" — проверяйте вживую, зайдя с двух разных устройств (или хотя бы попросив игрока с другой платформы попробовать подключиться), и смотрите лог сервера на предмет ошибок при коннекте.
Minecraft: Java и Bedrock — разные игры под одной вывеской
Самый частый вопрос про кроссплей в поддержку хостингов — это Minecraft, и здесь важно сразу разложить по полочкам путаницу. Java Edition и Bedrock Edition — это два отдельных клиента с разным сетевым протоколом. Bedrock Edition (консоли, мобильные, Windows) кроссплатформенна сама по себе — сервер на Bedrock принимает подключения со всех этих устройств без дополнительных настроек. А вот подружить Java и Bedrock напрямую нельзя — протоколы несовместимы на уровне пакетов.
Мост между ними делают через плагин GeyserMC — он транслирует протокол Bedrock в протокол Java на лету, и Bedrock-игроки могут заходить на обычный Java-сервер (Paper/Spigot/Fabric), как будто это их родная платформа. Для полноценной работы к Geyser обычно ставят Floodgate — он даёт Bedrock-игрокам заходить без привязки к Java-аккаунту Microsoft/Mojang, используя их существующий Xbox Live логин.
Базовая установка на Paper выглядит так:
# в папке plugins/ сервера
wget https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot -O plugins/Geyser-Spigot.jar
wget https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot -O plugins/floodgate-spigot.jar
После перезапуска сервера в plugins/Geyser-Spigot/config.yml задаётся отдельный порт для Bedrock-подключений (по умолчанию 19132, протокол UDP — это важно, Java-порт 25565 работает по TCP, и это два разных порта, которые нужно открывать в файрволе отдельно) и адрес, который будут вводить Bedrock-клиенты. Если сервер за NAT или на хостинге с проброшенными портами, убедитесь, что оба порта — 25565/TCP для Java и 19132/UDP для Geyser — действительно открыты снаружи, иначе одна из платформ просто не сможет достучаться. Подробнее про то, как правильно открыть нужные порты и не оставить лишнего — в статье про настройку портов и файрвола для игрового сервера.
Если вы разворачиваете именно "чистый" Bedrock-сервер без моста на Java, у нас есть отдельный разбор — как поднять сервер Minecraft Bedrock — там пошагово про установку и специфику именно этого издания.
Честно: Geyser — не идеальное решение. Некоторые механики (сложный редстоун, часть модов, отдельные предметы) выглядят или ведут себя иначе у Bedrock-игроков через мост, и после обновлений Minecraft бывает лаг в поддержке новых версий Geyser — сверяйтесь с их GitHub перед апдейтом ядра сервера, чтобы не сломать мост апдейтом раньше времени.
Нужен игровой сервер?
MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.
Создать серверДругие игры с кроссплеем: что реально можно настроить
Помимо Minecraft, кроссплей встречается в ряде игр из каталога аренды серверов — но степень настраиваемости сильно разная.
ARK: Survival Ascended поддерживает игру между ПК (Steam/Epic) и консолями, и на уровне выделенного сервера обычно есть отдельная опция под каждую платформу — часть из них (в частности PlayStation) разработчик может держать за отдельным флагом из-за требований платформодержателя. Точный список актуальных параметров конфига стоит смотреть в официальных заметках к патчу непосредственно перед запуском — эта часть меняется чаще остального.
Palworld на выделенных серверах даёт возможность управлять списком разрешённых платформ прямо в настройках сервера — то есть админ может либо открыть сервер для всех, либо сознательно оставить только ПК или только консоли. Это удобно, если вы хотите изолировать платформы намеренно (см. следующий раздел про баланс).
DayZ ввёл кроссплей между консольными платформами (Xbox и PlayStation), тогда как ПК-версия исторически держится отдельно — во многом из-за модов, которые есть только у ПК-сообщества и физически не переносятся на консоль.
Общий паттерн: чем больше в игре модов, кастомных карт и плагинов — тем меньше шансов на кроссплей, потому что консольная версия просто не может подгрузить произвольный клиентский контент. Если вы ставите тяжёлую модпак-сборку, кроссплей почти наверняка придётся принести в жертву.
Баланс мышь+клавиатура против геймпада — справедливо ли это для PvP
Это тема, где стоит быть честным с игроками с самого начала: кроссплей не означает равные условия. В играх с быстрым прицеливанием (шутеры, PvP-выживалки с боем в реальном времени) игрок с мышью объективно быстрее наводится, чем игрок с геймпадом — это давно обсуждаемая проблема, из-за которой многие крупные проекты либо разделяют платформы по умолчанию для рейтинговых/соревновательных режимов, либо дают геймпад-игрокам aim assist (усиленное автонаведение), который частично компенсирует разницу, но тоже вызывает споры о честности уже в обратную сторону.
Если вы администрируете PvP-сервер, у вас по сути три пути:
- Оставить общий кроссплей как есть — подходит для казуальных серверов, где важнее компания, а не турнирная справедливость.
- Разделить платформы принудительно, если игра это позволяет (см. пример с Palworld выше) — консольщики играют с консольщиками, ПК с ПК.
- Смешать, но с оговоркой в правилах сервера — открыто написать в MOTD или на дискорд-канале, что сервер кроссплатформенный и это учтено, чтобы не было претензий "почему меня разносят с мышкой".
Для кооперативных выживалок (Palworld, ARK, Valheim-подобные проекты без прямого PvP-фокуса) разница в управлении почти не ощущается — там кроссплей чаще всего просто плюс без минусов.
Сетевые особенности: порты и протоколы под разные платформы
Отдельный нюанс, о котором часто забывают: кроссплатформенный сервер иногда физически слушает не один порт, а несколько — под разные протоколы для разных клиентов. Уже разобранный пример с Geyser (TCP 25565 для Java, UDP 19132 для Bedrock) — не исключение, а скорее правило для мостовых решений: одна платформа подключается по "родному" протоколу, другая — через прослойку с собственным портом.
Что стоит проверить на своём сервере, если планируете кроссплей:
- Список портов — у игры может быть основной игровой порт, отдельный порт для запросов статуса (например, Steam Query), и, если используется мост наподобие Geyser, ещё один порт под другой протокол. Все их нужно явно открыть.
- TCP vs UDP — большинство игровых протоколов реального времени идут по UDP (быстрее, не блокируется потерей одного пакета), а вспомогательные сервисы (веб-панели, RCON) чаще по TCP. Перепутанный протокол в правиле файрвола — частая причина "сервер работает, но не для всех".
- NAT и проброс портов, если сервер стоит не на публичном IP — на арендованном VPS/выделенном сервере (как в MAATRIX GAMES) это обычно не проблема, публичный IP есть по умолчанию, но если разворачиваете дома за роутером — не забудьте пробросить именно те порты, которые слушает конкретная платформа.
Если не уверены, что порт реально открыт снаружи, а не только локально — проверьте через nmap с внешней машины или онлайн-чекер порта, не полагаясь на то, что процесс сервера просто запустился без ошибок.
Нужен игровой сервер?
MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.
Создать серверЧастые вопросы
Можно ли включить кроссплей на любом сервере простой настройкой?
Нет. Это зависит от того, поддерживает ли саму функцию конкретная игра — конфигом нельзя добавить то, чего нет в коде клиента и сервера.
Если на сервере стоят моды, кроссплей точно сломается?
Почти всегда да для консольных платформ — консоль не может подгрузить произвольные клиентские моды. Мобильные и Bedrock-клиенты через мосты вроде Geyser тоже не увидят серверные Java-моды, только ванильный или почти ванильный контент.
Нужен ли отдельный IP или домен под каждую платформу?
Обычно нет — чаще разные платформы просто подключаются на разные порты одного и того же адреса, как в примере с Geyser. Отдельный домен полезен скорее для удобства (легче диктовать игрокам), а не как техническое требование.
Кроссплей замедляет сервер?
Сам по себе — нет, дополнительная нагрузка минимальна. А вот мостовые решения вроде Geyser добавляют небольшой оверхед на трансляцию протокола, обычно незаметный на серверах с нормальным запасом по CPU и RAM.
Как понять, что кроссплей реально работает, а не просто включён в конфиге?
Только тестом вживую — зайти с двух разных устройств/платформ и проверить, что оба видят друг друга в игре, а не просто оба успешно подключаются к серверу.