※自己責任でお願いします。頻繁にいじるので自分用メモ
2018/11/5 PC版のみ
主に↓を参考にしてます。英語読める方はこのページ呼んだほうがいいかも?
http://ark.gamepedia.com/Dedicated_Server_Setup
前提条件
64bitOSが必要。Serverは、64bitの実行ファイルなので32bitでは実行できません。プログラムのテストはUbuntu 14.04で行っている。
ハードウェア要件
開始するには、サーバーに少なくとも6GBのRAMが必要です。接続されたプレーヤーの数が増えるにつれて、メモリ要件が増加します。Linuxでは、インストールを行わずに3.2GBのRAMを使用します。
上記のハードウェア構成でログイン0人のとき、CPU使用率15%、メモリ使用率60%ほど
2人ログインでCPU使用率40%、メモリ使用率は60%と変わりありませんでした。
建築物やテイムした恐竜が増えればそれだけメモリ使用率等も上がると思います。
ポートの開放
サーバーは、以下にリストされたポートで接続を待ち受けます。
ポート | 目的 | 補足 |
---|---|---|
UDP 27015 | スチームサーバーブラウザーのクエリーポート | 必須 |
UDP 7777 | ゲームクライアントポート | 必須? |
UDP 7778 | UDP Raw ポート(ゲームクライアントポート + 1) | (任意) |
TCP 27020 | RCON用のポート | (任意) |
ポートを開放し、設定を反映させます。
#firewall-cmd --permanent --add-port=27015/udp #firewall-cmd --permanent --add-port=7777/udp #firewall-cmd --reload
必要なライブラリのインストール
ARKサーバーのインストールはSteamCMDを使って行います。
64ビットLinuxサーバでは、steamcmdのインストール/実行に32ビットのバイナリが必要ですのでインストールします。
#yum install -y glibc.i686 libstdc++.i686
ファイルオープン数の上限を変更
サーバープログラムのファイルオープン数がデフォルト値を上回るみたいです
この変更をしないとゲームサーバーが正常に起動しない可能性があります。サーバーが起動しているように見えても、必要なファイルをすべて開くことができないことがあります。
まずOSのファイルオープン数を変更します。
#vim /etc/sysctl.conf
以下の行を追加します。
fs.file-max=100000
設定を反映させて、確認します。
2018/11/05 不要な改行を修正
#ulimit -n
1000000
#sysctl -p /etc/sysctl.conf fs.file-max = 100000 #ulimit -n 1000000
次に1プロセスのファイルオープン数を変更します。
#vim /etc/security/limits.conf
以下の内容を追加します。
* soft nofile 1000000 * hard nofile 1000000
※後述のsystemdを使用して専用サーバーを起動する場合は適用されません。そちらはsystemdの起動設定にて変更します。
SteamCMD、ARKのインストール
以下の設定でインストール設定を書きます。
設定名 | 値 |
---|---|
CentOSのユーザー名 | steam |
SteamCMDインストールディレクトリ | /home/steam/Steam |
ARKインストールディレクトリ | /home/steam/Steam/ark |
ユーザーの作成、ディレクトリの作成
#useradd steam #passwd steam #su - steam $mkdir Steam $mkdir Steam/ark
SteamCMDのダウンロードと起動
(2017/8/8 リンクミス修正)
$curl -sqL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz' | tar zxvf -
$cd Steam $curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - $./steamcmd.sh
Steam> と出てくるので以下のように入力
Steam> login anonymous Steam> force_install_dir ark Steam> app_update 376030 validate Steam> exit
上から、匿名ログイン、インストールディレクトリの指定、指定サーバーのインストール、終了
app_update 376030 validate を実行するとARKのダウンロードが始まります。
途中エラーで止まることがありますが、もう一度、app_update 376030 validateを実行すればいけました。
ここまでで、サーバー自体は起動できるようになります。
起動コマンドは↓です。下表の3つの部分を自分好みに書き換えてください。
$cd Steam/ark/ShooterGame/Binaries/Linux/ $./ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log
server_name | 表示されるサーバー名 |
join_password | ログインパスワード |
admin_password | 管理者パスワード |
2018/11/05 追記 コマンドのTheIslandの部分を変えるとマップを変えられる
今あるマップは以下
TheIsland
TheCenter
Ragnarok
ScorchedEarth_P
Aberration_P
サーバーを初めて実行するときは、自動でShooterGame / Savedという名前のフォルダーが作成されます。サーバーが少なくとも1回は実行されているが、このフォルダーが作成されていない場合は、そこに新しいフォルダーとファイルを作成できなかった可能性があります。サーバーがインストールされているフォルダーが、実際にサーバーを実行しているユーザーアカウントによって読み書き可能であることを確認します。
また、デフォルトでは、サーバーソフトウェアは15分ごとに世界のデータを自動的に保存するように設定されています。最初の15分が経過する前にサーバーが落ちた場合、データは保存されません。
ログイン方法
WindowsのSteamクライアントより
表示 - サーバーを選択
お気に入り - サーバーを追加 - IPの入力 - 追加
ゲームを起動して、サーバーフィルターでお気に入りを選択すると出てきます。
systemctlによる自動起動
サーバー再起動時、自動で起動するようにsystemctlに登録します。
まず起動設定ファイルを作ります。2018/11/05 スペルミス修正dedcated.service
#cd /etc/systemd/system/ #vim ark-dedicated.service
ファイルの内容を以下のようにします。
2018/11/05 ExecStartのPATHを修正
home/steam/Steam/ark/ShooterGameServer
[unit] Description=ARK: Survival Evolved dedicated server Wants=network-online.target After=syslog.target network.target nss-lookup.target network-online.target [Service] ExecStartPre=/home/steam/Steam/steamcmd.sh +login anonymous +force_install_dir ark +app_update 376030 +quit ExecStart=/home/steam/Steam/ark/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland?listen?SessionName=<server_name>?ServerPassword=<join_password>?ServerAdminPassword=<admin_password> -server -log LimitNOFILE=100000 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s INT $MAINPID User=steam Group=steam [Install] WantedBy=multi-user.target
個人の環境に合わせて変更する場合はここら辺です。
パラメータ | 内容 |
---|---|
ExecStartPre | 起動前に実行される処理 |
ExecStart | 起動処理 |
LimitNOFILE | 上限ファイルオープン数の指定 |
ExecReload | リロード時の処理 |
ExecStop | 停止時の処理 |
User | 起動するCentOSのユーザーを指定する |
Group | 起動するCentOSのグループを指定する |
設定を反映させる。
#systemctl daemon-reload
自動起動をONにする
#systemctl enable ark-dedicated.service
ARKの起動
#systemctl start ark-dedicated.service
ARKの停止
#systemclt stop ark-dedicated.service
※デフォルトでは、サーバーソフトウェアは15分ごとに世界のデータを自動的に保存するように設定されています。15分が経過する前にサーバーがクラッシュした場合、データは保存されません。
サーバーのアップデート
systemctlなら起動時にアップデートする・・はず
手動でのアップデートはsteamcmd.shのあるディレクトリでこの一行
$./steamcmd.sh +login anonymous +force_install_dir ark +app_update 376030 +quit
サーバーのバックアップ
ShooterGame/Savedにすべてのファイルがあるのでこれを保存しておく。
$cd Steam/ark/ShooterGame/ $zip -r backup.zip Saved