Il est déconseillé d’utiliser FindLobbies pour implémenter un matchmaking en arrière-plan. Dans ce scénario, nous vous recommandons vivement d’utiliser la fonctionnalité de matchmaking. Sinon, vous devrez gérer les collisions de joueurs essayant tous de rejoindre les mêmes lobbies au moyen du filtrage, du tri et d’autres techniques, comme l’utilisation de valeurs aléatoires dans vos champs de données de recherche.
Comprendre la relation entre les propriétés de recherche des lobbies et la recherche de lobbies
Les joueurs rendent leurs lobbies découvrables en définissant des propriétés de recherche. Les joueurs trouvent ces lobbies découvrables en appelant FindLobbies avec des chaînes de requête permettant de filtrer et de trier leurs résultats de recherche en fonction des propriétés de recherche définies sur les lobbies actuellement actifs. Les lobbies correspondant à ces requêtes sont renvoyés au joueur appelant. Pour plus d’informations sur la définition des propriétés de recherche, consultez Créer des lobbies consultablesUtilisation de FindLobbies
Lorsque vous appelez FindLobbies, vous pouvez utiliser le paramètre de filtre pour limiter votre requête aux résultats de recherche correspondant à un ensemble de critères basés sur les propriétés de recherche personnalisées du lobby. En outre, vous pouvez utiliser le paramètre de tri pour trier les résultats renvoyés par le service en fonction des propriétés de recherche. C’est utile, car le service ne renvoie qu’un nombre limité de résultats de recherche. Le tri vous garantit de voir les résultats les plus pertinents.Scénarios courants
Voici quelques façons courantes d’utiliser la fonctionnalité FindLobbies dans les titres.- Rechercher des lobbies de sessions de jeu pour un mode de jeu spécifique de votre titre
- Rechercher des lobbies de sessions de jeu hébergées par vos amis
- Rechercher des lobbies de sessions de jeu disposant d’assez de places pour tous les joueurs locaux
- Rechercher les lobbies dont vous faites déjà partie afin de rétablir une connexion après un plantage inattendu du client ou du serveur de jeu.
Clés de recherche prises en charge
Seul un ensemble restreint de clés peut être utilisé lors de la définition de propriétés de recherche personnalisées.- Pour les propriétés de type chaîne, les clés suivantes sont prises en charge : string_key1, string_key2, […] string_key30
- Pour les propriétés numériques, les clés suivantes sont prises en charge : number_key1, number_key2, […] number_key30
Construction des chaînes de requête pour FindLobbies
Les chaînes de requête des API FindLobbies sont structurées selon une syntaxe de type OData. La taille maximale de la chaîne de filtre est de 600 caractères. Les opérateurs OData suivants peuvent être utilisés pour composer des chaînes de requête. Les opérateurs respectent la casse.Lors de la comparaison de propriétés de type chaîne, veillez à placer la valeur comparée entre apostrophes. Par exemple, “string_key1 eq ‘SOME STRING VALUE’”. Les propriétés numériques n’ont pas besoin d’être entourées.
La définition de ces constantes dans le SDK est documentée ici.
Tri
Chaîne de style OData contenant le tri de cette requête dans l’ordre croissant (“asc”) ou décroissant (“desc”). Les clauses OrderBy peuvent être utilisées pour n’importe quelle clé de recherche numérique ou clé de recherche prédéfinie numérique. Pour trier par proximité avec un nombre, le mot-clé distance peut être utilisé afin de trier en fonction de la distance par rapport à la clé de recherche numérique donnée. Vous ne pouvez pas utiliser l’ordre croissant ou décroissant avec le tri par distance. Ce champ ne prend en charge qu’une seule clause de tri ou une seule clause de distance. Si aucun tri n’est fourni ou si un départage est nécessaire pour le tri donné, le tri par défaut est décroissant selon l’heure de création.Exemple de recherche de lobbies à l’aide du SDK Lobby et Matchmaking
Dans cet exemple, le joueur souhaite trouver tous les lobbies répondant aux exigences suivantes :- Le mode de jeu est “DeathMatch”
- Le style de compétition est “Ranked”
- Le niveau de compétence du joueur se situe entre les limites de compétence minimale et maximale du lobby.
- Les lobbies dont le niveau de compétence optimal est le plus proche de celui du joueur doivent apparaître en premier
