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 pour les joueurs, sans nécessiter des serveurs spéciaux pour gérer les utilisateurs ou les items.

Veuillez nous laisser des retours ou poser vos questions sur le forum de discussion Steam Inventory du groupe des développeurs 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 connaît 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 utilisateurs, utiliser et échanger des items et recevoir de nouveaux items accordés pour avoir joué. Les utilisateurs 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 aux utilisateurs 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 maître 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 développeurs et une démonstration de la façon dont les partenaires utilisent déjà le système pour servir leurs clients.

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.
  3. Configurer une clé de serveur de ressources
    Commencez par générer une clé d'API Web d'éditeur pour votre application (instructions : Creating a Publisher Web API Key) 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 du joueur actuel à des fins de développement.
  6. Donnez à l'utilisateur un item de temps de jeu (facultatif)
    Aux moments appropriés (généralement à la fin d'un match ou d'une phase) appelez ISteamInventory::TriggerItemDrop pour voir si l'utilisateur 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 faire acheter 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.