Documentation Steamworks
Service d'inventaire Steam
Le service d'inventaire Steam est un ensemble de fonctionnalités qui permettent à un jeu d'activer des inventaires persistants, sans nécessiter des serveurs spéciaux pour gérer les comptes ou les items.

Veuillez nous laisser des retours ou poser vos questions sur le forum de discussion Steam Inventory du groupe des équipes de développement Steamworks.

Description

Le service d'inventaire peut être utilisé de deux manières : soit sans serveur, soit avec l'ajout d'un serveur de confiance qui connait l'état du jeu.

Sans serveur de jeu, le client du jeu peut communiquer directement avec le service Steam pour récupérer les contenus des inventaires des comptes utilisateurs, utiliser et échanger des items et recevoir de nouveaux items accordés pour avoir joué. Les utilisateurs et utilisatrices peuvent aussi acheter des items directement depuis le magasin d'items ou faire des échanges sur le marché des échanges de la communauté Steam.

Toutefois, le client n'étant pas fiable (et les clés dans un client pouvant toujours être capturées par un pirate informatique), vous ne pouvez pas donner des items spécifiques dans ce schéma. Au lieu de cela, vous sélectionnez certains items qui peuvent être distribués et vous configurez une fréquence de distribution. Aux moments opportuns, le client du jeu appelle ISteamInventory::TriggerItemDrop. Les serveurs Steam gèrent le temps de jeu et la fréquence de distribution par joueur. Ces API sont appelées à l'aide d'une « clé d'API cliente » interne supposée non fiable.

Si vous avez un serveur approuvé participant, vous pouvez utiliser une clé d'API Steam privilégiée sur le serveur et accorder des items explicites dans les situations appropriées. Il est toujours important de garder à l'esprit que vous ne pouvez pas faire confiance à vos propres serveurs clients. Vous ne pouvez donc faire ceci que lorsque le serveur est le maitre de l'état du jeu.

Enfin, conjointement au service d'inventaire, vous pouvez vendre un item individuel ou un panier d'items, en jeu ou via un magasin en ligne.

Regardez cette présentation tirée des Steam Dev Days 2016 pour avoir un aperçu de l'implémentation, des détails sur des problèmes spécifiques que le service d'inventaire résout pour les équipes de développement et une démonstration de la façon dont les partenaires utilisent déjà le système pour servir leurs joueurs et joueuses.

https://www.youtube.com/watch?v=jDfhPTSOLis

Présentation de l'implémentation

  1. Créer des définitions d'items
    Vous devrez commencer par créer et télécharger quelques définitions d'items (ItemDefs).
    Celles-ci décrivent les ensembles d'items possibles dans votre jeu. Il n'est pas nécessaire de les utiliser depuis votre jeu lui-même, mais Steam en a besoin pour afficher correctement l'inventaire. Pour créer des ItemDefs, accédez à la page Service d'inventaire dans votre page d'administration des données de l'application sur Steamworks. Vous pouvez y accéder depuis cette page : https://partner.steamgames.com/apps/inventoryservice.
  2. Activer le service d'inventaire
    Une fois les définitions d'items créées, activez le service d'inventaire en cochant « Activer le service d'inventaire » sur la page sur laquelle vous avez téléchargé vos définitions d'items. Veuillez noter que si la visibilité de vos items est réglée comme privée dans les paramètres de l'économie Steam, seuls les comptes de votre groupe de partenaires Steamworks peuvent accéder à vos items en jeu.
  3. Configurer une clé de serveur de ressources
    Commencez par générer une clé d'API Web d'éditeur pour votre application (instructions : Créer une clé d'édition de l'API Web) et placez-la dans le champ « Clé du serveur de ressources » dans les paramètres de l'économie Steam.
  4. Télécharger l'inventaire de l'utilisateur
    Demandez à votre client du jeu de télécharger l'inventaire de l'utilisateur en appelant ISteamInventory::GetAllItems.
    Il est généralement recommandé d'effectuer cette action régulièrement au cas où l'utilisateur aurait ajouté d'autres items via un échange ou un achat.
    En fonction de votre jeu, une vérification au début de chaque partie ou niveau peut être appropriée.
  5. Donner des items de test
    Utilisez ISteamInventory::GenerateItems pour ajouter des items spécifiques au compte de la personne actuelle à des fins de développement.
  6. Donner un item pour avoir joué un certain temps (facultatif)
    Aux moments appropriés (généralement à la fin d'un match ou d'une phase) appelez ISteamInventory::TriggerItemDrop pour voir si la personne a gagné un nouvel item.
  7. Vendre des items (facultatif)
    Pour ajouter la prise en charge des microtransactions, définissez des prix dans vos ItemDefs. Vous pouvez ensuite les vendre de différentes façons :

API

La documentation de l'API d'inventaire de Steam est disponible dans la documentation de référence des API ici : ISteamInventory.

API Web

La documentation de l'API d'inventaire Web de Steam est disponible dans la documentation de référence des API Web ici : IInventoryService.

Fonctions Web

Il s'agit de pages Web structurées vers lesquelles vous pouvez rediriger l'utilisateur.
  • ItemCart : peut être utilisée pour envoyer un panier rempli d'items à acheter via Steam.
  • BuyItem : peut être utilisée pour acheter un seul item via Steam.