Passer au contenu principal
Les données de groupe partagées (Shared Group Data) constituent un moyen simple pour les joueurs de partager certaines informations avec une liste étroitement restreinte d’autres joueurs.
Les données de groupe partagées ont été conçues à l’origine pour être pilotées par le serveur faisant autorité dans la plupart des cas, et le conseil précédent était de ne pas ajouter les joueurs directement aux données de groupe partagées, car cela leur donnait des autorisations de lecture et d’écriture (ce qui permettait la tricherie). Cependant, notre nouvelle stratégie d’accès aux API permet une bien plus grande variété de fonctionnalités et de sécurité par rapport à la conception d’origine. Plus de détails sont disponibles dans la section avancée de ce document.
Les données de groupe partagées ne devraient pas être utilisées par des groupes de plus d’une douzaine de joueurs, tout au plus. Un des problèmes est que trop de joueurs tentant de lire les mêmes données en même temps entraînera des délais de lecture (les données de groupe partagées ne sont ni partitionnées ni mises en cache, contrairement aux données destinées à être lues par de nombreux joueurs à la fois, comme les données de titre). De plus, une attention particulière doit être portée pour empêcher les joueurs d’écraser les données les uns des autres. Si plusieurs joueurs tentent d’écrire dans la même clé en même temps, une seule de ces écritures « l’emportera », ce qui entraînera la perte des données de l’autre utilisateur.

Exemple : jeux multijoueurs asynchrones au tour par tour

Le cas d’utilisation original, et toujours le meilleur, des données de groupe partagées consiste à stocker l’état d’un jeu de société en ligne. Les joueurs modifient les données à tour de rôle au moyen de CloudScript, selon un ordre de tour clair. Les joueurs peuvent se déconnecter et reprendre la partie plus tard, leur état de jeu étant stocké dans le nuage. L’exemple CloudScript suivant illustre la structure au tour par tour de n’importe quel jeu de société courant. Le jeu de société lui-même est représenté par du pseudo-code.

Hypothèses

Les données de groupe partagées qui représentent la partie ont déjà été démarrées, et leurs membres sont déjà définis.
De façon générale, vous pouvez utiliser les données de groupe partagées pour mettre en œuvre des groupes et des raids, ou d’autres groupes semi-permanents de joueurs, tant que la taille du groupe demeure relativement petite, comme indiqué. Bien qu’aucune limite ne soit strictement appliquée actuellement, l’utilisation avec de nombreux joueurs n’est pas prise en charge et, dans les cas extrêmes, peut entraîner une limitation de la fonctionnalité du titre afin d’éviter toute incidence sur les autres utilisateurs du service.

Restrictions principales

  • Données de groupe partagées :
    • Elles contiennent uniquement des données simples de paires clé/valeur (chaînes). Pour toute utilisation comme un autre type de données (comme des objets d’inventaire, des statistiques, de la monnaie virtuelle, etc.), le titre doit fournir les conversions nécessaires.
    • Elles ne sont ni partitionnées ni mises en cache, elles ne seront donc pas réactives lorsqu’elles sont consultées simultanément par plusieurs joueurs. Les fonctionnalités qui les utilisent doivent être conçues pour de petits groupes de joueurs et ne pas permettre d’écritures simultanées.

Préoccupations relatives aux autorisations des clients

Il n’existe aucun système de rôles ou de rangs au sein d’un groupe, ce qui signifie que tout membre du groupe a une autorité absolue au sein du groupe (aucun chef n’est défini). Concrètement, cela signifie qu’à moins de désactiver les méthodes de données de groupe partagées côté client au moyen de notre stratégie d’accès aux API, les clients auront un contrôle total sur les données, ce qui pourrait entraîner l’exploitation de celles-ci. La pratique exemplaire consiste soit à ne pas utiliser les données de groupe partagées pour des données ayant une incidence sur le jeu, soit à désactiver les méthodes de données de groupe partagées dans l’API Client.
Dernière modification le 6 octobre 2026