Création d’une définition de classement à plusieurs colonnes
Pour commencer cet exemple, nous devons créer une définition de classement plus complexe que celle que nous avions auparavant. Nous allons définir plusieurs colonnes pour représenter les aspects clés du jeu : les éliminations, les assistances et les morts. L’exemple suivant montre comment créer la définition de classement à l’aide du SDK C#.SizeLimit: ce paramètre sert à limiter le nombre de lignes que le classement peut comporter. La valeur indiquée ici n’est qu’un exemple.VersionConfiguration: ce paramètre nous permet de gérer des versions de nos classements. Pour plus d’informations, consultez cette page : Classements saisonniersColumns: ce paramètre nous permet de définir plusieurs colonnes, avec un maximum de 5 par définition. Comme vous pouvez le voir, nous avons configuré Eliminations, Assists et Deaths. Un élément important ici est le paramètreSortDirection, qui nous permet de déterminer le tri du classement. Dans cet exemple, un joueur est mieux classé s’il a plus d’éliminations et d’assistances (SortDirection = Descending) et moins de morts (SortDirection = Ascending).
Utiliser des entités externes
Le service Leaderboard peut être utilisé comme composant autonome et prend en charge l’utilisation d’entités externes qui n’ont de sens que dans le contexte du jeu. Si les identités de vos joueurs ne sont pas liées à la connexion PlayFab, vous pouvez quand même utiliser le service Leaderboards. Le type d’entité des entrées du classement extérieures au système PlayFab doit être external. L’entityId correspond alors à l’identité du joueur dans votre système. Dans ces cas, toutes les entrées du classement doivent être des entités external.Ajout de données à un classement
Maintenant que notre classement est créé, nous allons ajouter des données. La principale différence par rapport à notre précédent tutoriel sur ce sujet est que nous devons désormais ajouter trois scores différents dans la même ligne. L’exemple suivant montre comment ajouter des données à notre classement à l’aide du SDK C#.Récupération des données d’un classement
Nous allons maintenant découvrir différentes manières d’interroger un classement. Chacune a un objectif spécifique, dans le but d’aider les développeurs à obtenir les joueurs dont ils ont besoin pour les afficher dans le jeu.Obtention du classement autour d’une entité
Cette manière particulière d’interroger le classement nous permet d’obtenir une section du classement proche d’une entité spécifique. Un cas concret de ce scénario est celui d’un classement très volumineux où nous voulons uniquement afficher des informations pertinentes pour le joueur actif dans le jeu. Si le joueur est en position 1000, nous pouvons afficher ses voisins proches plutôt que les meilleurs joueurs. L’exemple suivant montre comment interroger un classement autour d’une entité à l’aide du SDK C#.MaxSurroundingEntries, qui nous permet d’extraire du classement les entités classées autour d’une entité
spécifique. Par exemple, si un joueur est en position 100 et que nous utilisons
MaxSurroundingEntries = 20, les joueurs de la position 90 à la position 110 sont récupérés. Si le joueur est en tête
du classement, les 20 premiers résultats sont récupérés. Si le joueur est en bas du classement, les 20 derniers résultats sont récupérés. Sauf pour les positions en haut et en bas du classement, l’API tente de faire en sorte que l’entité autour de laquelle le classement est demandé se trouve au centre des positions récupérées.
Obtention du classement pour des entités
Cette API nous offre une autre manière d’interroger le classement. Elle convient aux cas où nous voulons rechercher plusieurs entités dans le classement et les trier. L’exemple suivant montre comment interroger un classement pour une liste d’entités à l’aide du SDK C#.Obtention des classements d’amis
Il peut arriver que des joueurs occasionnels viennent jouer à un jeu. Ils peuvent être loin du haut du classement, mais une compétition est engagée entre eux et leurs amis. Avec cette API, nous pouvons interroger le classement et trouver les amis du joueur.Départage amélioré
Dans notre exemple de jeu de tir très compétitif, il arrive que plusieurs joueurs aient le même nombre d’éliminations. Pour ces scénarios, nous avons besoin d’une autre manière de départager les joueurs. C’est là qu’intervient la fonctionnalité de départage amélioré. Lorsque vous créez une définition de classement, vous pouvez avoir plusieurs colonnes. L’ordre dans lequel vous les ajoutez détermine la manière dont nous allons trier et départager certains scénarios. Il existe un ordre de priorité : la première colonne ajoutée est la plus importante, puis la deuxième, et ainsi de suite. Dans notre exemple, cela signifie qu’en cas d’égalité d’éliminations, le deuxième critère est le nombre d’assistances, et le dernier critère est le nombre de morts. Dans le cas extrême où l’égalité persiste, l’horodatage est utilisé par défaut : celui qui a obtenu les scores en premier l’emporte. | Rang | ID d’entité | Éliminations| Assistances | Morts | Dernière mise à jour|----------------------|------------------------------------|-------------------|-------------------------- |1 | “player 3” | 103 |24 | 15|“2024-08-27T20:24:36.738Z” |2 | “player 2” | 102 | 30| 20 |“2024-08-27T20:24:29.251Z” |3 | “player 1” | 100 | 25 |18 |“2024-08-27T19:52:26.642Z”
|4 | “player 4” | 100 | 25 | 18 |“2024-08-27T20:24:44.552Z” |4 | “player 5” | 100 | 25 | 19 |“2024-08-27T20:25:47.552Z” Dans cet exemple, trois joueurs sont à égalité :
- « player 5 » : bien qu’il ait le même nombre d’éliminations et d’assistances, il a plus de morts, ce qui signifie qu’il se trouve en bas du classement.
- « player 4 » : ce joueur a moins de morts que « player 5 » et autant que « player 1 », mais player 1 a obtenu ces résultats en premier.
- « player 1 » : bien qu’il ait les mêmes résultats que « player 4 », ce joueur a été le premier à obtenir ce score dans le jeu ; il est donc mieux classé dans ce scénario de départage.
Conclusions
Dans ce tutoriel, nous avons appris à effectuer les opérations suivantes :- Créer un classement à plusieurs colonnes.
- Découvrir les différentes manières d’interroger un classement.
- Comprendre le mécanisme de départage amélioré.
