This document is about: SERVER 4
SWITCH TO

アプリケーションとロビーの統計

Photon Serverはアプリケーションとロビー統計をクライアントにブロードキャストできます。
このデータを利用して、複雑なカスタムマッチメイキングシステムの実装が可能です。
またゲーム内でこれらの統計情報を表示して、ゲームの人気をアピールすることもできます。

アプリケーションの統計

Photonマスターサーバに接続すると、Photonクライアントはアプリケーションの統計を受信します。
クライアントがロビーに参加しているかどうかに関わらず、クライアントはAppStatsイベントを受信します。
アプリケーションの統計はリージョンごとです。

アプリケーションの統計には以下が含まれます:

  • 稼働しているルーム数:

    C#

    loadBalancingClient.RoomsCount
    

    C++

    Client::getCountGamesRunning()
    
  • ルームに参加していないプレイヤー数:

    C#

    loadBalancingClient.PlayersOnMasterCount
    

    C++

    Client::getCountPlayersOnline() - Client::getCountPlayersIngame()
    
  • ルーム内のプレイヤー数::

    C#

    loadBalancingClient.PlayersInRoomsCount
    

    C++

    Client::getCountPlayersIngame()
    
  • 接続しているプレイヤーの合計数::

    C#

    loadBalancingClient.PlayersOnMasterCount + loadBalancingClient.PlayersInRoomsCount
    

    C++

    Client::getCountPlayersOnline()
    

    AppStatsイベントは、クライアントに5秒ごとに送信されます。

    ネイティブ C++ SDKでは Listener クラスが常にコールバックを提供するため、統計が最新の状態にアップデートされていることが分かります:

    C++

    virtual void onAppStatsUpdate(void) {}
    

ロビーの統計

ロビーの統計は、複数のロビーを使用するゲームでアクティビティを表示したい場合に役立ちます。

ロビーの型(名前と型)ごとに以下の情報を取得できます:

  • 稼動しているルーム数
  • ロビーに参加しているプレイヤーの合計数、またはロビーのルームに参加しているプレイヤーの合計数

ロビーの統計を自動的に取得

ロビー統計イベントは、クライアントがマスターサーバーに認証されるとすぐに送信されます。
その後、これらのイベントは毎分送信されます。
ロビー統計イベントは、デフォルトでは有効化されていません。

  • C#

    接続前にロビーの統計を有効化するには::

    C#

    loadBalancingClient.EnableLobbyStatistics = true;
    

    統計はILobbyCallbacks.OnLobbyStatisticsUpdateコールバックから取得してください。このコールバックはUIのアップデートにも活用できます。

  • C++

    ロビーの統計を有効化するには、 クラスClientのコンストラクターへのパラメータ autoLobbyStats にtrueを渡す必要があります:

    C++

    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 クラスは、ロビー統計イベントを受信すると常に以下のオプションのコールバックを提供します(有効化されている場合)::

    C++

    virtual void onLobbyStatsUpdate(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
    

明示的にロビーの統計を取得

ルームに参加していない場合、オペレーションコールを使用して明示的にロビーの統計をリクエストできます:

  • C#

    この機能は、現在実装されていません。

  • C++

    C++

    Client::opLobbyStats()
    

    Listenerクラスは、レスポンスを受信すると以下のオプションのコールバックを提供します:

    C++

    virtual void onLobbyStatsResponse(const Common::JVector<LobbyStatsResponse>& lobbyStats) {}
    

Photon Serverの設定

LobbyStatsイベントをクライアントに送信する頻度を設定できます。
設定するには、Photonマスターサーバーアプリケーションの設定ファイル内の「LobbyStatsPublishInterval」の値を変更します。
使用される単位は秒です。

XML

<Photon.LoadBalancing.MasterServer.MasterServerSettings>
    <setting name="LobbyStatsPublishInterval" serializeAs="String">
        <value>120</value>
    </setting>
</Photon.LoadBalancing.MasterServer.MasterServerSettings>

オプションで、サーバーから返される統計に上限数を設定することも可能です。
設定するには、Photonマスターサーバーアプリケーションの設定ファイル内の「LobbyStatsLimit」の値を変更します。
設定されていない場合や、ゼロに設定されている場合には上限数は設定されません。他の正の整数によってロビーの最大許容数が設定されます。

XML

<Photon.LoadBalancing.MasterServer.MasterServerSettings>
    <setting name="LobbyStatsLimit" serializeAs="String">
        <value>0</value>
    </setting>
</Photon.LoadBalancing.MasterServer.MasterServerSettings>
Back to top