AMSローカルサーバーのテスト実行 - AccelByte Multiplayer Servers (AMS) を使用した専用サーバー - (Unityモジュール)
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Multiplayer Servers (AMS) サーバーをローカルでテストするために、AccelByteはAMS Simulatorと呼ばれるシミュレーターを提供しています。このシミュレーターは、AMSのWatchdogによって行われる専用サーバー (DS) の管理と監視プロセスをシミュレートします。このAMS Simulatorを使用することで、サーバービルドをAMSにアップロードせずにAMSの実装を検証できます。
Windows専用サーバーをパッケージ化する
ゲームサーバーを実行するには、Dedicated Serverプラットフォーム向けにプロジェクトをビルドする必要があります。ここでは、サーバーをローカルでテストするためにWindowsサーバービルドをパッケージ化する方法を説明します。
-
UnityでByte Warsを開きます。
-
File > Build Settingsに移動します。プラットフォームとしてDedicated Serverを選択し、Switch Platformボタンをクリックします。

-
起動引数を使用してAGS SDKの設定を変更できるようにし、サーバーログを確認できるようにDevelopment Buildを有効にしてから、Buildをクリックします。
-
パッケージビルドを保存するフォルダーを選択し、Select folderをクリックします。
-
サーバーのパッケージ化が完了するまで待ちます。
専用サーバーをローカルでテスト実行する
このセクションでは、パッケージ化したゲームサーバーをローカルでテストし、AMSのライフサイクル内での状態変化を処理できるかどうかを確認します。
-
Admin Portalにログインし、ゲームのネームスペースダッシュボードに移動します。
-
Multiplayer > Multiplayer Servers > Download Resourceに移動します。Windows用のAMS Simulatorを見つけてダウンロードします。amssim.exeファイルがダウンロードされます。
-
AMS Simulatorを実行する前に、シミュレーター用にByteWars-AMSSimという名前の新しいIAMクライアントを設定する必要があります。作成するには、サーバーとAMS CLI IAMを設定したときと同じ手順に従いますが、今回は以下の設定を使用する必要があります。
- AGS Public Cloud
- AGS Private Cloud
AMS Simulator IAMクライアントを作成する際は、Create OptionsフィールドでCreate from Templateオプションを選択します。次に、Select TemplateフィールドでDedicated Server Toolsオプションを選択します。このIAMクライアントテンプレートには、AMS Simulatorを使用するために必要な権限が含まれています。
AMS Simulator IAMクライアントを作成した後、以下の権限を追加します。
リソース 権限 NAMESPACE:{namespace}:AMS:LOCALDSCreate -
AMS Simulatorをダウンロードし、IAMクライアントを作成したら、Windows PowerShellを開き、以下のコマンドを実行してAMS Simulator実行ファイルを起動し、設定ファイルを生成します。
.\amssim.exe generate-config -
AMS Simulator実行ファイルと同じパスに
config.jsonが表示されます。テキストエディタでこのファイルを開き、以下の情報を使用して設定を入力します。ClientIDとClientSecretは、作成したByteWars-AMSSim IAMクライアントの情報に置き換えます。また、その他のプレースホルダー値は、ゲームのネームスペースとAGS環境に基づいて置き換えます。- AGS Public Cloud
- AGS Private Cloud
{
"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": 7778,
"ClaimKeys": [],
"ServerName": "Your Local Server Name"
}{
"WatchdogPort": 5555,
"AGSEnvironmentURL": "<studio_name>.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": 7778,
"ClaimKeys": [],
"ServerName": "Your Local Server Name"
}備考- WatchdogPortは、アプリが専用サーバーに接続するために使用するポートです。
- AGSEnvironmentURLは、ローカル専用サーバーを登録したい環境のURLで、
http://を含めません。 - IAMは、前の手順で作成したAMS Simulatorを認証するために使用する
ClientIDとClientSecretです。 - LocalDSHostとLocalDSPortは、それぞれローカル専用サーバーを実行するマシンのIPとポートで、プレイテスターがどこに接続すればよいかを認識するために使用します。
- ClaimKeysは、セッションサービスがローカル専用サーバーをクレームするために使用するクレームキーのリストを提供します。デフォルトでは、
ServerNameがクレームキーの1つとして登録されます。 - ServerNameは、ローカル専用サーバーに付けたい名前です。デフォルトでは、クレームキーの1つとして登録され、コンピューター名を使用して自動生成されますが、任意に変更できます。
ヒント- ゲームのネームスペースIDを見つけるには、Admin Portalに移動し、ゲームのネームスペースが一覧表示されているNamespaceページに移動します。次に、GAMESセクションで対象のゲームのネームスペースを見つけてgearアイコンをクリックします。新しいページでNamespace IDプロパティを見つけると、ゲームのネームスペースIDの値を確認できます。
ヒントLocalDSPortについては、自分のゲームを使用している場合、サーバーが異なるポートでリスニングしている可能性があることに注意してください。デフォルトでは、Byte Warsサーバーはポート
7778でリスニングします。このロジックは、ConnectionHandler.csクラス内のGetPort()関数にあります。 -
設定が完了したら、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
============================================================================================= -
Windows PowerShellで以下のコマンドを使用してゲームサーバー実行ファイルを実行します。前の手順の
ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6aをローカル専用サーバーIDとして使用していることに注目してください。また、パスをサーバービルドのByteWars.exeを指すように調整してください。.\ByteWars.exe -log -OverrideSDKConfig "{'DsId': 'ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a'}" -watchdog_url="ws://localhost:5555/watchdog"備考- -logはゲームサーバーのログを表示します。
- -OverrideSDKConfigは、
DsIdなどの設定パラメーターを注入するためのWindowsサーバー専用パラメーターです。 - DsIdは、サーバー識別子を定義するためのWindows Server専用パラメーターです。AMS Simulatorが提供するサンプルIDを使用できます。この場合、
ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6aです。サーバーがAMSでホストされている場合、AMSが特定のサーバーIDを提供し、コマンドパラメーター値に代入します。 - -watchdog_urlは、ゲームサーバーをAMSに接続するために使用されるURLとポートです。この例では、AMS SimulatorのデフォルトのIPとポートであるため、
ws://localhost:5555/watchdogを値として使用しています。AMS Simulatorの設定はconfig.jsonで変更できます。この起動パラメーターは、専用サーバーがAMSで起動される際にAMS側で自動的に入力されることに注意してください。
-
ゲームサーバーが実行されると、AMS SimulatorのWindows PowerShellタブに「DS Connected」というメッセージが表示され、ローカル専用サーバーがAMSに接続したことが通知されます。
amssim> DS Connected -
ds statusを実行して、AMS Simulatorを使用して専用サーバーのステータスを確認します。ゲームサーバーの登録が成功すると、以下のログが表示されます。DS StateがReadyに変更されていることに注目してください。ds statusAMS 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備考ダッシュボードのサイドバーメニューからMultiplayer > Multiplayer Servers > Development Servers > Local Serverを選択することで、Admin Portalからもローカル専用サーバーのステータスを確認できます。
-
ds claimコマンドを使用して、ゲームセッションが専用サーバーをクレームする様子をシミュレートすることもできます。DS StateがInSessionに変更されていることに注目してください。ds claimAMS 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 -
ds drainを実行することで、ゲームサーバーがドレイン状態を処理できるかどうかを確認することもできます。イベントを受信すると、ゲームサーバーはシャットダウンし、AMS Simulatorは以下のログを表示します。ds drainAMS Simulatorのログ:
amssim> ds status
no connected dedicated server -
AMS Simulatorを終了するには、以下のコマンドを実行します。
quit