7 Days to Die というオープンワールドサバイバルゲームを最近やっていて、友人と遊んでいたセーブゲームデータを Linux Dedicated サーバに移行しようとした際にハマったので備忘録として書いておく。
実はポータブルになっていてセーブデータ自体は Windows でも Linux でも互換性がある。
セーブデータは以下に保存されており、この下のファイル名が Random Gen マップにおけるジェネレーションシードになっている。
Users\UserName\AppData\Roaming\7DaysToDie\Saves\Random Gen
まずマイグレートしたいセーブゲームのゲーム名がシード名になっているので、そのデータを手元に用意する。
Linux Dedicated Server は CentOS 7 以上が良い。glibc++ が新し目のを使っているのと glibc 2.15 2.14 が動く環境でないといけないため、CentOS 6 では敷居が高い。
steam コマンドを落としてきてセットアップする。anonymous ではゲームコンテンツをダウンロードできないので有効な Steam アカウントでログインする。
yum install ld-linux.so.2 glibc.i686 libstdc++.i686 wget unzip
mkdir steamcmd
cd steamcmd
wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
tar zxvf steamcmd_linux.tar.gz
./steamcmd.sh +login anonymous +quit
./steamcmd.sh
steam> login
steam> force_install_dir ./7d2d
steam> app_update 294420 validate
steam> quit
以下にある serverconfig.xml を編集し、GameWorld を Random Gen に、GameName をシード名に設定する。
~/steamcmd/7d2d/serverconfig.xml
必要であれば ServerName や ServerPassword などを適宜設定しておく。
セーブデータは steamcmd 以下ではないので注意。以下のパスに置く。
~/.local/share/7DaysToDie/Saves/Random\ Gen
以上が完了したら以下のスクリプトでサーバを起動する。
~/steamcmd/7d2d/startserver.sh
ログは以下のパスでこのように日付ごとに保存される。
~/steamcmd/7d2d/7DaysToDieServer_Data/output_log__2015-11-03__11-18-04.txt