AMS Simulatorを使用したローカルAMSサーバーのテスト実行 - ゲームサーバー統合 - (Unreal Engineモジュール)
注釈:本資料は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のライフサイクル内での状態変更を処理できるかどうかを確認します。
-
Admin Portalにログインし、ゲームのネームスペースダッシュボードに移動します。
-
サイドバーメニューから、Multiplayer Server Configuration > Download Resourceを選択します。Windows用のAMS Simulatorを見つけてダウンロードします。amssim.exeファイルがダウンロードされます。
-
ダウンロードが完了したら、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で以下のコマンドを使用して、ゲームサーバー実行可能ファイルまたはUnreal Editorを使用したアンクックサーバーを実行します。前のステップの
ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6aをローカル専用サーバーIDとして使用していることに注意してください。- Packaged
- Uncooked
C:/WindowsServer/AccelByteWarsServer.exe -server -log -nosteam -dsid=ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a& "<your_ue5_dir>\UnrealEditor.exe" "<your_project_dir>\AccelByteWars.uproject" -server -log -nosteam -dsid=ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6a備考- -logはゲームサーバーのログを表示します。
- -nosteamはゲームサーバー側でSteamプラグインを実行しないために使用されます。
- -serverはゲームをサーバーとして実行するために使用されます。
- -dsidは、ゲームサーバーがAMS設定を初期化するために使用する専用サーバー識別子です。AMS Simulatorによって提供される例のIDを使用できます。この例は
ds_018c1f42-5eb6-7ca3-9650-a732ed75ce6aです。この起動パラメータは、この専用サーバーがAMSで起動されるときにAMS側で自動的に入力されることに注意してください。
-
ゲームサーバーが実行されたら、サーバーログを確認して、ローカルサーバーがAMS Simulatorに接続されていることを確認します。AMSログの
LogAccelByteAMSの下に以下のように表示されます:LogAccelByteAMS: Connecting to ws://localhost:5555/watchdog
LogAccelByteAMS: ConnectedAMS Simulatorからも接続の成功を確認できます。
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 -
ds drainを実行して、ゲームサーバーがドレイン状態を処理できるかどうかを確認することもできます。以下のログ行が表示される場合、サーバーはドレイン状態を正常に処理しています。DS StateがDrainingに変更されていることに注意してください。ds drainAMS Simulatorは以下のログを表示します:
amssim> ds status
no connected dedicated serverゲームサーバーログには以下が表示され、その後サーバーがシャットダウンします。
LogMultiplayerDSEssentials: Received AMS drain message; Shutting down the server now! -
AMS Simulatorを終了するには、次のコマンドを実行します:
quit