ブループリントインテグレーション

Unreal Engine のブループリントビジュアルスクリプティングシステムを使用して Multiplay Game Server SDK と統合する方法を示します。

Multiplay Game Server SDK は、以下のインターフェースと対話できます。

Multiplay Game Server SDK プラグインのインストール

先に進む前に、Multiplay Game Server SDK プラグインが正しくインストールされていることを確認します。

ノート: ブループリントからサブシステムにアクセスするには、以下が必要です。

  1. サブシステムが必要なブループリント内で C++ ヘッダー (.h) ファイルを見つけます。
  2. C++ ヘッダーファイルの一番上にサブシステムの include を加えます (#include "MultiplayGameServerSubsystem.h")。
  3. Visual Studio ソリューションを再度生成してビルドします。手順の説明については、SDK を含むプロジェクトのビルド を参照してください

Multiplay サーバー設定サブシステム

このサブシステムは、現在のセッションのサーバー設定を保持します。

このサブシステムはこの情報を、サブシステムの初期化時に server.json ファイルから取得します。

MultiplayServerConfigSubsystem ノードを配置し、Server Config 変数にアクセスすることで、サーバー設定を取得できます。

Server Config には以下の値があります。

  • サーバー ID
  • 割り当て ID
  • サーバークエリプロトコルのポート
  • セッションの接続ポート
  • ゲームサーバーがログファイルを保存するディレクトリ

Multiplay Game Server Subsystem

Multiplay Game Server Subsystem を使用すると、ゲームサーバーが割り当て済みになったときやゲームサーバーがプレイヤーを受け入れる準備ができたときなどのゲームサーバーイベントにサブスクライブ (および応答) できます。ゲームサーバーのライフサイクルサーバーの準備状況 を参照してください。

> ノート: Multiplay Game Server SDK は Unity のサーバークエリプロトコルの完全な実装を備えているため、ゲームサーバーは変数を入力するだけで済みます。サーバークエリプロトコル を参照してください。

MultiplayGameServerSubsystem のインスタンスを使用し、以下のブループリントを通じて Multiplay ゲームサーバーサブシステムと対話します。

SubscribeToServerEvents

MultiplayGameServerSubsystem のインスタンスを用意したら、Subscribe ブループリントを使用して OnAllocateReadyServerForPlayersUnreadyServerOnDeallocate などの Multiplay イベントにサブスクライブできます。

イベントにサブスクライブした後、ゲームサーバーは 割り当て を待機する必要があります。ゲームサーバーが割り当てられたときに通知されるようにするには、OnAllocate ブループリントを使用します。

OnAllocate

このブループリントは、ゲームアセットのロードや ReadyServerForPlayers によるバックフィルの開始など、プレイヤーがゲームマッチのゲームサーバーに参加する前に必要な設定ロジックを実行する機会として使用します。

プレイヤーにゲームサーバーへの参加を許可するための設定ロジックを実行したら、ReadyServerForPlayers ブループリントを使用して、ゲームサーバーがプレイヤーを受け入れる準備ができたことを Multiplay に通知できます。

ReadyServerForPlayers

このブループリントを使用して、ゲームサーバーがゲームマッチのプレイヤーを受け入れる準備ができたときに Multiplay に通知します。

どの時点であっても、ゲームマッチの状態が変化して新しいプレイヤーを受け入れたくなくなった場合は、UnreadyServer ブループリントを使用して、ゲームサーバーがプレイヤーを受け入れる準備ができなくなったことを Multiplay に通知します。

UnreadyServer

このブループリントを使用して、ゲームサーバーがプレイヤーを受け入れる準備ができなくなったことを Multiplay に通知します。

UnreadyServer ブループリントを使用するシナリオとしては、以下のような場合が考えられます。

  • ゲームマッチがほぼ完了した
  • ゲームマッチが完了した
  • ゲームサーバーがいっぱいになった

OnDeallocate

このブループリントを使用して、Multiplay がゲームサーバーを割り当て解除するときに通知します。OnDeallocate ブループリントは、ゲームサーバーがシャットダウンされる前に必要な土壇場のクリーンアップやブックキーピングを実行するための機会を提供します。

Multiplay Server Query Handler Subsystem

Multiplay Server Query Handler Subsystem を使用すると、ゲームサーバークエリプロトコルによって監視されるゲームサーバー変数を設定できます。この実装は SQP を使用します。サーバークエリプロトコル を参照してください。

UMultiplayServerCheckSubsystem を使用すると、以下のことができます。

設定ブループリント

以下の設定ブループリントを使用して、ゲームサーバークエリ値を設定します。SetCurrentPlayersSetMaxPlayersSetServerNameSetGameTypeSetBuildIdSetMapSetPort 設定ブループリントがあります。

SetCurrentPlayers

このブループリントを使用して、ゲームサーバーに接続しているプレイヤーの数を設定します。

SetMaxPlayers

このブループリントを使用して、ゲームサーバーに接続できるプレイヤーの最大数を設定します。

SetServerName

このブループリントを使用して、ゲームサーバーの現在の名前を設定します。

SetGameType

このブループリントを使用して、ゲームサーバーが実行しているゲームタイプを設定します。

SetBuildId

このブループリントを使用して、ゲームサーバーの現在のビルド ID を設定します。

SetMap

このブループリントを使用して、ゲームサーバーの現在のマップを設定します。

SetPort

このブループリントを使用して、ゲームサーバーの現在のポート番号を設定します。

これは、ゲームクライアントがゲームサーバーへの接続元として使用できるポート番号です。クエリポート番号とは別です。

これらの値はゲーム中に変化するので、継続的に更新するようにしてください。それにより、Multiplay はサーバーの実行中に確実にデータを収集および表示できるようになります。すべての値を設定した後で、Connect ブループリント を加えることができます。

Connect ブループリント

このブループリントを使用して、ゲームサーバーへの接続を確立します。アクセサーブループリント を使用するには、その前にゲームサーバーへの接続を確立する必要があります。

アクセサーブループリント

このブループリントを使用して、設定した値にアクセスします。GetCurrentPlayersGetMaxPlayersGetServerNameGetGameTypeGetBuildIdGetMapGetPort アクセサーブループリント があります。

GetCurrentPlayers

このブループリントを使用して、ゲームサーバーに接続している現在のプレイヤーの数を取得します。

GetMaxPlayers

このブループリントを使用して、ゲームサーバーに接続できるプレイヤーの最大数を取得します。

GetServerName

このブループリントを使用して、ゲームサーバーの現在の名前を取得します。

GetGameType

このブループリントを使用して、ゲームサーバーが実行しているゲームタイプを取得します。

GetBuildId

このブループリントを使用して、ゲームサーバーが実行しているビルドの ID を取得します。

GetMap

このブループリントを使用して、ゲームサーバーの現在のマップを取得します。

GetPort

このブループリントを使用して、ゲームサーバーの現在のポートを取得します。

これはゲームクライアントがゲームサーバーに接続するために使用するポートであり、クエリポートではありません。

Disconnect ブループリント

このブループリントを使用して、ゲームサーバーをシャットダウンする前にゲームサーバーから切断します。