Passer au contenu principal
Les données de groupe partagées (Shared Group Data) offrent aux joueurs un moyen simple de partager certaines informations avec une liste très restreinte d’autres joueurs.
Les données de groupe partagées ont été conçues à l’origine pour être pilotées de manière autoritaire par le serveur dans la plupart des cas, et il était auparavant conseillé de ne pas ajouter les joueurs directement aux données de groupe partagées, car cela leur accordait des autorisations de lecture/écriture (permettant la triche). Cependant, notre nouvelle stratégie d’accès aux API offre une bien plus grande flexibilité en matière de fonctionnalités et de sécurité par rapport à la conception d’origine. Vous trouverez plus de détails dans la section avancée de ce document.
Les données de groupe partagées ne doivent pas être utilisées par des groupes de plus d’une douzaine de joueurs environ, au maximum. L’un des problèmes est qu’un trop grand nombre de joueurs tentant de lire les mêmes données en même temps entraîne des retards 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). Il convient également de veiller tout particulièrement à empêcher les joueurs d’écraser les données 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’usage d’origine, et toujours le meilleur, des données de groupe partagées peut se décrire comme le stockage de l’état d’un jeu de plateau en ligne. Les joueurs modifient les données à tour de rôle via CloudScript, selon un ordre de jeu clairement défini. Les joueurs peuvent se déconnecter et reprendre la partie plus tard, l’état de leur jeu étant stocké dans le cloud. L’exemple CloudScript suivant illustre la structure au tour par tour de n’importe quel jeu de plateau courant. Le jeu de plateau lui-même est représenté sous forme de pseudo-code.

Hypothèses

Les données de groupe partagées qui représentent la partie ont déjà été initialisées, et leurs membres sont déjà définis.
Globalement, vous pouvez utiliser les données de groupe partagées pour implémenter des groupes/raids ou d’autres groupes de joueurs semi-permanents, à condition que la taille du groupe reste relativement petite, comme indiqué. Bien qu’il n’existe actuellement aucune limite strictement appliquée, 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é pour le titre afin d’éviter tout impact sur les autres utilisateurs du service.

Principales restrictions

  • Données de groupe partagées :
    • Elles ne contiennent que des données simples de paires clé/valeur (chaînes). Pour une utilisation avec tout autre type de données (comme les objets d’inventaire, les statistiques, 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 en cas d’accès simultané 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.

Problèmes liés aux autorisations des clients

Il n’existe aucun système de rôles/rangs au sein d’un groupe, ce qui signifie que tout membre du groupe dispose d’une autorité absolue au sein du groupe (aucun chef n’est défini). Pour le dire franchement, cela signifie qu’à moins de désactiver les méthodes clientes des données de groupe partagées avec notre stratégie d’accès aux API, les clients auront un contrôle total sur les données, ce qui pourrait entraîner leur exploitation abusive. La bonne pratique consiste soit à ne pas utiliser les données de groupe partagées pour des données ayant un impact sur le gameplay, soit à désactiver les méthodes des données de groupe partagées dans l’API Client.
Dernière modification le 6 octobre 2026