XUserHandle provenant de l’API XUserAddResult (voir la rubrique Authentification des utilisateurs et propriété).
Suivi de la progression des succès
Dans l’API Steam, vous pouvez utiliser l’APIISteamUserStats::GetStat/ISteamUser::SetStat pour suivre la progression d’un utilisateur vers un succès, ce qui fait des valeurs stockées dans l’API Steam Stats la source de vérité quant à la valeur de progression actuelle.
Avec les succès gérés par le titre, votre jeu est l’unique source de vérité et doit suivre lui-même la progression actuelle de l’utilisateur. La mise à jour de la progression actuelle dans le nuage au moyen d’un appel d’API s’effectue comme une sorte de « point de contrôle » et sert à afficher la progression d’un utilisateur à certains endroits de l’écosystème XBOX. Il n’existe pas de directive précise sur l’emplacement où la valeur de progression actuelle doit être conservée, mais de nombreux jeux choisissent de la stocker dans leur fichier de sauvegarde (et dans le nuage), tandis que d’autres peuvent la stocker sur leur propre service dorsal. Assurez-vous de garder synchronisées les valeurs du nuage et celles du système interne de gestion des statistiques de votre jeu.
Énumération de tous les succès
Pour obtenir toutes les statistiques d’un utilisateur avec l’API Steamworks, vous appelez habituellementISteamUserStats::RequestUserStats pour récupérer les dernières statistiques du serveur. Une fois le rappel correspondant déclenché, vous pouvez ensuite parcourir chaque succès par son nom d’API à l’aide des fonctions ISteamUserStats::GetStat/ISteamUserStats::GetAchievement et initialiser l’état du jeu à l’aide des données retournées.
Avec le XBOX Game Development Kit (GDK), vous pouvez simplement utiliser la fonction XblAchievementsGetAchievementsForTitleIdAsync, puis utiliser les données de chaque objet de succès du tableau fourni comme paramètre de sortie de XblAchievementsResultGetAchievements pour initialiser l’état de votre jeu. Chaque succès est fourni sous forme de struct XblAchievement. Pour plus d’informations sur les données qu’elle contient, consultez sa rubrique de référence.
Steamworks
XBOX Game Development Kit (GDK)
Mise à jour de la progression d’un succès et déverrouillage des succès
Dans le XBOX Game Development Kit (GDK) et dans Steam, c’est le code du jeu qui détermine quand un succès doit être déverrouillé. Avec le XBOX Game Development Kit (GDK), définir la progression d’un succès à 100 le déverrouille. Les sections suivantes décrivent les étapes requises pour mettre à jour la progression d’un utilisateur pour un succès donné avec les deux API. Voici un exemple de code pour une méthodeUpdateAchievement, implémentée dans les deux SDK, qui reçoit un ID/nom d’API de succès (et un nom d’API de statistique dans Steam), la valeur d’incrémentation du succès et la valeur cible pour déverrouiller ce succès, puis met à jour la progression et l’état de déverrouillage du succès en conséquence.
Steamworks
XBOX Game Development Kit (GDK)
Succès hors ligne
Le déverrouillage d’un succès XBOX ne nécessite pas de connexion réseau. Si l’utilisateur n’est pas connecté au réseau XBOX (également appelé XBOX Live), le succès se déverrouille automatiquement auprès du serveur plus tard, sans code supplémentaire.Obtention des succès d’un autre utilisateur
Pour obtenir les succès d’un autre utilisateur, vous pouvez simplement appeler les fonctions XblAchievementsGetAchievementsForTitleAsync/XblAchievementsGetAchievementAsync avec l’ID d’utilisateur XBOX (XUID) de l’utilisateur dont vous voulez récupérer les succès. Cela est semblable à l’utilisation des fonctionsISteamUser::RequestUserStats, ISteamUserStats::GetUserStat et ISteamUserStats::GetUserAchievement dans Steam.
Réinitialisation des succès
Contrairement àISteamUserStats::ResetAllStats de l’API Steamworks, qui peut servir à réinitialiser la progression de l’utilisateur pour toutes ses statistiques et, si cela est spécifié, ses succès, le XBOX Game Development Kit (GDK) n’offre aucune possibilité documentée de réinitialiser par programmation la progression ou l’état de déverrouillage des succès. Toute tentative d’appeler XblAchievementsUpdateAchievementAsync avec une valeur de progression de 0 laisse la valeur de progression inchangée. Toutefois, vous pouvez utiliser l’outil Player Data Reset (XblPlayerDataReset.exe) lors des tests pour y parvenir.
