PlayFab でのマルチプレイヤー
マルチプレイヤーは多くのタイトルに追加される優れた機能であり、PlayFab にはマルチプレイヤー シナリオに重点を置いたいくつかのサービスが用意されています。
サービス | 説明 |
---|---|
ランキング | 統計とランキングを使用してプレイヤーのアクティビティを追跡し、応答します。 |
エンティティ グループ | プレイヤーの永続的または一時的なグループを作成し、アクティビティを通知します。 |
ロビー | ゲーム前またはマッチメイキング後のグループ間でゲームプレイをコーディネートするためのロビーを作成します。 |
Matchmaking | カスタム マッチメイキング ルールをデプロイしてプレイヤーをすばやくグループ化する |
パーティー | ネットワーキングとアクセシビリティの高いゲーム内チャットでプレイヤーを接続する |
サーバー | Azure でカスタム マルチプレイヤー サーバーを動的に拡張する |
タイトルではこれらのすべてのサービスを組み合わせて使用できますが、個別に使用することもできます。これは非常に一般的です。 たとえば、タイトルでは PlayFab マッチメイキングを使用するが、代替のマルチプレイヤー サーバー ホスティング ソリューションからサーバーを割り当てる場合があります。 または、ゲームではホストに PlayFab マルチプレイヤー サーバーを使用するものの、独自のマッチメイキング システムを使用してプレイヤーをまとめる場合があります。
さまざまな ID ドメイン (たとえば、カスタム ID システムと対話する Steam プレイヤーとやり取りするプレイヤー Xbox Liveなど) からプレイヤーとやり取りするプレイヤーと、ネットワーク間エクスペリエンスを構築するゲームが増えています。 PlayFab のサービスは、クロスプログレッションとクロスネットワーク プレイをサポートするように設計されています。
マルチプレイヤー シナリオの例
PlayFab は、さまざまなマルチプレイヤー モードをサポートするように設計されています。 1 つの非常に高度なタイトルに統合される可能性があるモードの一覧を次に示します。 このセクションでは、PlayFab サービスを使用してこれらのエクスペリエンスを実装する方法を簡単に提案します。
ゲーム モード | プレイヤーの最大数 | ランキング | マッチメイキング | バックフィル | フレンドを招待 | 未承諾の途中参加 | チャット | サーバー モデル |
---|---|---|---|---|---|---|---|---|
シングル プレイヤー キャンペーン | 1 | はい | いいえ | いいえ | いいえ | いいえ | いいえ | いいえ |
協力型キャンペーン | 4 | はい | いいえ | いいえ | はい | はい | はい | P2P |
ゲーム内パーティー | 8 | いいえ | いいえ | いいえ | はい | はい | はい | P2P |
カジュアルな小さなセッション | 8 | はい | はい | はい | はい | はい | はい | P2P |
カジュアルな大きなセッション | 32 | はい | はい | はい | はい | はい | はい | クラウド サーバー |
競合する小規模セッション | 8 | はい | はい | いいえ | はい | いいえ | はい | クラウド サーバー |
競合する大規模セッション | 32 | はい | はい | いいえ | はい | いいえ | はい | クラウド サーバー |
ランキングとプレイヤー データ
ゲーム内ランキングは、次の場合に使用できます。
- プレイヤーの結果を保存して、ゲーム内リワードやその他のゲームプレイ動作をトリガーする
- マッチメイキング入力としてプレイヤーの結果を格納してランク付けする
- ユーザーがランキングを参照し、比較パフォーマンスを理解できるゲーム内ランキング エクスペリエンスを作成する
ランキングでは、シングルプレイヤー モードとマルチプレイヤー モードの両方を強化できます。 たとえば、キャンペーン ランキングではプレイヤーが収集した特別なアイテムの数を追跡し、マルチプレイヤー ランキングではプレイヤーとプレイヤーの競争力の勝利を追跡できます。 PlayFab ランキングは、これらのエクスペリエンスを強化し、プレイヤーの統計情報を追跡し、その統計情報を使用してプレイヤーをランク付けするために構築されています。
プレイヤーの結果を他のプレイヤーと広く共有する必要がない場合は、プレイヤーに関連付けられた PlayFab エンティティ データがこのデータを格納するのに適している可能性があります。 PlayFab のエンティティ システムの利点は、プレイヤーのアクティビティやその他のデータのネットワーク間の進行状況を複数のアカウントで追跡できることです。 PlayFab ランキングとデータの両方に対する変更は、カスタム CloudScript をトリガーできる PlayStream イベントを発生させます。 これにより、プレイヤーのアクティビティに対する応答を高度にリアルタイムでカスタマイズできます。
該当するサービス:
ゲーム内パーティーと未承諾の途中参加
プレイヤーは多くの場合、適切なゲームプレイの外側で同情的であり、タイトルはゲーム内のギルドやパーティーのエクスペリエンスを通じてこれをサポートする場合があります。 PlayFab エンティティ グループと PlayFab パーティーは、これらのシナリオを念頭に置いて設計されています。
PlayFab エンティティ グループは、次の目的で作成できます。
- プレイヤーが、自分のフォロワーとステータスを共有する
- プレイヤーが、存続期間が長い (数ヶ月または数日) ギルドを作成する
- プレイヤーが、存続期間が短い (数時間未満) ギルドを作成する
PlayFab エンティティ グループには、アクセスを制御するための組み込みのフローがあり、グループのリーダーからグループへのアクセスを要求するプレイヤーがあります。 グループは任意のファイル データに関連付けることができるため、プレイヤーがメッセージを共有したり、他の永続的なコンテンツを共有スペースに投稿したりできます。
シグナル通知やその他の低速データ共有にはエンティティ グループを使用できますが、PlayFab パーティーはリアルタイムのデータ転送とチャットに最適です。 PlayFab エンティティ グループの一般的な使用方法には、プレイヤーが PlayFab パーティー ネットワーク記述子または PlayFab マルチプレイヤー サーバー セッションの詳細をグループのデータ ストレージに格納することが含まれます。 このセッション情報の共有により、プレイヤーは友人のセッションに一方的に参加できます。 リアルタイム通信またはゲーム ホスティングに PlayFab 以外のサービスを使用している場合、通常、これらのシステムには、エンティティ グループを使用してプレイヤー間で同様に通知できる識別情報があります。
PlayFab エンティティ グループには、プレイヤーにエンティティ オブジェクトの変更を通知するためのプッシュ通知システムがなく、更新を維持するためにサービスをポーリングする必要があります。 プラットフォームには、トーストを起動する組み込みの招待システムとプレゼンス システムが用意されており、その他の有益なエクスペリエンス (プレイヤー プロファイル カードからの途中参加) があり、必要に応じて統合を検討する必要があります。
マッチメイキングとバックフィル
プレイヤーは、知らない新しいユーザーと一緒にプレイしたい場合があり、バランスの取れた匿名マッチメイキング エクスペリエンスは多くのマルチプレイヤー ゲームで重要です。 PlayFab マッチメイキングは、カスタマイズしたルールを使用してプレイヤーをすばやく集められるように設計されています。
プレイヤーまたはプレイヤー グループが一緒にプレイしたいときは、1 人のプレイヤーが自分自身またはグループ全体のためにチケットを作成します。 PlayFab マッチメイキングを使用すると、グループ内のすべてのプレイヤーが一緒にマッチすることに同意することを保証する参加フローを使用して、ユーザーをチームとして一緒にマッチメイキングに送信できます。 このサービスではバックフィル チケットも使用できます。バックフィル チケットを使用して、ゲーム途中で退出するプレイヤーを置き換えることができます。 途中参加とバックフィル機能は、カジュアル なゲーム セッションを可能な限りいっぱいに保つための便利なメカニズムです。
PlayFab マッチメイキングは PlayFab マルチプレイヤー サーバーと統合されており、完了したチケットのサーバー割り当てを簡素化し、マッチ のセキュリティを向上させます。 また、PlayFab マッチメイキング チケットは、CloudScript をトリガーできる PlayStream イベントを起動します。これは、独自のマルチプレイヤー システムとマッチメイキングを統合するのに役立ちます。
チャット
PlayFab パーティーは、最大 32 人のプレイヤーのソーシャルまたはゲームプレイ エクスペリエンスにリアルタイムの音声およびテキスト チャットを追加するために使用されます。 PlayFab パーティーを使用すると、複数のネットワークでプレイヤーのプレゼンスを同時に有効にし、各ネットワークに対してカスタマイズされたミュート ルールを使用できます。 これにより、チャネルと複雑なチャット関係を柔軟に実装できます。
パーティーでは、Azure Cognitive Services を利用してプレイヤーのボイス チャットをテキストに変換したり、テキストを音声として合成できます。 この機能にはいくつかの用途がありますが、主にアクセシビリティの補助として設計されました。 パーティーは、プレイヤー チャットのトランスクリプションを作成するだけでなく、チャットのリアルタイム翻訳も行います。 匿名マッチメイキングと国際競技ゲームでは、これらのトランスクリプションおよび翻訳機能がより魅力的なマルチプレイヤー エクスペリエンスの実現に大いに役立ちます。
ゲームのホスティング
リアルタイム マルチプレイヤー ゲームでは、通常、特定のプレイヤー デバイスを選択してゲームの状態 ("ピア ツー ピア" とも呼ばれます) をホストするか、専用のマルチプレイヤー サーバーを使用します。 プレイヤー デバイスでゲームをホストする場合、PlayFab パーティーは、セッションの参加者間でこのゲームの状態を同期するための理想的な低待機時間のデバイス間ネットワーク システムです。
デバイス数が増えると、ピア ツー ピア ゲームをスケーリングするのは困難です。 PlayFab パーティーはネットワーク暗号化を提供し、リレーを使用してプレイヤーの IP アドレスを保護しますが、デバイスをホストとして動作させると、不正行為の道が開かれます。
PlayFab マルチプレイヤー サーバーは、Azure のグローバル クラウド全体でマルチプレイヤーのシンプルで効率的なスケーリングを提供します。 F2v2 Linux 仮想マシンに 10 人のプレイヤーの 10 のセッションを読み込むなど、小規模なサーバーを使用すると、P2P 実装と比較して、マルチプレイヤーの設計を効率的かつ大幅に簡素化し、信頼性を向上させることができます。 高度なマルチプレイヤー計算を実現するには、サーバーのビルド構成を設定して、より多くの Azure リソースをセッションに割り当てます。たとえば、200 のプレイヤー エクスペリエンスに 8 個以上のコアを使用します。