アプリケーションとロビーの統計
Photon Serverはアプリケーションとロビー統計をクライアントにブロードキャストできます。 このデータを利用して、複雑なカスタムマッチメイキングシステムの実装が可能です。 またゲーム内でこれらの統計情報を表示して、ゲームの人気をアピールすることもできます。
アプリケーションの統計
Photonマスターサーバに接続すると、Photonクライアントはアプリケーションの統計を受信します。 クライアントがロビーに参加しているかどうかに関わらず、クライアントはAppStatsイベントを受信します。 アプリケーションの統計はリージョンごとです。
アプリケーションの統計には以下が含まれます:
稼働しているルーム数:
ルームに参加していないプレイヤー数:
ルーム内のプレイヤー数::
接続しているプレイヤーの合計数::
AppStatsイベントは、クライアントに5秒ごとに送信されます。
ネイティブ C++ SDKでは
Listener
クラスが常にコールバックを提供するため、統計が最新の状態にアップデートされていることが分かります:virtual void onAppStatsUpdate(void) {}
ロビーの統計
ロビーの統計は、複数のロビーを使用するゲームでアクティビティを表示したい場合に役立ちます。
ロビーの型(名前と型)ごとに以下の情報を取得できます:
- 稼動しているルーム数
- ロビーに参加しているプレイヤーの合計数、またはロビーのルームに参加しているプレイヤーの合計数
ロビーの統計を自動的に取得
ロビー統計イベントは、クライアントがマスターサーバーに認証されるとすぐに送信されます。 その後、これらのイベントは毎分送信されます。 ロビー統計イベントは、デフォルトでは有効化されていません。
C#
接続前にロビーの統計を有効化するには::
loadBalancingClient.EnableLobbyStatistics = true;
統計は
ILobbyCallbacks.OnLobbyStatisticsUpdate
コールバックから取得してください。このコールバックはUIのアップデートにも活用できます。C++
ロビーの統計を有効化するには、 クラス
Client
のコンストラクターへのパラメータautoLobbyStats
にtrueを渡す必要があります:Client(LoadBalancing::Listener& listener, const Common::JString& applicationID, const Common::JString& appVersion, nByte connectionProtocol=Photon::ConnectionProtocol::DEFAULT, bool autoLobbyStats=false, nByte regionSelectionMode=RegionSelectionMode::DEFAULT);
Listener
クラスは、ロビー統計イベントを受信すると常に以下のオプションのコールバックを提供します(有効化されている場合)::virtual void onLobbyStatsUpdate(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
明示的にロビーの統計を取得
ルームに参加していない場合、オペレーションコールを使用して明示的にロビーの統計をリクエストできます:
C#
この機能は、現在実装されていません。
C++
Client::opLobbyStats()
Listener
クラスは、レスポンスを受信すると以下のオプションのコールバックを提供します:virtual void onLobbyStatsResponse(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
Photon Serverの設定
LobbyStatsイベントをクライアントに送信する頻度を設定できます。 設定するには、Photonマスターサーバーアプリケーションの設定ファイル内の「LobbyStatsPublishInterval」の値を変更します。 使用される単位は秒です。
オプションで、サーバーから返される統計に上限数を設定することも可能です。 設定するには、Photonマスターサーバーアプリケーションの設定ファイル内の「LobbyStatsLimit」の値を変更します。 設定されていない場合や、ゼロに設定されている場合には上限数は設定されません。他の正の整数によってロビーの最大許容数が設定されます。