Documentation Steamworks
Service d'inventaire Steam
The Steam Inventory Service is a set of features that allow a game to enable persistent player inventories without having to run special servers to manage users or 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.

Without a game server, the game client can communicate directly to the steam service to retrieve users inventory contents, consume and exchange items, and receive new items granted as an effect of playtime. Users can also purchase items directly from the Item Store, or trade and exchange markets in the Steam community.

However because the client can't be trusted (and the keys in a client can always be captured by an attacker) you can't give users specific items in this scheme. 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. Steam servers manage the playtime and drop frequency per-player. 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.

Check out this presentation from Steam Dev Days 2016 for an implementation overview, details on the specific problems that the Inventory Service solves for developers, and demonstration on how partners are already using the system to serve their customers.

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. Note that while your item visibility is set to Private, only accounts in your Steamworks Partner group will be able to access your items in-game.
  3. Set Asset Server Key
    First generate a Publisher Web API key for your application (instructions: Creating a Publisher Web API Key) and put it into the Asset Server Key field in the Steam Economy Settings.
  4. Download Users Inventory
    Have your game client download the users inventory by calling ISteamInventory::GetAllItems.
    Its usually good to do this periodically in case the user has added more items via trading or purchase.
    Depending on your game, a check at the beginning of each game or level might be appropriate.
  5. Grant Test Items
    Use ISteamInventory::GenerateItems to add specific items to the current players account for development purposes.
  6. Grant User a Playtime Drop (optional)
    At appropriate times (typically the end of a match/phase) call ISteamInventory::TriggerItemDrop to see if the user has earned a new drop.
  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

These are structured web pages that you can redirect the user to.
  • 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.