profile picture

Ark Survival Ascended のサーバーを構築する

March 16, 2024 - game ark

概要

ark-survival-ascended-linux-container-image を使用して Ark Survival Ascended のサーバーを構築します。

前提条件

参考情報

サーバーの構築

Ark Survival Ascended のサーバーを構築します。

  1. サーバーに必要なフォルダを作成します。

    • steam-1
    • steamcmd-1
    • server-files-1
    • cluster-shared
  2. Docker Compose を参考に docker-compose.yaml を作成します。

    • asa-server-1 > environment > ASA_START_PARAMS でサーバーの設定を行います。
      • TheIsland_WP: マップ The Islandを指定します。
      • Port: ゲームポートを指定します。
      • RCONPort: RCON ポートを指定します。
      • RCONEnabled: RCON を有効にします。
      • SessionName: セッション名を指定します。
      • ServerPassword: サーバーのパスワードを指定します。
      • -WinLiveMaxPlayers: サーバー上で同時にプレイできるプレーヤーの最大数を指定します。
      • -culture: サーバーの出力言語を指定します。
      • -ClusterDirOverride: Cross-ARK Data Transfer のクロスサーバーストレージの場所を指定します。
    version: "3.3"
    services:
    asa-server-1:
      container_name: asa-server-1
      hostname: asa-server-1
      entrypoint: "/usr/bin/start_server"
      user: gameserver
      image: "mschnitzer/asa-linux-server:latest"
      environment:
        - ASA_START_PARAMS=TheIsland_WP?listen?Port=7777?RCONPort=27020?RCONEnabled=True?SessionName=MyPrivateArkServer?ServerPassword=mypassword -WinLiveMaxPlayers=16 -culture=ja -ClusterDirOverride="/home/gameserver/cluster-shared" #PUT clusterid=SECRET here to enable transfers
        - ENABLE_DEBUG=0
        - TZ=Asia/Tokyo
      ports:
        # Game port for player connections through the server browser
        - 0.0.0.0:7777:7777/udp
        # RCON port for remote server administration
        - 0.0.0.0:27020:27020/tcp
      depends_on:
        - set-permissions-1
      volumes:
        - ./steam-1:/home/gameserver/Steam:rw
        - ./steamcmd-1:/home/gameserver/steamcmd:rw
        - ./server-files-1:/home/gameserver/server-files:rw
        - ./cluster-shared:/home/gameserver/cluster-shared:rw
      networks:
      asa-network:
    set-permissions-1:
      entrypoint: "/bin/bash -c 'chown -R 25000:25000 /steam ; chown -R 25000:25000 /steamcmd ; chown -R 25000:25000 /server-files ; chown -R 25000:25000 /cluster-shared'"
      user: root
      image: "opensuse/leap"
      volumes:
        - ./steam-1:/steam:rw
        - ./steamcmd-1:/steamcmd:rw
        - ./server-files-1:/server-files:rw
        - ./cluster-shared:/cluster-shared:rw
    volumes:
      cluster-shared:
      steam-1:
      steamcmd-1:
      server-files-1:
    networks:
      asa-network:
        attachable: true
        driver: bridge
        driver_opts:
        com.docker.network.bridge.name: "asanet"
    

サーバーの起動/停止

サーバへ接続

クライアントからサーバーに接続します。

サーバーブラウザから接続

  1. ゲームを起動して ゲームに参加 を選択します。

  2. 非公式 のタブを選択します。

  3. プレイヤーサーバーを表示 にチェックを入れて、検索フィールドにセッション名を入力します。

    • サーバーにパスワードを設定した場合は パスワードありのサーバーを表示 にチェックを入れます。
  4. セッション名を選択し 開始 を選択します。

タイムアウトが発生してサーバーに接続できない場合は コンソールから接続 してみて下さい。

コンソールから接続

  1. ゲームを起動して ` キーを入力しコンソールを開きます。

  2. コンソールに次のコマンドを入力してサーバーに接続します。{ipaddress}、{port} は自分の環境に置き換えて下さい。

    open {ipaddress}:{port}
    

パスワードありのサーバーに入れない場合

パスワードありのサーバーに接続する際に、正しいパスワードを入力してもサーバーに入れない不具合があるようです。(2024/3 時点)

そのため、次の手順でパスワードありのサーバーに入る必要があります。

  1. サーバーブラウザから接続 を実施してサーバーに入ろうとするとパスワード入力ダイアログが表示されます。ここで正しいパスワードを入力します。

  2. もしサーバーに入れなかった場合は次に コンソールから接続 を実施すると問題なくサーバーに入れます。

サーバーの公開

Tunnel を構築して自宅サーバーを公開する方法 を参考にしてください。
次のように nginx を Ark Survival Ascended に読み替えてください。

Tunnel の構築

ファイアウォールの設定

Ark Survival Ascended 用のファイアウォールルールを作成します。

Tunnel の設定

自宅サーバーの公開