Как запустить Minecraft на игровом сервере?
Проблема
Сам я равнодушен к играм, но мой ребенок активно стал играть в Minecraft через какие-то «подозрительные» сайты на своем планшете. Тогда я предложил установить на игровой сервер Minecraft и играть с геймпада на телевизоре. На тот момент мне казалось, что там все довольно просто или как с обычными играми.
Давайте соберем наши требования:
Возможность запускать Minecraft с игрового сервера со Steam.
Играть мы должны через геймпад.
По возможности не должно быть зависимости от внешних Minecraft-серверов.
Схема взаимодействия будет выглядеть по нашим планам так:
---
config:
securityLevel: loose
startOnLoad: true
view:
pan:
enabled: true
zoom:
enabled: true
initialScale: 2
maxScale: 10
minScale: 0.1
---
sequenceDiagram
participant Игрок
participant SteamLink as Steam Link (ТВ)
participant SteamServer as Steam Сервер
participant MinecraftServer as Локальный Minecraft Сервер
Игрок->>SteamLink: Подключает геймпад (USB/Bluetooth)
Игрок->>SteamLink: Запускает приложение Steam Link
SteamLink->>SteamServer: Установка соединения (Remote Play)
SteamServer-->>SteamLink: Подтверждение соединения
SteamLink->>SteamServer: Запрос интерфейса Steam (Big Picture)
SteamServer-->>SteamLink: Передача видеопотока интерфейса
SteamLink-->>Игрок: Отображение интерфейса Steam на ТВ
Игрок->>SteamLink: Выбор Minecraft в библиотеке Steam
SteamLink->>SteamServer: Команда запуска игры
SteamServer->>MinecraftServer: Проверка/запуск локального сервера Minecraft
MinecraftServer-->>SteamServer: Сервер готов
SteamServer->>SteamServer: Запуск клиента Minecraft
SteamServer->>SteamLink: Начало трансляции игры (видео + аудио)
SteamLink-->>Игрок: Отображение игры на ТВ
loop Игровой процесс
Игрок->>SteamLink: Ввод с геймпада (кнопки, стики)
SteamLink->>SteamServer: Передача ввода по сети
SteamServer->>MinecraftServer: Обработка ввода в игре
MinecraftServer-->>SteamServer: Обновление состояния игры
SteamServer->>SteamLink: Обновление видеопотока (новый кадр)
SteamLink-->>Игрок: Отображение обновлённой картинки
end
Рис. 1 — Minecraft
На старте у нас уже должно быть:
Настроенный сервер или VM со Steam и настроенными драйверами видеокарты. Можно и без видеокарты, но конечный результат не гарантирован :).
Геймпад.
Устройство для игры (например, телевизор), на котором уже установлен Steam Link.
Базовые знания программирования и OS Linux. Можно делать по аналогии и это только приветствуется.
Minecraft
На сервере вместе со Steam нам необходимо сначала запустить лаунчер для Minecraft. Я установил PolyMC.
flatpak install flathub org.polymc.PolyMC
Создаем автономный аккаунт и добавляем сборку Minecraft. Для проверки Вы можете запустить игру, но играть полноценно не сможете, так как требуется соединение с серверами, которых у нас пока нет. Также запуск осуществляется через лаунчер PolyMC, а не Steam.
В PolyMC нужно установить моды и для этого устанавливаем Fabric Loader → 0.18.3, а затем моды:
Fabric API →
0.141.4(загрузчика модов Fabric)Framework →
0.13.11(дополнительная библиотека-фреймворк)Controllable →
0.25.7(управление через геймпад)
Как оказалось версии очень важны и для моего случая они были именно такими. Также нам нужно узнать версию Minecraft внутри PolyMC (для уверенности):
$ ls ~/.var/app/org.polymc.PolyMC/data/PolyMC/instances/
1.21.11 instgroups.json #1.21.11 - наша версия.
Теперь нам необходимо запустить сервер Minecraft, чтобы указать его в лаунчере. Запускать будем через Docker . Создаем необходимые папки и файлы:
mkdir config_minecraft
touch docker-compose.yaml
Редактируем через nano docker-compose.yaml:
services:
mc-server:
image: itzg/minecraft-server:latest
container_name: mc-server
ports:
- "25565:25565"
volumes:
- ./config_minecraft:/data
environment:
EULA: "TRUE"
VERSION: "1.21.11" # Должен совпадать с версией в PolyMC
MEMORY: "4G"
restart: unless-stopped
Запускаем и переходим в PolyMC, выбираем нашу сборку, выбираем редактирование серверов и там добавляем наш сервер выше с адресом 127.0.0.1:25565. Теперь мы можем запустить игру и проверить игру в действии. Внутри игры: Настройки -> Настройки графики -> Полноэкранный режим: Вкл.
Steam
На стороне Steam добавляем игру как игру не из Steam и выбираем любую программу, так как далее будем исправлять ее свойства. Заполняем:
Name:
Minecraft.Target:
"/usr/bin/flatpak".Start in:
/usr/bin/.LAUNCH OPTIONS:
run --branch=stable --arch=x86_64 --command=polymc org.polymc.PolyMC -l "1.21.11".Картинки для красивого отображения в библиотеке игр Steam берем с steamgriddb.
Controller:
Disable Steam input.Compatibility: проверяем, что чек-бокс отжат для
Force the use of a specific Steam Play compatibility tool.
Итог
Теперь Minecraft запускается на нашем сервере и мы можем играть через геймпад.
Ссылки: