7Days To Die 生成したワールドをサーバで使用する
7Days To Dieのサーバの建て方(Windows / Ubuntu)を掲載しましたが、 ワールド生成について記載していなかったので、今回はクライアントで生成したワールドをサーバで使用する方法をご紹介しようと思います。

最終更新日: 2023/01/09



はじめに

サーバの建て方について

今回はワールドをサーバで使用する方法について書きますので、サーバの建て方については7Days To Dieのサーバの建て方(Windows / Windows)を ご参照ください。

ワールド生成について

7dtdのサーバではRWGとシード値を設定することに寄ってワールドを生成することが可能です。
しかしながら、生成されるワールドは街の数やバイオームの比率等はおそらくデフォルト値となっていると思います。
ゲームクライアントのワールド生成機能では街の数やバイオームの比率はカスタマイズ可能ですが、Ubuntuサーバの場合やサーバマシンが異なる場合は生成するだけでは使用することができません。
そこで、ワールドファイルの移動と設定を行うことでゲームクライアントで生成したワールドをサーバで使用できるようにしていきます。

検証環境


ホストマシン
項目 詳細
OS Windows 10 Pro x64
CPU Intel Core i7 10700K
Memory 64GB
GPU NVIDIA GeForce GTX 1070
Virtual VMware Workstation Player

ゲストマシン
項目 詳細
OS Ubuntu Server 20.04.5 LTS 64bit
CPU Intel Core i7 10700K 2 Core 割当
Memory 10GB


ゲームクライアントでワールド生成

SSHのインストール

特に必要はありませんが、コマンドのコピペやModを導入する際にあると結構便利です。
また、SFTPはSSHプロトコルを利用するのでファイルのやりとりもこれがあれば簡単にできます。
ただし、サーバの制御ができてしまう上に今回はセキュリティ面の設定を一切行わないため、外部への公開はしないほうが良いでしょう。
ローカルエリアからのみのアクセスを前提とするためご注意ください。

もしセキュリティ面の設定(公開鍵認証方式)も行う場合はRaspberry Pi 4の記事になりますが、同様の設定でできます。
Raspberry Pi 4をサーバ仕様にセットアップする#SSHを公開鍵認証方式に変更する

SSHのインストール自体は簡単で、パッケージからインストールすればすぐに使えます。
$ sudo apt install openssh-server
$ sudo systemctl enable ssh
$ sudo systemctl restart ssh
    

あとはCygwinなどのSSHからユーザ名@ipで接続できます。
$ ssh user@192.168.1.163
    
IPアドレスのチェックは「ip addr show」でできます。
以下の出力例はサーバ設定ごにょごにょしたやつなので異なると思いますが、おそらくeth0かなにかの項目があると思います。
そこにあるinetの値がipv4のローカルIPアドレスとなります。
なお、ipv6の環境はまた異なるので別途検索してください。(ipv6の環境がない)
$ ip addr show
...

4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9a:07:6d:8d:b9:7c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.163/24 brd 192.168.1.255 scope global br0

...
        

SFTPも同様に22番ポートで接続するとファイルへのアクセスも可能です。
当環境ではWinSCPからSFTPでアクセスしています。


依存パッケージのインストール

i386(32bit)アーキテクチャを追加し、32bitのgccライブラリをインストールします。
なお、Ubuntu 19.10では32bit OS及びパッケージを廃止しているため、いつこれらの提供が廃止されるかわかりません。
といいつつ一部のパッケージのサポートを継続しているようなのでほんとにどうなることやら。
もしかするとタイミングによっては廃止されている可能性もあるのでご注意ください。
その場合はold-releaseなどから引っ張る必要があるかもしれません。

とりあえず執筆当時の2020/03/18では問題なくインストールできました。
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install lib32gcc1
    

SteamCMDのインストール

お次に今回の肝であるSteamCMDをインストールします。 UbuntuではパッケージとしてSteamCMDが配布されていますが、パスが通ってるところにインストールされるわけじゃないので個別にダウンロードして展開するほうがわかりやすいと思います。
確認してないけど、パッケージ版も32bitだから64bit OSだとそもそもないかも知れない。
$ mkdir ~/steamcmd && cd ~/steamcmd
$ wget http://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$ tar zxvf steamcmd_linux.tar.gz
    

SteamCMDのログインと7dtdサーバのインストール

インストールできたらSteamCMDを起動します。
$ ./steamcmd.sh
                
起動できたらanonymouseでログインします。
なお、個別IDでログインするように説明しているところもありますが、正直めんどいだけなのでanonymousでOK。