FindLobbies をバックグラウンド マッチメイキングの実装に使用することは推奨されません。そのシナリオでは マッチメイキング機能 の使用を強く推奨します。それ以外の場合、フィルタリング、ソート、および検索データ フィールドでランダム化値を使うなどの技術を通じて、同じロビーに参加しようとするプレイヤー間の衝突を処理する必要があります。
ロビー検索プロパティとロビー検索の関係を理解する
プレイヤーは検索プロパティを定義することで、自分のロビーを発見可能にします。プレイヤーは、現在アクティブなロビー全体で定義されている検索プロパティに基づいて検索結果をフィルターおよびソートするクエリ文字列を指定して FindLobbies を呼び出し、これらの発見可能なロビーを見つけます。これらのクエリに一致するロビーが呼び出し元のプレイヤーに返されます。 検索プロパティの定義の詳細については、検索可能なロビーの作成 を参照してください。FindLobbies の使用方法
FindLobbies を呼び出す際、filter パラメーターを使用して、ロビーのカスタム検索プロパティに基づく特定の基準に一致する検索結果のみを返すようクエリを制限できます。 さらに、sorting パラメーターを使用して、サービスから返される結果を検索プロパティに基づいて並べ替えられます。サービスは限られた数の検索結果のみを返すため、これは便利です。並べ替えることで、最も関連性の高い検索結果が確実に得られます。一般的なシナリオ
タイトルで FindLobbies 機能が使用される一般的な方法をいくつか示します。- タイトルの特定のゲーム モード向けのゲーム セッションのロビーを検索する
- フレンドがホストしているゲーム セッションのロビーを検索する
- ローカル プレイヤー全員が参加できる十分な人数のゲーム セッションのロビーを検索する
- 予期しないゲーム クライアントやゲーム サーバーのクラッシュ後に接続を回復するために、すでに参加しているロビーを検索する
サポートされる検索キー
カスタム検索プロパティを定義する際に使用できるキーは制限されたセットのみです。- 文字列プロパティの場合、次のキーがサポートされます: string_key1、string_key2、[…] string_key30
- 数値プロパティの場合、次のキーがサポートされます: number_key1、number_key2、[…] number_key30
FindLobbies 用のクエリ文字列の構築
FindLobbies API のクエリ文字列は OData ライクな構文で構成されます。フィルター文字列の最大サイズは 600 文字です。 クエリ文字列の構成には、これらの OData 演算子を使用できます。演算子は大文字と小文字を区別します。文字列プロパティを比較する場合、比較する値を必ずシングル クォートで囲んでください。例: 「string_key1 eq ‘SOME STRING VALUE’」。数値プロパティは囲む必要はありません。
これらの定数の SDK 定義は こちら に記載されています。
並べ替え
このクエリに対する並べ替えを昇順 (「asc」) または降順 (「desc」) で含む OData スタイルの文字列。OrderBy 句は、任意の検索用数値キーまたは数値である事前定義された検索キーに対して使用できます。指定した数値に最も近いものでソートするには、distance モニカーを使用して、指定した数値検索キーからの距離でソートできます。distance ソートに ascending や descending は使用できません。このフィールドは 1 つの sort 句または 1 つの distance 句のいずれか一方のみをサポートします。sort が指定されない場合や、指定された sort でタイブレークが必要な場合、既定のソートは作成時刻の降順になります。Lobby and Matchmaking SDK を使用してロビーを検索する例
この例では、プレイヤーは次の要件を満たすすべてのロビーを探したいとします。- ゲーム モードが “DeathMatch”
- 競技スタイルが “Ranked”
- プレイヤーのスキル レベルがロビーの最小および最大スキル制限内にある
- プレイヤーのスキル レベルに最も近い最適スキル レベルのロビーが上位に来るようにソートする
