Exemples
- Clans/Guildes - Les groupes d’entités peuvent servir à décrire un ensemble de joueurs qui jouent ensemble régulièrement, quel que soit le lien social qui les unit à long terme.
- Groupes - Les groupes d’entités peuvent servir à des groupes à court terme créés pour permettre à des joueurs individuels d’atteindre un objectif immédiat, puis facilement dissous par la suite.
- Canaux de clavardage - Des canaux de clavardage à court ou à long terme peuvent être définis comme groupe d’entités.
- Abonnement à de l’information dans le jeu - Avez-vous un objet légendaire à instance unique dans votre jeu? Les joueurs veulent-ils des mises à jour constantes sur ce qui arrive à cet objet? Créez un groupe d’entités axé sur cet objet, dont les membres sont toutes les entités de joueurs qui s’intéressent à l’objet.
- Données d’objet
- Données de fichier
- Profils
Les groupes ont une limite par défaut de 1 000 membres par groupe et ne prennent en charge que les joueurs et les personnages comme membres
Utilisation des groupes d’entités
Lors de la création d’un groupe, la première entité ajoutée au groupe se voit attribuer un rôle d’administrateur (Admin) (par souci de simplicité, ce guide désigne cette entité comme le propriétaire). Le propriétaire pourra ensuite inviter de nouveaux membres, créer de nouveaux rôles avec une grande variété d’autorisations personnalisables, modifier les rôles des membres, expulser des membres, etc. De plus, les mêmes fonctions d’entité qui existent pour les entités fonctionnent également pour les groupes, ce qui vous permet d’enregistrer des objets JSON et des fichiers directement dans le groupe pour conserver des données arbitraires propres au jeu. L’exemple de code fourni ci-dessous devrait vous donner une longueur d’avance sur les interactions de base avec les guildes. Il vous permet de créer des groupes, d’ajouter et de retirer des membres, et de supprimer le groupe. Il s’agit d’un point de départ, et il ne présente aucun des rôles ni des autorisations.Analyse de l’exemple
Cet exemple est conçu comme un contrôleur, qui enregistre un minimum de données dans un cache local (PlayFab étant la couche de données faisant autorité), et offre un moyen d’effectuer des opérations CRUD sur les groupes. Examinons certaines des fonctions de l’exemple fourni :-
OnSharedError- Il s’agit d’un modèle typique des exemples PlayFab. La façon la plus simple de gérer une erreur est de la signaler. Votre client de jeu aura probablement une logique de gestion des erreurs beaucoup plus sophistiquée. -
ListMembership- Cette fonction appelleListMembershippour déterminer tous les groupes auxquels appartient l’entité donnée. Les joueurs veulent connaître les groupes dont ils font déjà partie. -
CreateGroup/DeleteGroup- Ces fonctions parlent d’elles-mêmes. Cet exemple montre la mise à jour du cache local d’information sur les groupes lorsque ces appels sont exécutés avec succès. -
InviteToGroup/ApplyToGroup- Se joindre à un groupe est un processus en deux étapes, qui peut être lancé dans les deux sens :- Un joueur peut demander à se joindre à un groupe.
- Un groupe peut inviter un joueur.
-
AcceptGroupInvitation/AcceptGroupApplication- La deuxième étape du processus d’adhésion. L’entité qui répond accepte l’invitation, ce qui complète le processus visant à faire du joueur un membre du groupe. -
RemoveMembers- Les membres qui en ont l’autorité (définie par les autorisations de leur rôle) pourront expulser des membres d’un groupe.
Serveur ou client
Comme pour toutes les nouvelles méthodes d’API d’entités, il n’y a aucune distinction entre l’API serveur et l’API client. L’action est effectuée par l’appelant, selon la façon dont le processus a été authentifié. Un client sera identifié comme tel et appellera ces méthodes en tant qu’entité de joueur du titre; ses rôles et autorisations au sein du groupe seront évalués à chaque appel, afin de s’assurer qu’il a l’autorisation d’effectuer cette action. Un serveur est authentifié avec la mêmedeveloperSecretKey, qui identifie ce processus comme une entité de titre. Un titre contourne les vérifications de rôle, et les appels d’API exécutés par un titre n’échoueront que si l’action est impossible à effectuer, par exemple si une entité ne peut pas être retirée parce qu’elle n’est pas membre.
