LocalMultiplayerAgent を使用してプロセスモードでゲームサーバーを実行する方法
このチュートリアルでは、次の手順について説明します。- Wrapper サンプルを使用したビルドの作成
- MultiplayerSettings.json の構成
- LocalMultiplayerAgent の実行
- ゲーム接続のテスト
ゲームビルドの作成
LocalMultiplayerAgent (LMA) を使用してゲームサーバーをテストするには、ゲームビルドを作成し、アーカイブ形式で保存する必要があります。 より簡単にするために、手順と PowerShell スクリプトを含む Wrapper サンプルを提供しています。 次に、「wrapper アプリを使用して既存のゲームサーバーをラップする」の手順に従い、このチュートリアル用にゲームサーバーを準備します。MultiplayerSettings.json の構成
LMA ツールセットを解凍したフォルダーに移動し、MultiplayerSettings.json ファイルを開きます。このファイルは、MPS 上のビルドをシミュレートするビルド構成のモックファイルです。 LMA MultiplayerSettings.json Generator を使用して json を作成できます。 Generator は、選択したオプションに基づいて json を生成するシンプルな Web ページです。Generator は LMA の解凍済みフォルダー内にあります。 以下は、プロセスモードで LMA を実行するための Wrapper サンプル用 MultiplayerSettings.json の例です。-
LocalFilePath- 先ほど作成したゲームサーバーのアセット zip ファイルへのフル ローカル パス(ワークステーション上)。例: D:\MyAmazingGame\asset.zip(JSON フォーマットではバックスラッシュをエスケープする必要があることに注意してください)。 -
StartGameCommand- プロセスの StartGameCommand パスは相対パスです。作業ディレクトリはゲームアセットが解凍される場所となります。 -
PortMappingsList- 実行中のゲームで使用可能なポートです。-
NodePortはワークステーション上で開かれるポートです。 -
GamePort.Numberはプロセスモードでは必要ありません。ゲームサーバーの実行中に、GSDK 経由でポート番号が Node Port にバインドされます。実際のシナリオでは、MPS が各プロセスベースのゲームセッションごとに動的にポートをバインドします。 -
GamePort.Nameはゲームサーバーで定義したものと同じ値に設定してください。実行時に、キー GamePort.Name で GSDK 構成の値を確認できます。Wrapper サンプルを使用している場合、ポート名は既に “game_port” として定義されているので、ここでも同じ値を設定する必要があります。 -
GamePort.Protocol- プロトコル タイプを指定します: TCP または UDP
-
-
OutputFolder- 出力と構成ファイルが生成されるドライブまたはフォルダーへのパス。ゲームサーバーがこのパスの下に解凍されるため、十分な空き容量があることを確認してください。指定しない場合、agent フォルダーが使用されます。 -
AgentListeningPort- これは LMA がゲームサーバーと通信するためのポートです。空いているポートであれば何でも使えますが、デフォルト値は 56001 です。他のプロセスが 56001 にバインドされている場合は、この値を変更するか、ポート 56001 上の他のプロセスを終了する必要があります。 -
ResourceLimits- プロセスモードでは必要ありません。 -
MountPath- プロセスモードでは必要ありません。 -
SessionCookie(オプション) - RequestMultiplayerServer API 呼び出しの一部としてゲームサーバーに渡されるセッション Cookie。MPS の実際のシナリオでは、接続が確立された後、サーバーはクライアントに SessionCookie から対応するリソースを読み込むよう通知します。
LocalMultiplayerAgent の実行
これで LocalMultiplayerAgent を実行する準備ができました。- PowerShell ウィンドウで: LocalMultiplayerAgent.exe を含む LMA 配下のディレクトリに移動します。
-
LocalMultiplayerAgent.exeを実行します。 この時点で、LMA は http リスナーをセットアップし、ゲームアセットを解凍し、別プロセスとしてゲームサーバーを起動します。プロセスとしてゲームサーバーを実行している場合、指定した NodePort へのトラフィックを許可するかどうかを尋ねる Windows Firewall のポップアップが表示される場合があります。これを避けたい場合、LocalMultiplayerAgent を管理者モードで実行するか、ファイアウォールでポートを有効にすることができます。
CurrentGameState - Initializing(ゲームサーバーが GSDK::ReadyForPlayers を直接呼び出し、GSDK::Start を呼び出さない場合、これは表示されないことがあります)CurrentGameState - StandingByCurrentGameState - ActiveCurrentGameState - Terminating
