自宅サーバで Soulmask 専用ゲームサーバを構築する

2024-06-01

#Linux

#Ubuntu

#Home server

#Soulmask

#Game server

新作サバイバルクラフトだ!のりこめー

Overview

Soulmask ゲームサーバを構築する

やっていることは 7d2dPalworld の時とほぼ同じ
Valheim のように LinuxGSM を使うことができないタイトルだった際のフロー決定版

Flow

公式 Wiki の手順書に従い、自宅サーバの Ubuntu 22.04.4 上に構築していく

ゲームサーバの構築

Soulmask 用ユーザの作成

Terminal window
sudo useradd -m soulmask -s /bin/bash -G sudo
sudo passwd soulmask

作業ユーザの変更

Terminal window
sudo su - soulmask

SteamCMD をインストール

Terminal window
sudo add-apt-repository multiverse; sudo dpkg --add-architecture i386; sudo apt update
sudo apt install steamcmd

Soulmask ゲームサーバをインストール

Terminal window
steamcmd +force_install_dir /home/soulmask/soulmask_server +login anonymous +app_update 3017300 validate +quit

サーバを起動し、設定ファイルを作成
作成後、一旦停止する

Terminal window
cd soulmask_server
./StartServer.sh

生成された設定ファイルを編集・追記
ポートは 3 桁不可(3 桁にしたら 1024 に補正された)

/home/soulmask/soulmask_server/WS/Saved/Config/LinuxServer/Engine.ini
[URL]
Port=7777
[OnlineSubsystemSteam]
GameServerQueryPort=27015
[Dedicated.Settings]
SteamServerName=UNNAMED_SERVER
MaxPlayers=20
pvp=False
backup=900
saving=600

使用するポートを開放
自宅なので別途ルータのポート開放も行う

Terminal window
sudo ufw allow 7777/udp
sudo ufw allow 27015/udp

任意の引数を付与し、サーバを起動
詳細な設定については、公式 Wiki を参照

Terminal window
./StartServer.sh -PSW=xxxx

サービス化

/etc/systemd/system 以下にサービスファイルを作成

Terminal window
sudo nano /etc/systemd/system/soulmask-dedicated.service
/etc/systemd/system/soulmask-dedicated.service
[Unit]
Description=Soulmask Dedicated Server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
WorkingDirectory=/home/soulmask/soulmask_server
ExecStart=/home/soulmask/soulmask_server/StartServer.sh -PSW=xxxx
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
Restart=always
User=soulmask
Group=soulmask
TimeoutStartSec=300
[Install]
WantedBy=multi-user.target

サービスの起動

daemon reload
sudo systemctl daemon-reload
enable service
sudo systemctl enable soulmask-dedicated.service
start service
sudo systemctl start soulmask-dedicated.service

サービスの確認

check service status
sudo systemctl status soulmask-dedicated.service
check service log
sudo journalctl -u soulmask-dedicated
check service log like tail
sudo journalctl -u soulmask-dedicated -f

(サービスの停止)

stop service
sudo systemctl stop soulmask-dedicated.service

Afterword

初回起動時に生成される Engine.ini に追記する形で設定を編集してみたけど、
インストール時から存在する StartServer.sh を複製・編集して制御する方が想定されている方法だった様子?
Wiki 斜め読みの弊害がここに

Ref