njo

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のインスタンス作成

今回は、AmazonVPSサービスである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は、色々なゲームの専用サーバ構築をラップして簡単に扱いやすくしたツールです。各ゲームサーバを、このツールを通して起動・停止・更新などの管理ができます。ディレクトリ構成などが統一されるのでわかりやすい。ドキュメントもわかりやすい。

linuxgsm.com

  1. Valheim | LinuxGSM_ のDependenciesタブに記載された依存パッケージを入れておきます。権限などをいい感じしたらLinuxGSMが自動でパッケージのインストールもしてくれるらしいですが、面倒なので予め入れておいた方がいいかも。
  2. installタブに書かれている通りコマンドを実行する。豪華な出力がされてvhserver(Valheimのサーバ)がインストールされます。
    • ここで表示されるパスとかをメモっておくと、後々運用していく中で便利そうです。ディレクトリを探検して目当てのものを探す手間が省けます。
  3. Basic Usageタブに書かれているcronの設定を入れましょう。
  4. ./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自体にお気に入りのサーバを設定する機能があるので、そこに追加をしましょう。

  1. Steamを開く
  2. メニューからサーバを選択する

  3. お気に入りタブで追加を行う。入力するのは、 グローバルIP:QueryPort です。分からない場合は、 ./vhserver detailsInternet IPPortsQuery の部分を確認しましょう。

  4. お気に入りに追加したサーバを右クリックして、「サーバーに接続」を選ぶ。パスワードを入力して、接続する。

  5. Valheimが起動して、キャラクター選択画面が開く、キャラクターを選ぶとサーバー一覧画面をスキップして、先ほど入力したサーバに直接接続がされる。

  6. F2キーで接続情報を確認してみたり。

参考にしたページ