メインコンテンツまでスキップ

AMS フローをローカルでテスト実行する - AccelByte Multiplayer Servers (AMS) による専用サーバー - (Unreal Engine モジュール)

Last updated on July 14, 2026

注釈:本資料はAI技術を用いて翻訳されています。

はじめに

このチュートリアルでは、AMS Simulator を使用して、AccelByte Multiplayer Servers (AMS) 上のデディケートサーバーフローをローカルでテストする方法を学びます。AMS Simulator は、デディケートサーバーが AMS から発生する状態変化や予期しないイベントにどのように反応するかを検証するためのツールです。これにより、デディケートサーバーを実際にアップロードする前に、フローが正しく動作することを確認できます。

ローカルデディケートサーバーを実行する

Unreal Engine でローカルデディケートサーバーをテストする方法は 2 つあります。パッケージ化されたデディケートサーバーとして実行する方法と、エディタを使用してアンクックドサーバーを実行する方法です。パッケージ化されたデディケートサーバーは実行時のリソース消費が少ないですが、ビルドに時間がかかります。一方、エディタを使用する方法はリソース消費が多いですが、ビルド時間は短くなります。必要に応じていずれかの方法を選択してください。

デディケートサーバーをパッケージ化する

プロジェクトをコンパイルし、Unreal Engine エディタで開きます。次に、ゲームサーバーを Windows 向けにパッケージ化します。

備考

Unreal プロジェクトのパッケージ化について詳しくは、Packaging Projects を参照してください。

注記

このチュートリアルでは、デバッグ用にログを有効にするため Development ビルドを使用します。Shipping としてビルドするとログが無効になります。

アンクックドデディケートサーバーを実行する

次のコマンドを PowerShell で実行し、エディタでゲームサーバーを起動します。

& "<your_ue5_dir>\UnrealEditor.exe" "<your_project_dir>\AccelByteWars.uproject" -server

デディケートサーバーをローカルでテスト実行する

このセクションでは、パッケージ化したゲームサーバーをローカルでテストし、AMS のライフサイクル内での状態変化を処理できるかどうかを確認します。

  1. Admin Portal にログインし、ゲームネームスペースのダッシュボードに移動します。

  2. サイドバーメニューから Multiplayer > Multiplayer Servers > Download Resource を選択します。Windows 用の AMS Simulator を探してダウンロードします。amssim.exe ファイルがダウンロードされます。

    注記

    Download Resource が表示されず、代わりに Setup AMS Account が表示される場合は、AMS アカウントをセットアップする必要があります。これを行うには、AMS アカウントの作成および連携に関するハウツーガイドを参照してください。

  3. AMS Simulator を実行する前に、シミュレータ用の新しい IAM クライアント ByteWars-AMSSim をセットアップする必要があります。これを作成するには、サーバーおよび AMS CLI IAM をセットアップしたときと同じ手順に従いますが、今回は以下の設定を使用します。

    AMS Simulator の IAM クライアントを作成する際は、Create Options フィールドで Create from Template オプションを選択します。次に、Select Template フィールドで Dedicated Server Tools オプションを選択します。この IAM クライアントテンプレートには、AMS Simulator を使用するために必要な権限が含まれています。

  4. AMS Simulator をダウンロードし、IAM クライアントを作成したら、Windows PowerShell を開き、以下のコマンドで AMS Simulator の実行ファイルを実行して設定ファイルを生成します。

    .\amssim.exe generate-config
  5. AMS Simulator の実行ファイルと同じパスに config.json が生成されます。テキストエディタでこのファイルを開き、以下の情報で設定を入力します。ClientIDClientSecret は、作成した ByteWars-AMSSim IAM クライアントの情報に置き換えます。また、その他のプレースホルダー値は、ゲームネームスペースと AGS 環境に応じて置き換えてください。

    {
    "WatchdogPort": 5555,
    "AGSEnvironmentURL": "<game_namespace_id>.prod.gamingservices.accelbyte.io",
    "AGSNamespace": "<game_namespace_id>",
    "IAM": {
    "ClientID": "<ams_sim_iam_client_id>",
    "ClientSecret": "<ams_sim_iam_client_secret>"
    },
    "LocalDSHost": "127.0.0.1",
    "LocalDSPort": 7777,
    "ClaimKeys": [],
    "ServerName": "Your Local Server Name"
    }
    備考
    • WatchdogPort は、アプリがデディケートサーバーへの接続に使用するポートです。
    • AGSEnvironmentURL は、ローカルデディケートサーバーを登録する環境の URL です(http:// は含めません)。
    • IAM は、前の手順で作成した AMS Simulator を認証するために使用される ClientIDClientSecret です。
    • LocalDSHostLocalDSPort は、それぞれローカルデディケートサーバーを実行するマシンの IP とポートで、プレイテスターがどこに接続すればよいかを示します。
    • ClaimKeys は、セッションサービスがローカルデディケートサーバーをクレームする際に使用するクレームキーのリストを提供します。デフォルトでは、ServerName がクレームキーの1つとして登録されます。
    • ServerName は、ローカルデディケートサーバーに付ける名前です。デフォルトではクレームキーの1つとして登録され、コンピュータ名を使用して自動生成されますが、必要に応じて変更できます。
    ヒント
    • ゲームネームスペース ID を確認するには、Admin Portal に移動し、ゲームネームスペースが一覧表示されている Namespace ページに移動します。次に、GAMES セクションでゲームネームスペースを探し、gear アイコンをクリックします。新しいページで Namespace ID プロパティを確認すると、ゲームネームスペース ID の値が表示されます。
  6. 設定が完了したら、AMS Simulator の実行ファイルを実行します。

    .\amssim.exe run

    以下は AMS Simulator の出力です。ローカルデディケートサーバーの ID 形式の例が表示されていることに注意してください。この例では ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a です。次の手順で必要になるので、これをコピーしてください。

    AMS simulator url  ws://0.0.0.0:5555/watchdog
    AMS simulator session id: 01hfaxxvfqhe9gkk2zesfx0b66.
    AMS simulator session log path: session\01hfaxxvfqhe9gkk2zesfx0b66.log

    Ready to accept local DS

    Start the local DS with a valid DS ID that conforms to uuid standards
    An example that can be copied and pasted is:

    ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a

    ==================================Command list=================================================
    help show the command list again
    info show AMS simulator info
    ds
    status show status of the ds
    ready explicitly set ds into ready state.
    claim claim the ds for a game session.
    drain drain the ds
    exit, quit exit ams simulator
    =============================================================================================
  7. Windows PowerShell で以下のコマンドを使用して、ゲームサーバーの実行ファイル、または Unreal Editor を使用したアンクックドサーバーを実行します。前の手順で取得した ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a が、ローカルデディケートサーバー ID として使用されていることに注意してください。

    C:/WindowsServer/AccelByteWarsServer.exe -server -log -nosteam -dsid=ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a -watchdog_url="ws://localhost:5555/watchdog"
    備考
    • -log はゲームサーバーのログを表示します。
    • -nosteam はゲームサーバー側で Steam プラグインを実行しないようにするために使用します。
    • -server はゲームをサーバーとして実行するために使用します。
    • -dsid は、ゲームサーバーが AMS の設定を初期化する際に使用するデディケートサーバーの識別子です。AMS Simulator が提供する例の ID を使用できます。この例では ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a です。このデディケートサーバーが AMS で起動される場合、この起動パラメータは AMS 側で自動的に入力されることに注意してください。
    • -watchdog_url は、ゲームサーバーを AMS に接続するために使用される URL とポートです。この例では、AMS Simulator のデフォルトの IP とポートであるため ws://localhost:5555/watchdog を値として使用しています。AMS Simulator の設定は config.json で変更できます。このデディケートサーバーが AMS で起動される場合、この起動パラメータは AMS 側で自動的に入力されることに注意してください。
  8. ゲームサーバーが実行されたら、サーバーログを確認して、ローカルサーバーが AMS に接続されていることを確認します。以下は AMS ログの LogAccelByteAMS に表示される内容の例です。

    LogAccelByteAMS: Connecting to ws://localhost:5555/watchdog
    LogAccelByteAMS: Connected

    AMS Simulator からも接続が成功したことを確認できます。

    amssim> DS Connected
  9. ds status を実行して、AMS Simulator でデディケートサーバーのステータスを確認します。ゲームサーバーが正常に登録されると、以下のログが表示されます。DS StateReady に変わっていることに注目してください。

    ds status

    AMS Simulator は以下のログを表示します。

    amssim> ds status
    ID: xxxxx
    Connected at: 2023-XX-XX 10:00:00
    Last Heartbeat: 2023-XX-XX 10:00:00
    DS State: Ready
    備考

    ローカルデディケートサーバーのステータスは、Admin Portal のダッシュボードのサイドバーメニューから Multiplayer > Multiplayer Servers > Development Servers > Local Server を選択して確認することもできます。

  10. ローカルデディケートサーバーのログを確認するには、パッケージ化したプロジェクトの /Saved フォルダに移動します(この例では C:/WindowsServer/AccelByteWars/Saved/Logs/AccelByteWars.log)。以下のログ行が表示されていれば、サーバーは完全に初期化されています。

    // IAM へのログインに成功
    LogAccelByteOSS: Verbose: >>> FOnlineAsyncTaskAccelByteLoginServer::Initialize (AsyncTask method) was called.
    LogAccelByteOSS: Verbose: >>> FOnlineAsyncTaskAccelByteLoginServer::TriggerDelegates (AsyncTask method) was called. Args: bWasSuccessful: true

    // AMS に接続し、登録(ready メッセージを送信)
    LogAccelByteAMS: Connecting to ws://localhost:5555/watchdog
    LogAccelByteAMS: Connected
    LogAccelByteAMS: Send ready message to AMS
    {"ready":{"dsid":"testid"}}

    // DS Hub に接続
    LogAccelByteDSHub: Connecting to wss://demo.accelbyte.io/dshub/
    LogAccelByteDSHub: Connected
    LogAccelByteDSHub: New message received from DSHub:
    {"MessageID":"","Code":200,"topic":"","payload":{}}

    // ラッパーログ。サーバーが完全に初期化された
    LogMultiplayerDSEssentials: UMultiplayerDSEssentialsSubsystem_Starter::OnRegisterServerComplete succeeded: TRUE
    備考
    • DS log はパッケージ化したサーバーの Saved フォルダにあります。例: C:/WindowsServer/AccelByteWars/Saved/Logs/AccelByteWars.log
    • AMS Simulator Log<Your AMS Simulator Directory>/session フォルダにあります。
  11. 以下のコマンドを使用して、ゲームセッションがデディケートサーバーをクレームする様子をシミュレートすることもできます。DS StateInSession に変わっていることに注目してください。

    ds claim

    AMS Simulator は以下のログを表示します。

    amssim> ds status
    ID: xxxxx
    Connected at: 2023-XX-XX 10:00:00
    Last Heartbeat: 2023-XX-XX 10:00:00
    DS State: InSession
  12. ds drain を実行することで、ゲームサーバーがドレイン状態を処理できるかどうかも確認できます。以下のログ行が表示されれば、サーバーはドレイン状態を正常に処理できています。DS StateDraining に変わっていることに注目してください。

    ds drain

    AMS Simulator は以下のログを表示します。

    amssim> ds status
    no connected dedicated server

    ゲームサーバーのログには以下が表示され、その後サーバーがシャットダウンします。

    LogMultiplayerDSEssentials: Received AMS drain message; Shutting down the server now!
  13. AMS Simulator を終了するには、以下のコマンドを実行します。

    quit

参考情報