Valheimの専用サーバの作り方(Amazon Lightsail + Linux + LinuxGSM)
Valheimは通常であれば、ホストとなったプレイヤーのローカルのPCがサーバとして起動し、マルチプレイで参加した他のプレイヤーはそのホストのPCと通信することになります。お手軽ですがこの場合、ホストとなったプレイヤーがValheimを起動していないと他のプレイヤーはそのサーバで遊ぶことができません。
Valheimは、他のゲームと同様に専用サーバ(Dedicated Server)を構築する手段を提供しているので、自分でサーバを運用することで24時間お友達がいつでも入れるサーバを作れます。ここでは、Amazon LightsailでVPSを立てて、そこにLinuxGSMを使ってValheimのサーバを立てる手順を書きます。
他の手段としては、Valheimの公式も推奨している G-Portal というゲームサーバ自体を運用していくれるホスティングサービスがあります。Valheimの人気のせいなのか、2021/02/20時点では日本サーバが時々売り切れになっていたりします。G-Portalを利用したことがないので、どのくらいのパフォーマンスが出るのかなどはよく知りませんが、自前でホストを運用する手間もないのでお手軽だと思います。
AWS Lightsailのインスタンス作成
今回は、AmazonのVPSサービスであるLightsailで作りました。ここは別に、他のVPSサービスでも、AWSのEC2でもGCPのCompute Engineでもいいです。EC2やGCEよりも割安なのでLighsailを選びましたが、平日の昼間は誰もログインしないとかであれば、スケジューリングシャットダウンの仕組み作ったりして稼働時間を下げれば、まあまあ安くはできそうです。 今回は面倒なので自分が慣れているLightsailで。
考慮するポイント
インスタンスのスペックについては、Lightsailでは$20で提供されている2vCPU、4GBメモリが良さそうです。Valheim公式でサーバの要件を書いてくれていない(?)ので、だいたいみんなこの辺で作ってるなというスペックです。10人ぐらいまでなら、これでいけるのではないかと思います。CPUはマルチコアで処理できない(?)ので増やす必要なしです。メモリは初回起動時では1.9GBぐらいの使用量でした。
OSですが、LinuxGSMでは、ValheimをホストするOSの最小要件は、Ubuntu 16.04 LTS、Debian 9、CentOS 7でした。自分が好きなOSを選びましょう。自分はDebian10で行きました。
やること
LinuxGSMでvhserverをインストールする
LinuxGSMは、色々なゲームの専用サーバ構築をラップして簡単に扱いやすくしたツールです。各ゲームサーバを、このツールを通して起動・停止・更新などの管理ができます。ディレクトリ構成などが統一されるのでわかりやすい。ドキュメントもわかりやすい。
- Valheim | LinuxGSM_ のDependenciesタブに記載された依存パッケージを入れておきます。権限などをいい感じしたらLinuxGSMが自動でパッケージのインストールもしてくれるらしいですが、面倒なので予め入れておいた方がいいかも。
- installタブに書かれている通りコマンドを実行する。豪華な出力がされてvhserver(Valheimのサーバ)がインストールされます。
- ここで表示されるパスとかをメモっておくと、後々運用していく中で便利そうです。ディレクトリを探検して目当てのものを探す手間が省けます。
- Basic Usageタブに書かれているcronの設定を入れましょう。
./vhserver start
で試しに起動してみましょう。プロセスが立ち上がります。./vhserver details
で現在の立ち上がっているサーバの情報が確認できます。
vhserverの設定をして起動
LinuxGSMは、複数のインスタンスを作成できるようになっています。 _default.cfg
を読み込んだ後に、それぞれのインスタンスの固有の設定ファイルを読み込みます。パスは設定などを変えていなければ /home/vhserver/lgsm/config-lgsm/vhserver
こういう所にあります。とりあえず今回編集するのは、vhserver.cfg
です。下記の項目を中身は各々編集して、 vhserver.cfg
に追記しましょう。 servername
はサーバ一覧に表示される名前、 serverpassword
はそのまま接続する時に要求されるパスワード、 gameworld
は読み込む・書き込みセーブファイルの名前です。セーブファイルは ~/.config/unity3d/IronGate/Valheim/worlds/
配下に生成され、この場合は test001.db
test001.fwl
ファイルが生成されます。
servername="test001" serverpassword="testpass" gameworld="test001"
./vhserver restart
で反映して、 ./vhserver details
で確認してみましょう。設定された名前やパスワードで起動しているか、IPアドレスは何か、Portは何で立ち上がっているかなどが見えます。
接続テスト
サーバが起動していることを確認したら、実際に自分で接続してみましょう。このままでも、基本的にはゲーム内のサーバ一覧に表示されるので、単にそこに接続したら遊べるんですが、サーバ一覧は表示数の限界があり、運が悪いとサーバ一覧に自分の立てたサーバが表示されません。ゲーム内ではなく、Steam自体にお気に入りのサーバを設定する機能があるので、そこに追加をしましょう。
- Steamを開く
メニューからサーバを選択する
お気に入りタブで追加を行う。入力するのは、
グローバルIP:QueryPort
です。分からない場合は、./vhserver details
でInternet IP
と PortsのQuery
の部分を確認しましょう。お気に入りに追加したサーバを右クリックして、「サーバーに接続」を選ぶ。パスワードを入力して、接続する。
Valheimが起動して、キャラクター選択画面が開く、キャラクターを選ぶとサーバー一覧画面をスキップして、先ほど入力したサーバに直接接続がされる。
F2キーで接続情報を確認してみたり。