ARK: Survival Evolved Dedicated Server
以下のDockerイメージを使う。
docker-compose.yml
イメージのタグは適宜最新のものに更新する。
version: '3.8'services:ark:image: hermsi/ark-server:tools-1.6.61arestart: alwaysvolumes:- ./ark-server:/app- ./ark-server-backups:/home/steam/ARK-Backupsenvironment:- SESSION_NAME=${SESSION_NAME}- SERVER_MAP=${SERVER_MAP}- SERVER_PASSWORD=${SERVER_PASSWORD}- ADMIN_PASSWORD=${ADMIN_PASSWORD}- MAX_PLAYERS=${MAX_PLAYERS}- UPDATE_ON_START=${UPDATE_ON_START}- BACKUP_ON_STOP=${BACKUP_ON_STOP}- PRE_UPDATE_BACKUP=${PRE_UPDATE_BACKUP}- WARN_ON_STOP=${WARN_ON_STOP}ports:# Port for connections from ARK game client- "0.0.0.0:7777:7777/udp"# Raw UDP socket port (always Game client port +1)- "0.0.0.0:7778:7778/udp"# RCON management port- "127.0.0.1:27020:27020/tcp"# Steam's server-list port- "0.0.0.0:27015:27015/udp"
.env
SESSION_NAME=my-ark-session-nameSERVER_MAP=TheIslandSERVER_PASSWORD=myserverpaswordADMIN_PASSWORD=myadminpasswordMAX_PLAYERS=10UPDATE_ON_START=falseBACKUP_ON_STOP=falsePRE_UPDATE_BACKUP=trueWARN_ON_STOP=true
ポート公開
詳細は調査中。
- 7777
- 7778
- 27015
サーバスペック
おそらく主にはスポーン済みの恐竜の数でメモリ消費量が増える。
テイムした恐竜を拠点周りなどにたくさん出したままにしておくと、メモリ使用量が増えてサーバーが重くなる。
テイム数ほぼ0で物理メモリ2GB程度、テイム数20-30程度で物理メモリ5GB程度。 テイム数(出しっぱなし)もあまり増えすぎると影響しそう。 スポーンシステムに詳しくないのでよくわからないが、主には探索範囲が広がるにつれてスポーン済み恐竜の数が増えて物理メモリ使用量が増えると思われる。
ゲーム設定
サーバ起動後、ark-server
ディレクトリには、ほかのゲームファイルと一緒にGameUserSettings.ini
とGame.ini
が生成される。
デフォルト設定で遊ぶと、とても時間のかかるゲーム(リアル時間丸一日拘束されたりとかの認識)なので、サーバー利用者と相談して適宜ゲームバランスを調整するのがよい。
設定の変更には、サーバーの再起動が必要なので、再起動時にはサーバー利用者に告知して、安全な場所でログアウトできるように余裕をもって再起動するようにする。
自分のサーバーでは、以下のシングルプレイ用設定をベースに、ゆるめの設定にしている。
設定一覧は、以下を参考にするとよい。
- https://ark.fandom.com/ja/wiki/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E6%88%90
- https://wikiwiki.jp/arkse/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%AD%E5%AE%9A
- DifficultyOffset: https://ark.fandom.com/ja/wiki/%E9%9B%A3%E6%98%93%E5%BA%A6
- Lv上限: https://wikiwiki.jp/arkse-ps4/%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F#u4288cfd
GameUserSettings.ini
[ServerSettings]; (略)TamingSpeedMultiplier=20.0serverPVE=TrueDifficultyOffset=1.0OverrideOfficialDifficulty=5.0ShowFloatingDamageText=TrueResourcesRespawnPeriodMultiplier=0.1NightTimeSpeedScale=30.0PlayerCharacterWaterDrainMultiplier=0.3PlayerCharacterFoodDrainMultiplier=0.3MaxGateFrameOnSaddles=10AllowFlyerCarryPvE=TrueXPMultiplier=3.0; (略)
Game.ini
[/script/shootergame.shootergamemode]MatingIntervalMultiplier=0.01EggHatchSpeedMultiplier=60.0BabyMatureSpeedMultiplier=60.0BabyImprintAmountMultiplier=60.0BabyCuddleIntervalMultiplier=0.01bDisableStructurePlacementCollision=TruebPvEDisableFriendlyFire=True
ゲームバージョンアップデート
調査中。
ゲームクライアントからの接続
サーバー参加者には、SESSION_NAME
とSERVER_PASSWORD
を伝える。
- ゲーム起動後、「サーバー検索」を開く
- セッションフィルターを「非公式」に設定
- 「パスワードありを表示」にチェックを入れる
- ネームフィルターにセッション名
SESSION_NAME
を入力 - 接続時にパスワード
SERVER_PASSWORD
を入力
RCONによる管理コマンド実行
- RCONのDockerイメージ: https://hub.docker.com/r/aoirint/rcon
- RCONのリポジトリ: https://github.com/n0la/rcon
Makefile
include .env.PHONY: list-playerslist-players:docker run --rm --network host aoirint/rcon:20220806.1 rcon -H 127.0.0.1 -p 27020 -P "${ADMIN_PASSWORD}" --minecraft ListPlayers
ゲーム内での管理コマンド実行
ゲーム画面でTabキーを押すとコマンドを入力できる。もう1度Tabキーを押すとコマンドのログを確認できる。
コマンドの実行にはADMIN_PASSWORD
が必要。
EnableCheats ADMIN_PASSWORDSetCheatPlayer true
作業後、
SetCheatPlayer false
EnableCheatsによる管理者への昇格(チャット欄で名前の前に星が付く)は、一度サーバーからログアウトすると元に戻る。
Tabキーで表示されるコマンドのログでパスワードはマスクされることはないので、録画や配信時は注意する。
TribeIDを調べる
SetCheatPlayer true
実行後、トライブの建造物や恐竜にフォーカスするとTribeIDが表示される。