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 rangées 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. Consultez cette page pour plus d’information : Classements saisonniersColumns: Ce paramètre nous permet de définir plusieurs colonnes, jusqu’à 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 provenant de l’extérieur du 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 y ajouter des données. La principale différence par rapport à notre tutoriel précédent sur ce sujet est que nous devons maintenant ajouter trois scores différents dans la même rangée. 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 apprendre différentes façons d’interroger un classement. Chacune a un objectif précis, soit d’aider les développeurs à obtenir les joueurs dont ils ont besoin pour les afficher dans le jeu.Obtenir le classement autour d’une entité
Cette façon particulière d’interroger le classement nous permet d’obtenir une section du classement proche d’une entité précise. Une façon concrète de voir ce scénario est lorsque nous avons un classement énorme et que nous voulons seulement afficher de l’information pertinente au joueur qui est actif dans le jeu. Si le joueur est en 1000e position, 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é précise.
Par exemple, si nous avons un joueur en 100e position et que nous utilisons
MaxSurroundingEntries = 20, les joueurs de la 90e à la 110e position 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 au bas du classement, les 20 derniers résultats sont récupérés. Sauf pour les positions en tête et au bas du classement, l’API tente de s’assurer que l’entité autour de laquelle le classement est demandé se trouve au centre des positions récupérées.
Obtenir le classement pour des entités
Cette API nous offre une autre façon d’interroger le classement. Elle convient lorsque 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#.Obtenir les classements d’amis
Il peut arriver que des joueurs occasionnels viennent jouer à un jeu. Ils sont peut-être loin de la tête du classement, mais une compétition est en cours entre eux et leurs amis. Avec cette API, nous pouvons interroger le classement et trouver les amis du joueur.Départage amélioré des égalités
Dans notre exemple de jeu de tir hautement compétitif, il arrive que plusieurs joueurs aient le même nombre d’éliminations. Pour ces scénarios, nous avons besoin d’une autre façon de départager ces cas. C’est dans ce scénario que la fonctionnalité de départage amélioré entre en jeu. Lorsque vous créez une définition de classement, vous pouvez avoir plusieurs colonnes. L’ordre dans lequel vous les ajoutez détermine la façon dont nous allons trier et départager certains scénarios. Il existe un ordre de priorité selon lequel la première colonne ajoutée est la plus importante, puis la deuxième, et ainsi de suite. Dans notre exemple, cela signifie que lorsqu’il y a égalité dans les é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 toujours, l’horodatage est utilisé par défaut : celui qui a obtenu les scores en premier l’emporte. | Rang | ID d’entité | Éliminations| Assistances | Morts | LastUpdated|----------------------|------------------------------------|-------------------|-------------------------- |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, il y a égalité entre trois joueurs :
- « player 5 » : Malgré le même nombre d’éliminations et d’assistances, ce joueur a plus de morts, ce qui signifie qu’il se trouve au 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 chiffres en premier.
- « player 1 » : Malgré les mêmes chiffres 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.
- Examiner les multiples façons d’interroger le classement.
- Comprendre le mécanisme de départage amélioré des égalités.
