Пример использования Wine и Proton для запуска игры и сервера Conan Exiles.
В данной заметке рассмотрен практический пример использования Wine для запуска Windows-программ на Linux.
С базовыми принципами использования Wine можно ознакомиться здесь: https://noostyche.ru/blog/2020/04/30/ispolzovanie-wine-dlya-zapuska-windows-programm-v-linux/
Рассматриваемая игра — Conan Exiles. Игра создана на базе движка Unreal Engine 4, который довольно хорошо работает на Wine/Proton. Игра и сервер установлены из Steam. Игра будет запускаться через Proton, а выделенный сервер через Wine.
Установка выделенного сервера.
Сначала необходимо установить выделенный сервер — Conan Exiles Dedicated Server.
Через библиотеку Steam в разделе «Инструменты» найти Conan Exiles Dedicated Server и установить его в желаемое место.
Альтернативный вариант установки. Выполнить команду в терминале:
steam steam://install/443030/
Настройка выделенного сервера.
Базовую настройку оптимальнее производить через предлагаемый разработчиками bat-файл под названием StartServer.bat. Файл располагается в корневом каталоге выделенного сервера:
./steamapps/common/Conan Exiles Dedicated Server/StartServer.bat
Редактирование файла можно осуществить любым удобным текстовым редактором.
Первоначально содержимое файла выглядит так:
ConanSandboxServer.exe -log
Официальная wiki с перечислением параметров сервера: https://conanexiles.gamepedia.com/Server_Configuration#General
Итоговая настройка будет выглядеть примерно так:
start ConanSandboxServer.exe -MULTIHOME=192.168.1.2 -GameServerPort=7777 -GameServerQueryPort=7778 -ServerName=ConanNoos -MaxPlayers=40 -nosteam -AdminPassword=MySuperPass! -log
Разбор параметров.
start — команда на выполнение содержимого bat-файла.
ConanSandboxServer.exe — название исполнительного файла выделенного сервера. В обычном случае путь указывать не требуется.
-MULTIHOME=192.168.1.2 — IP-адрес, на котором будет располагаться выделенный сервер. В данном случае это адрес машины в локальной сети для игры по локальной сети. Для возможности подключения к этому серверу из интернета потребуется белый IP или VPN.
-GameServerPort=7777 — основной порт, по которому будут подключаться игроки. Можно указать любой желаемый из доступных. В межсетевом экране должно быть выдано разрешение на внешние подключения к порту.
-GameServerQueryPort=7778 — порт, на который SteamAPI сделает запрос.
-ServerName=ConanNoos — название севера для списка серверов игры. Любое желаемое в рамках допустимых.
-MaxPlayers=40 — максимальное количество игроков, которые могут быть одновременно подключены к серверу. Ранее пределом было 40 человек, а на момент 2020 года, вроде как, этот лимит был поднят до 70.
-nosteam — позволяет запускать множество экземпляров сервера на одной машине. Так же это решает проблему с ошибкой: «Не удалось подключиться к серверу. Неверный уникальный ID!».
-AdminPassword=MySuperPass! — пароль администратора сервера. Хранится в открытом виде. При желании можно настроить непосредственно из игры.
-log — вести список событий в процессе работы севера. Полезно для отладки и контроля за действиями игроков.
На этом основную настройку можно закончить и сохранить изменения bat-файла. Настройками для игрового процесса удобнее управлять через настройку сервера непосредственно в игре.
Файл с настройками игрового процесса хранится здесь:
./steamapps/common/Conan Exiles Dedicated Server/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini
Запуск.
Для запуска выделенного сервера будет использоваться Wine. Через него сервер работает отлично.
Запуск сервера через терминал посредством bat-файла с названием StartServer.bat:
WINEPREFIX='./steamapps/compatdata/443030/pfx' wine start /unix './steamapps/common/Conan Exiles Dedicated Server/StartServer.bat'
Разбор команды.
Примечание: В данном случае пути сокращены для лаконичности записи примера, на деле они будут начинаться от корня.
WINEPREFIX=’./steamapps/compatdata/443030/pfx’ — переменной среды WINEPREFIX передаём путь до префикса Conan Exiles Dedicated Server. Префикс автоматически создаётся Proton при первом запуске Conan Exiles Dedicated Server (включить и выключить).
wine start /unix — с такими параметрами Wine сможет запустить bat-файл.
Далее указывается путь до StartServer.bat, который запустит сервер с указанными в нём параметрами.
При успешном запуске в терминале увидим бегущий список выполняемых операций.
Серверу потребуется около 30 секунд для полного запуска.
После этого можно присоединяться через «Прямое подключение» в клиенте игры.
В рамках данного примера в поле «IP и порт» нужно сделать запись следующего вида:
192.168.1.2:7777
И подтвердить. После некоторых «раздумий» появится загрузочный экран, символизирующий успешный процесс подключения к серверу.
Завершение работы.
Работа севера завершается обычным прерыванием Ctrl + C в терминале. При завершении работы сервер сохранит все нужные данные и безопасно выключится. Полное выключение займёт около 30 секунд.
База данных с состоянием мира и её резервные копии хранятся в этом каталоге:
./steamapps/common/Conan Exiles Dedicated Server/ConanSandbox/Saved/
Персонаж игрока привязан к записи в реестре Windows, а не только к серверу, поэтому если удалить префикс, то персонаж сгинет вместе с ним. В префиксе используются два основных файла реестра:
./steamapps/compatdata/443030/pfx/system.reg
./steamapps/compatdata/443030/pfx/user.reg
Таким нехитрым способом можно легко наслаждаться Conan Exiles на Linux.