Torrent9

..

Steam reinitialise tous les jeux

Telecharger steam reinitialise tous les jeux

Aide


Vous devez vous inscrire afin de télécharger
Veuillez créer un compte gratuitement sur Torrent9 pour accéder aux téléchargements illimités et au streaming !

Statistiques et succès

Documentation Steamworks > Fonctionnalités > Statistiques et succès

Présentation

Avec les stats et les succès Steam, votre jeu peut facilement fournir à vos utilisateurs un suivi persistant et accessible partout de leurs statistiques et succès. Les données de l'utilisateur sont associées à son compte Steam et les succès et statistiques de l'utilisateur peuvent tous être formatés et affichés dans son profil de la communauté Steam.

Avantages des stats et succès

En plus de fournir des récompenses de grande valeur aux joueurs de vos jeux, les succès permettent d'encourager et de récompenser le travail d'équipe et l'interaction entre les joueurs, offrent une dimension supplémentaire aux objectifs du jeu et récompensent les utilisateurs pour avoir passé plus de temps dans le jeu.

Les statistiques permettent de suivre des informations de détail telles que le temps de jeu, le nombre d'améliorations utilisées, etc. Vous pouvez choisir de les utiliser simplement pour suivre les données internes du jeu (par exemple, pour pouvoir accorder un succès en fonction des statistiques de jeu multisession recueillies auprès de l'utilisateur sur plusieurs ordinateurs).

Présentation de l'implémentation

Définir les stats et succès de votre jeu

Les succès sont spécifiques à chaque application et sont paramétrés sur la page d'administration de l'application sur le site des partenaires Steamworks.

Votre jeu peut stocker des statistiques de trois types :
  • INT : entier 32 bits signé (par ex. nombre de parties jouées).
  • FLOAT : flottant sur 32 bits (par ex. nombre de km que le joueur a conduit).
  • AVGRATE : moyenne variable. Voir Type de statistique AVGRATE.

Le site Web des partenaires Steamworks fournit une interface pour définir et mettre à jour les statistiques et les succès de votre jeu. Elle vous permet de :
  • définir les statistiques et les succès initiaux.
  • ajouter des stats et des succès supplémentaires.
  • mettre à jour les noms, les descriptions et les icônes des succès.
  • mettre à jour les paramètres et les contraintes (valeurs min/max, tailles des fenêtres de moyenne variable, etc.) des statistiques.
Les statistiques ont les propriétés suivantes :
  • ID : identifiant généré automatiquement pour chaque statistique.
  • Type : type de cette statistique (INT, FLOAT ou AVGRATE).
  • Nom pour l'API : chaîne de caractères utilisée pour accéder à cette statistique via l'API.
  • Défini par : définit qui peut modifier la statistique. Par défaut, c'est le client. Pour en savoir plus, consultez Stats de serveurs de jeu.
  • Uniquement croissant : si ce paramètre est défini, la valeur de cette stat ne peut qu'augmenter avec le temps.
  • Variation max. : si ce paramètre est défini, il impose une limite à la variation de valeur de la stat entre deux appels de SetStat.
  • Valeur min. : si ce paramètre est défini, il indique la valeur numérique minimale que peut prendre cette stat. Par défaut, c'est le minimum du type numérique sous-jacent (INT_MIN ou -FLT_MAX).
  • Valeur max. : si ce paramètre est défini, il indique la valeur numérique maximale que peut prendre cette stat. Par défaut, c'est le maximum du type numérique sous-jacent (INT_MAX ou FLT_MAX).
  • Valeur par défaut : si ce paramètre est défini, il s'agit de la valeur par défaut à laquelle sera initialisée la stat pour un nouvel utilisateur. S'il n'est pas défini, la valeur par défaut est zéro.
  • Total : si ce paramètre est défini, Steam conservera un total global pour cette stat. Consultez les stats mondiales ci-dessous pour plus d'informations.
  • Nom affiché : nom de cette stat, tel qu'il s'affiche sur la communauté Steam. Peut être localisé.
Les stats de type AVGRATE ont les propriétés supplémentaires suivantes :
  • Fenêtre : taille de la fenêtre glissante utilisée pour faire la moyenne de vos données.
Si une statistique est de type AVGRATE, sa moyenne est automatiquement calculée par Steam. Consultez la section AVGRATE ci-dessous pour plus d'informations.

Les succès ont les propriétés suivantes :
  • ID : identifiant numérique automatiquement généré pour chaque succès.
  • Nom pour l'API : chaîne utilisée pour accéder à ce succès via l'API.
  • Stat. de progression : spécifie une stat utilisée comme barre de progression dans la communauté pour ce succès. Le succès sera automatiquement déverrouillé lorsque la stat aura atteint la valeur de déblocage.
  • Nom affiché : nom que portera le succès dans les fenêtres de notification du client et dans la communauté. Peut être localisé.
  • Description : description de ce succès, pour affichage sur la communauté. Peut être localisée.
  • Défini par : définit qui peut déverrouiller le succès. Par défaut, c'est le client. Pour en savoir plus, consultez Stats de serveurs de jeu.
  • Caché : si ceci vaut true, le succès ne s'affichera pas sur la page de l'utilisateur dans la communauté (pas du tout) tant qu'il ne l'aura pas déverrouillé.
  • Icône « débloqué » : icône à afficher quand le succès est obtenu.
  • Icône « verrouillé » : icône à afficher quand le succès n'a pas encore été obtenu.

Voici la liste des succès dans l'exemple du jeu Spacewar consultable ici :

Comment utiliser les stats et succès

Accéder aux stats et aux succès depuis votre jeu :

  • Après avoir initialisé l'API Steamworks, vous pouvez commencer à utiliser l'API des stats et succès qui est contenue dans ISteamUserStats.
  • Au début d'une session de jeu, appelez ISteamUserStats::RequestCurrentStats pour aller chercher les données de stats et de succès de l'utilisateur sur le serveur principal de Steam. Vous recevrez un rappel ISteamUserStats::UserStatsReceived_t quand les données seront prêtes.
  • Utilisez ISteamUserStats::GetStat et ISteamUserStats::GetAchievement pour itérer les données et initialiser l'état du jeu.
  • Si vous voulez afficher les succès dans votre jeu, vous pouvez utiliserISteamUserStats::GetAchievementDisplayAttribute pour récupérer les propriétés du succès lisibles par un humain, notamment son nom (« nom ») et sa description (« desc »). Ces propriétés sont localisables sur le site Web des partenaires Steamworks. Les données renvoyées varient en fonction de la langue dans laquelle l'utilisateur exécute le jeu. Vous pouvez également obtenir une icône de succès en utilisant ISteamUserStats::GetAchievementIcon ou la date à laquelle chaque succès a été débloqué en utilisant ISteamUserStats::GetAchievementAndUnlockTime.
  • À chaque fois qu'une statistique change, en particulier avant que tout changement soit montré à l'utilisateur, appelez ISteamUserStats::SetStat ou ISteamUserStats::UpdateAvgRateStat. Cet appel ne modifie que la mémoire interne de Steam et est peu coûteux. Ceci permet à Steam de rendre les changements persistants entre les sessions, même si le jeu plante.
  • Aux points appropriés de votre jeu (c'est-à-dire aux points de contrôle, aux changements de niveau), appelez ISteamUserStats::StoreStats pour télécharger les changements. Vous recevrez un rappel ISteamUserStats::UserStatsReceived_t quand le téléchargement sera terminé.
  • Pour les succès qui ont une barre de progression, utilisez ISteamUserStats::StoreStats aux points importants pour afficher une fenêtre contextuelle indiquant la progression. Par exemple, si le succès nécessite 20 victoires, vous pourriez effectuer cet appel à la 10e victoire pour signifier à l'utilisateur qu'il est à la moitié de la progression.
  • À chaque fois qu'un succès au moins est débloqué, appelez ISteamUserStats::SetAchievement pour chaque succès débloqué puis ISteamUserStats::StoreStats pour les télécharger immédiatement. Votre jeu verra un rappel ISteamUserStats::UserStatsStored_t, plus un rappel ISteamUserStats::UserAchievementStored_t pour chaque succès débloqué. L'overlay Steam du jeu va afficher un panneau de notification à l'écran de l'utilisateur.

Type de statistique AVGRATE

Ce type de statistique fournit des fonctionnalités uniques et très utiles, mais nécessite quelques explications supplémentaires.

Imaginez que vous souhaitiez suivre une statistique moyenne, comme les points gagnés par heure. Une approche consisterait à avoir deux statistiques : « PointsTotaux » de type INT et « HeuresDeJeuTotales » de type FLOAT, puis de diviser les points par le temps pour obtenir les points par heure.

L'inconvénient de cette solution est qu'une fois que le joueur a cumulé un temps de jeu important, la moyenne calculée change extrêmement lentement. En fait, plus l'utilisateur joue au jeu, moins cette moyenne sera réactive. Si l'utilisateur a passé  heures sur le jeu, la moyenne calculée aura un retard d'environ 50 heures par rapport à ce chiffre. Si l'utilisateur améliore ses compétences, il ne verra pas l'augmentation des points par heure à laquelle il pourrait s'attendre.

Le type de statistique AVGRATE vous permet d'implémenter un effet de fenêtre glissante sur la moyenne. Par exemple, vous pouvez utiliser uniquement les quelques heures précédentes de jeu afin que la statistique reflète plus justement le niveau de compétence actuel du joueur.

Mettons en place une statistique AVGRATE pour implémenter les points par heure, où seules les 20 dernières heures de jeu affectent la valeur. Pour cela :
  • Remarquez que, puisque la moyenne sera par heure, les unités de temps sur les paramètres temporels associés à cette statistique seront en heures. Ceci s'applique aux propriétés de la fenêtre dans la statistique elle-même et également au paramètre dSessionLength passé à ci-dessous.
  • Créez une statistique de type AVGRATE nommée PointsMoyParHeure et une propriété Fenêtre de (n'oubliez pas que les unités sont des heures).
  • À des moments appropriés de votre jeu, appelez ISteamUserStats::UpdateAvgRateStat avec les paramètres suivants :
    • pchName : "PointsMoyParHeure"
    • flCountThisSession : nombre de points que le joueur a gagnés depuis le dernier appel de UpdateAvgRateStat.
    • dSessionLength : temps de jeu depuis le dernier appel de UpdateAvgRateStat. L'unité doit être la même que celle de la propriété Fenêtre de la statistique. Dans notre cas, ce sont des heures.
  • Par exemple, si le joueur a gagné 77 points dans la dernière manche qui a duré 0, heure (13,5 minutes), on aura .
Dans l'exemple ci-dessus, Steam va prendre la moyenne des manches actuelles de ,2 points par heure (77 divisé par 0,) et la mélanger avec la valeur précédente. Le résultat va refléter la moyenne totale sur les 20 dernières heures de temps de jeu du joueur. Si la statistique était mise à jour pour la première fois pour l'utilisateur actuel, la valeur actuelle serait de ,2.

Cet exemple utilise les heures comme unité de temps, mais vous pouvez utiliser l'unité que vous souhaitez. Pensez juste à utiliser la même unité partout, pour dSessionLength comme pour la propriété Fenêtre.

Obtenir des stats pour d'autres utilisateurs

Vous pouvez utiliser ISteamUserStats::RequestUserStats pour obtenir les statistiques d'un autre utilisateur. Vous pouvez ensuite utiliser ISteamUserStats::GetUserStat, ISteamUserStats::GetUserAchievement et ISteamUserStats::GetUserAchievementAndUnlockTime pour obtenir les données de cet utilisateur. Ces données ne sont pas mises à jour automatiquement quand l'autre utilisateur télécharge de nouvelles stats. Donc, pour actualiser les données, appelez simplement ISteamUserStats::RequestUserStats à nouveau.

Pour éviter d'utiliser trop de mémoire, un cache des entrées les moins récemment utilisées (LRU) est conservé et les stats d'autres utilisateurs seront parfois déchargées. Quand cela se produit un rappel ISteamUserStats::UserStatsUnloaded_t est automatiquement envoyé. Quand ce rappel est envoyé, les stats de l'utilisateur spécifié ne seront plus disponibles jusqu'à ce que ISteamUserStats::RequestUserStats soit appelée à nouveau.

Mode hors-ligne

Steam conserve un cache local contenant les données de stats et de succès pour que les API puissent être utilisées normalement en mode hors ligne. Toutes les stats qui ne peuvent pas être remises sont sauvegardées pour la prochaine fois que l'utilisateur sera en ligne. Au cas où il y aurait eu des modifications sur plus d'une machine, Steam va automatiquement fusionner les succès et choisir l'ensemble de stats affichant la plus grande progression. Étant donné que Steam conserve les données des stats dans un cache local, il n'est pas nécessaire pour le jeu de conserver également les données dans un autre cache local sur le disque. De tels caches entrent souvent en conflit et, lorsque c'est le cas, l'utilisateur peut avoir l'impression que sa progression n'a pas été enregistrée, ce qui peut s'avérer très frustrant.

Stats de serveurs de jeu

En parallèle de ISteamUserStats on trouve ISteamGameServerStats pour les serveurs de jeu. Ces fonctions permettent d'obtenir des stats pour les utilisateurs de la même manière que les clients (comme décrit plus haut). Elles peuvent aussi définir des stats et accorder des succès, mais uniquement si « Défini par » est configuré sur GS (serveur de jeu) ou Official GS (serveur de jeu officiel). La différence entre les serveurs de jeu et les serveurs de jeu officiels est que ces derniers sont des serveurs que vous pouvez héberger et contrôler. Utiliser des serveurs de jeu officiels pour définir des stats permet une sécurité accrue contre la triche, car les utilisateurs peuvent modifier leurs propres serveurs de jeu ou se faire passer pour un serveur de jeu. Pour définir des serveurs de jeu officiels, saisissez la plage d'adresses IP des serveurs ici.

Les stats et les succès qui sont définissables par les serveurs de jeu ne peuvent pas être définis par les clients. Les serveurs de jeu ne peuvent définir des stats et des succès que pour les utilisateurs qui jouent actuellement sur le serveur. Si l'utilisateur quitte le serveur, une courte période de grâce permet de définir toute stat finale, mais ensuite, tout nouveau téléchargement sera refusé. Ceci permet d'aider à assurer une meilleure uniformité et d'éviter la possibilité pour un serveur de jeu malveillant de définir les stats de qui que ce soit à tout moment. Étant donné cette restriction, il est important de ne pas attendre la fin d'une manche pour définir des stats. Définissez-les de manière continue afin de pouvoir les stocker lorsque l'utilisateur quitte le jeu.

Les clients vont recevoir des mises à jour automatiques lorsqu'un serveur de jeu changera ses stats. Toutefois, comme pour les clients, les stats chargées par le serveur pour d'autres utilisateurs ne sont pas actualisées automatiquement et peuvent devenir obsolètes.

Réinitialisation des stats


  • Film la playa liens
  • Antivirus pas cher a
  • Photo wiki sur mac
  • Pilote usb adata c906
  • Netqin mobile antivirus