Documentation Steamworks
Économie Steam

Présentation

L'économie Steam désigne un ensemble de fonctionnalités grâce auxquelles les items en jeu provenant de différents titres peuvent être intégrés à un système partagé unique dans Steam. Les items en jeu de l'économie Steam peuvent être achetés via des microtransactions, gagnés grâce à des succès Steam, fournis en jeu ou donnés en réponse à toutes sortes de promotions. Les utilisateurs et utilisatrices peuvent voir leurs inventaires de jeux dans la communauté Steam, inclure des liens vers des items dans les sessions de chat et échanger des items avec d'autres personnes. Steam fournit l'interface d'utilisation et l'infrastructure pour ces fonctionnalités, mais laisse le contrôle complet des items au jeu lui-même.

Les items en jeu dans l'économie Steam sont appelés « ressources » et représentent tout ce qu'une personne peut posséder dans un jeu. Cela peut être de l'équipement, des véhicules, des personnages, des animaux, des recettes de fabrication, etc. Le jeu indique à Steam comment afficher une ressource et décide lui-même de la fonction de cette ressource. Le jeu est également responsable du suivi des ressources et de leurs propriétaires ainsi que de la transmission de ces informations à la fois aux utilisateurs et utilisatrices, et aux personnes du Support. C'est aussi au jeu de déterminer quelles ressources sont échangeables, de décider quelles restrictions d'espace de stockage sont imposées aux utilisateurs et utilisatrices, et de fournir à l'équipe du Support les informations sur tout ce qui précède.

Chaque jeu contrôle ces éléments en implémentant l'API de ressources Steam. Il s'agit d'un ensemble d'API Web qui donne à Steam la visibilité de cette gestion de back-end. Vous trouverez la documentation complète de l'API de ressources Steam ci-dessous.

Conditions requises

Pour ajouter un jeu à l'économie Steam, il doit satisfaire à quelques exigences.

  • Le jeu doit disposer d'un back-end de ressources qui n'est pas stocké sur le client du jeu. Certains types de bases de données hébergées dans un centre de données seront nécessaires. Ce centre de données peut appartenir à une équipe d'édition ou de développement, ou bien il peut être fourni par un service d'hébergement cloud. Steam offre un service d'inventaire gratuit qui peut être utilisé comme stockage persistant d'items pour votre jeu.
  • Le jeu doit configurer un ensemble d'ID de contexte qui définissent les conteneurs dans lesquels une personne peut garder des ressources.
  • Chaque jeu doit fournir un ID 64 bits persistant pour chaque ressource qui peut être échangée avec une autre personne. Cet ID de ressource doit être unique dans le contexte contenant la ressource.
  • Le jeu doit fournir des icônes d'inventaire pour toutes les ressources en jeu via un serveur Web. Ces icônes doivent avoir une taille de 96 x 96 et 200 x 200, et être aux formats jpg, png ou gif. Steam fournira la bande passante nécessaire pour afficher ces images aux utilisateurs et utilisatrices.
  • Le jeu doit implémenter au moins les méthodes incluses dans la section « Système d'échange Steam » ci-dessous.
  • Le jeu doit également implémenter les méthodes liées à l'intégration de l'outil d'assistance.

Poursuivez votre lecture uniquement si...

Vous projetez de créer votre propre service de suivi de ressources. Le reste de ce document décrit l'API Web requise.
Si vous prévoyez d'utiliser le service d'inventaire Steam, vous n'avez pas besoin de poursuivre la lecture.

Système d'échange Steam

Le système d'échange Steam utilise une interface Web pour réaliser les échanges et consulter les inventaires. Ces pages sont remplies avec les résultats de GetContexts, GetContextContents, GetAssetClass et GetAssetClassInfo dans l'API de ressources. Dès qu'un échange est confirmé par les deux personnes, une validation en trois phases est effectuée pour tous les jeux impliqués dans l'échange. Toute la logique de validation et d'annulation pour la validation en trois phases est gérée par le serveur de l'économie dans Steam. Cela entraine des modifications de possession dans les jeux via les méthodes TradeSetUnowned et TradeSetOwned.
GETGetContexts/v0001Renvoie la liste des contextes pour une personne.
GETGetContextContents/v0001Renvoie la classe de ressource pour chaque ressource de la personne ainsi que la devise à afficher lors d'un échange ou dans la communauté Steam.
GETGetAssetClass/v0001Renvoie la classe de ressource et le compte propriétaire pour une liste de ressources à afficher lors d'un échange ou dans la communauté Steam.
GETGetAssetClassInfo/v0001Renvoie les informations d'affichage pour une classe de ressource unique.
POSTTradeSetUnowned/v0001Appelée quand le serveur de l'économie a besoin que le jeu supprime une ressource ou une devise d'une personne.
POSTTradeSetOwned/v0001Appelée quand le serveur de l'économie a besoin que le jeu modifie une ressource sans propriétaire existante en ressource avec propriétaire.

Intégration de l'outil d'assistance

L'outil d'assistance est le système que les personnes du Support Steam utilisent pour résoudre les problèmes concernant les ressources d'une personne (et tout autre problème concernant les comptes dans Steam). Quand vous implémentez ces API, vous donnez aux deux formes de l'outil d'assistance l'accès aux ressources dans un jeu.

L'outil d'assistance accède aux jeux dans l'économie Steam par l'intermédiaire de deux pages : la page d'économie et la page d'historique. La page d'économie interagit avec les ressources dans un contexte avec GetContextContents et GetAssetClassInfo. La page d'historique utilise GetUserHistory, GetHistoryCommandDetails et HistoryExecuteCommands. Les deux pages afficheront les détails des ressources avec les résultats de SupportGetAssetHistory. ContextCommand permet aux personnes du Support d'effectuer des actions au niveau du contexte et au niveau de la ressource.
POSTContextCommand/v0001Exécute une commande de contexte depuis l'outil d'assistance.
GETGetUserHistory/v0001Renvoie l'historique d'audit d'une personne pour utilisation dans l'outil d'assistance.
GETGetHistoryCommandDetails/v0001Renvoie la liste détaillée d'actions de commande pour une commande d'historique à une personne du Support.
POSTHistoryExecuteCommand/v0001Exécute un ensemble d'actions de commande d'historique sur un compte utilisateur pour une personne du Support.
GETSupportGetAssetHistory/v0001Renvoie des informations d'historique relatives à une ressource pour nous dans l'outil d'assistance.

Achats en ligne

Vous pouvez autoriser les personnes à acheter des items dans votre jeu depuis le Web en implémentant les API suivantes.
POSTStartWebAssetTransaction/v0001Démarre une transaction pour le compte d'une personne sur les items spécifiés. Appelle ISteamMicroTxn/InitTxn pour que Steam configure la transaction et obtienne une URL de transfert.
POSTFinalizeWebAssetTransaction/v0001Appelée après le paiement des items de la transaction. Doit appeler ISteamMicroTxn/FinalizeTxn avant d'essayer de donner les items à la personne.
GETGetAssetPrices/v0001Renvoie les prix et les catégories pour les items qu'il est possible d'acheter.

Remboursements Steam

La politique de remboursement de Steam permet d'obtenir un remboursement pour les achats en jeu dans les 48 heures suivant l'achat, à condition qu'aucun des articles achetés n'ait été consommé, modifié ou transféré. Si vous souhaitez appliquer cette politique, vous devrez implémenter les API suivantes.
GETQueryRefundAllowed/v0001Appelée pour vérifier l'état de chaque item lors d'un achat en jeu.
POSTRefundPurchase/v0001Appelée lorsqu'un remboursement a été approuvé automatiquement ou par une personne du Support.

Ressources externes

Si votre jeu importe des ressources d'un autre jeu, il peut appeler GetExportedAssets pour récupérer les ressources.
GETGetExportedAssets/v0001Renvoie la liste des items exportés par un autre jeu sur Steam.

Contrôle de version des interfaces

Pour prendre en compte les futures versions de l'API de ressources, le serveur de l'économie ajoutera un numéro de version à chaque URL appelée. Actuellement, toutes les méthodes sont à la version 1 ; /v0001 sera donc ajouté à chaque URL. Ainsi, si l'URL de votre serveur de ressources est https://api.mygame.com/assetapi, alors la méthode GetContexts sera appelée https://api.mygame.com/assetapi/GetContexts/v0001 suivi des paramètres de GET
spécifiés pour cette méthode.

Clés d'API

Si vous définissez une clé d'API dans le menu Économie de l'onglet Communauté des détails techniques de votre jeu, cette clé sera passée dans chaque appel effectué par le serveur de l'économie.
La clé se trouvera dans un paramètre de GET ou POST (suivant le type de requête) appelé key. Veuillez vérifier que la clé correspond à ce que vous avez défini dans le menu Économie de l'onglet Communauté lorsque vous recevez un appel, afin de vous assurer que l'appel provient bien du serveur de l'économie.

FAQ

Q. Qu'est-ce que l'économie Steam ?

R. La plateforme Steam offre une fonctionnalité intégrée pour effectuer des échanges sécurisés et fiables, un marché mondial utilisant des devises réelles, l'examen détaillé des informations sur les items hors jeu via la communauté Steam et bien plus. Vous pouvez choisir d'utiliser toutes ces fonctions ou n'importe laquelle d'entre elles.

Q. Quels sont les avantages à participer à l'économie Steam ?

R. Les items dans les jeux utilisant cette économie ont plus de valeur que les items qui sont utilisés uniquement dans l'écosystème d'un jeu unique, ce qui permet d'obtenir une meilleure satisfaction de la clientèle.

Les joueurs et joueuses peuvent faire figurer des liens vers des items dans leur profil et le chat Steam, offrant une visibilité gratuite supplémentaire au jeu et aux items qu'il contient. Pour les jeux qui prennent en charge les échanges, les items gagnent de la valeur non seulement pour leurs propriétaires, mais également pour l'ensemble des autres joueuses et joueurs actifs et potentiels. Cela signifie, par exemple, que tous les jeux qui utilisent l'économie Steam deviennent immédiatement plus intéressants et ont plus de valeur pour les personnes qui jouent à tous les autres jeux utilisant cette économie (comme Team Fortress 2 et Dota 2).

En outre, vous pouvez exploiter notre infrastructure existante pour les transactions et l'assistance concernant les échanges et les devises, et également choisir d'utiliser gratuitement n'importe quelle fonctionnalité future.

Q. Quelles sont les conditions d'utilisation ?

R. Le jeu doit disposer d'un back-end de ressources qui n'est pas stocké sur le client du jeu, autrement dit un serveur d'items. Certains types de bases de données hébergées dans un centre de données seront nécessaires.
Ce centre de données peut appartenir à une équipe d'édition ou de développement, ou bien il peut être fourni par un service d'hébergement cloud. Steam offre un service d'inventaire gratuit qui peut être utilisé comme stockage persistant d'items pour votre jeu. Ce back-end doit implémenter un petit nombre d'API Web afin que Steam puisse communiquer avec lui.

Q. Pouvons-nous participer à certaines parties de l'économie, mais pas toutes ?

R. Les API Web appelées par Steam fournissent à la communauté Steam une interface commune unique pour consulter les items, effectuer des échanges entre les jeux et accéder au marché de la communauté Steam. Vous avez le contrôle pour désactiver des fonctionnalités entières au niveau global (par exemple activer les échanges, mais désactiver toutes les transactions du marché) ou au niveau individuel (par exemple, tous les items peuvent être consultés sur la communauté ; certains peuvent être échangés, mais seuls des items spécifiques peuvent être offerts à la vente sur le marché). Vous pouvez modifier ces paramètres pour chaque item à tout moment.

Q. Est-ce que Valve dispose dans Steamworks d'un back-end d'items persistant que nous pouvons utiliser ?

R. Le service d'inventaire Steam est à votre disposition.