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

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

Last updated on February 4, 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. サイドバーメニューから AccelByte Multiplayer Servers > Download Resource を選択します。Windows 用の AMS Simulator を見つけてダウンロードします。amssim.exe ファイルがダウンロードされます。

    注記

    Download Resource が表示されず、代わりに Setup AMS Account が表示される場合は、AMS アカウントを設定する必要があります。これを行うには、AMS アカウントの作成リンクに関するハウツーガイドに従ってください。

  3. AMS Simulator を実行する前に、ByteWars-AMSSim というシミュレータ用の新しい IAM クライアントを設定する必要があります。作成するには、サーバーと 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 セクションでゲーム名前空間を見つけ、歯車アイコンをクリックします。新しいページで、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. AMS Simulator を使用して ds status を実行し、専用サーバーのステータスを確認します。ゲームサーバーが正常に登録されると、以下のログが表示されます。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 からローカル専用サーバーのステータスを確認することもできます。ダッシュボードのサイドバーメニューに移動し、AccelByte Multiplayer 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 ログは、パッケージ化されたサーバーの Saved フォルダにあります。例: C:/WindowsServer/AccelByteWars/Saved/Logs/AccelByteWars.log
    • AMS Simulator ログは、<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

参考資料