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ボタンをクリックします。

-
Development Buildを有効にして、起動引数を使用してAGS SDK設定を変更できるようにし、サーバーログを表示できるようにしてから、Buildをクリックします。
-
パッケージビルドを保存するフォルダーを選択し、Select folderをクリックします。
-
サーバーのパッケージ化が完了するまで待ちます。
専用サーバーのローカルテスト実行
このセクションでは、パッケージ化されたゲームサーバーをローカルでテストし、AMSのライフサイクル内での状態変更を処理できるかどうかを確認します。
-
Admin Portalにログインし、ゲームネームスペースダッシュボードに移動します。
-
Multiplayer Server Configuration > Download Resourceに移動します。Windows用のAMS Simulatorを見つけてダウンロードします。amssim.exeファイルがダウンロードされます。
-
AMS Simulatorを実行する前に、ByteWars-AMSSimという名前のシミュレーター用の新しいIAMクライアントを設定する必要があります。作成するには、サーバーとAMS CLI IAMを設定したときと同じ手順に従いますが、今回は以下の設定を使用する必要があります。
- AGS Shared Cloud
- AGS Private Cloud
AMS Simulator IAMクライアントを作成する際、Create OptionsフィールドでCreate from Templateオプションを選択します。次に、Select TemplateフィールドでDedicated Server Toolsオプションを選択します。このIAMクライアントテンプレートには、AMS Simulatorを使用するために必要な権限があります。
AMS Simulator IAMクライアントを作成した後、以下の権限を追加します。
Resource Permission 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 Shared 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セクションでゲームネームスペースを見つけ、歯車アイコンをクリックします。新しいページで、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サーバー専用のパラメーターです。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備考Admin Portalからローカル専用サーバーのステータスを確認することもできます。ダッシュボードのサイドバーメニューに移動し、Multiplayer Server Configuration > Development Servers > Local Serverを選択してください。
-
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