Documentazione di Steamworks
Economia di Steam

Panoramica

Economia di Steam è il nome con cui definiamo una serie di funzionalità che consentono a oggetti di giochi diversi di funzionare insieme in un singolo sistema condiviso su Steam. Gli oggetti interni ai giochi dell'Economia di Steam possono essere acquistati tramite microtransazioni, guadagnati grazie agli achievement di Steam, distribuiti all'interno del gioco o offerti in base a vari tipi di promozioni. Gli utenti possono visualizzare i propri inventari dei giochi nella Comunità di Steam, includere i collegamenti agli oggetti nelle chat e scambiare gli oggetti con altri utenti. Steam fornisce l'interfaccia utente e si occupa del lavoro pesante necessario per queste funzionalità, ma il controllo dei singoli oggetti è lasciato completamente al gioco.

Gli oggetti interni al gioco nell'Economia di Steam sono denominati risorse e si riferiscono a tutto ciò che l'utente possiede per un dato gioco. Tra gli esempi possiamo trovare l'equipaggiamento, i veicoli, i personaggi, gli animali, le ricette per combinare oggetti e così via. Il gioco indica a Steam il modo in cui mostrare le risorse agli utenti e ne definisce la funzione pratica, oltre a tenere traccia delle risorse che l'utente possiede e a comunicare questa informazione sia agli utenti sia agli agenti di supporto. Il gioco determina inoltre quali risorse sono scambiabili, a quali restrizioni di spazio gli utenti devono sottostare per conservare gli oggetti e si assicura di fornire le informazioni relative a quanto appena descritto agli agenti di supporto.

In ogni gioco è possibile controllare questi elementi grazie all'implementazione dell'API Steam Asset. Si tratta di una raccolta di API web per consentire la visibilità di Steam nel back-end del gioco. La documentazione completa per l'API Steam Asset è disponibile più in basso.

Requisiti

Per aggiungere un gioco all'Economia di Steam è necessario rispettare alcuni requisiti.

  • Il gioco deve disporre di un back-end di risorse che non sia archiviato nel client. È necessario fornirsi di un database ospitato in un datacenter, che può essere di proprietà di un editore o sviluppatore oppure essere fornito da un servizio di cloud hosting. Steam offre un servizio di inventario gratuito che viene utilizzato come archivio persistente degli oggetti del tuo gioco.
  • È necessario che il gioco definisca una serie di ID di contesto che determinino i contenitori in cui un utente può conservare le risorse.
  • Ogni gioco deve fornire un ID persistente a 64 bit per ogni risorsa che può essere scambiata con un altro utente. Questo ID della risorsa deve essere univoco almeno all'interno del contesto in cui la risorsa è contenuta.
  • Le icone di inventario per tutte le risorse interne al gioco devono essere fornite tramite un server web. Tali icone devono essere di dimensioni pari a 96 pixel x 96 pixel e 200 pixel x 200 pixel, in formato JPG, PNG o GIF. Steam fornirà la larghezza di banda necessaria per mostrare queste immagini agli utenti.
  • È necessario implementare nel gioco almeno i metodi inclusi nella sezione Scambio di Steam riportata di seguito.
  • È inoltre necessario implementare i metodi dell'integrazione dallo strumento di supporto.

Continua a leggere se...

Intendi creare un tuo servizio di monitoraggio delle risorse. Nella parte seguente di questo documento viene illustrata l'API web richiesta.
In caso contrario, ossia se prevedi di utilizzare il servizio dell'inventario di Steam, non è necessario procedere oltre.

Sistema di scambio di Steam

Il sistema di scambio di Steam utilizza un'interfaccia web per portare a termine gli scambi e visualizzare gli inventari. Queste pagine vengono popolate dai risultati di GetContexts, GetContextContents, GetAssetClass e GetAssetClassInfo nell'API della risorsa. Una volta che lo scambio viene confermato da entrambi gli utenti, viene eseguito un commit a tre fasi in tutti i giochi coinvolti nello scambio. Tutta la logica di commit e rollback per il commit a tre fasi viene gestita nel server dell'Economia su Steam, che modifica la proprietà dell'oggetto nei giochi tramite i metodi TradeSetUnowned e TradeSetOwned.
GETGetContexts/v0001Restituisce l'elenco dei contesti di un utente.
GETGetContextContents/v0001Restituisce la classe di ciascuna delle risorse dell'utente e la valuta da visualizzare in uno scambio o nella Comunità di Steam.
GETGetAssetClass/v0001Restituisce la classe e il proprietario della risorsa da visualizzare in uno scambio o nella Comunità di Steam per un elenco di risorse.
GETGetAssetClassInfo/v0001Restituisce le informazioni di visualizzazione dell'utente per una singola classe di risorse.
POSTTradeSetUnowned/v0001Viene chiamata quando il server dell'Economia deve far sì che il gioco rimuova una risorsa o una valuta da un utente.
POSTTradeSetOwned/v0001Questa chiamata viene effettuata quando il server dell'Economia deve far sì che il gioco modifichi lo stato della risorsa da mancante a posseduta.

Integrazione dello strumento di supporto

Lo strumento di supporto è il sistema che gli agenti di supporto di Steam utilizzano per fornire assistenza nella risoluzione dei problemi riscontrati con le risorse degli utenti (e con qualsiasi altra questione relativa all'account di Steam). L'implementazione delle seguenti API consente a entrambe le forme dello strumento di supporto di accedere alle risorse di un gioco.

L'accesso allo strumento di supporto per i giochi nell'Economia di Steam viene fornito attraverso due pagine: Economia e Cronologia. La pagina Economia interagisce con le risorse in un contesto mediante GetContextContents e GetAssetClassInfo. La pagina Cronologia utilizza GetUserHistory, GetHistoryCommandDetails e HistoryExecuteCommands. Entrambe le pagine mostreranno i dettagli delle risorse con i risultati ottenuti da SupportGetAssetHistory. La chiamata a ContextCommand viene utilizzata per consentire agli agenti di supporto di eseguire azioni a livello di contesto e a livello di risorsa.
POSTContextCommand/v0001Esegue un comando di contesto dallo strumento di supporto.
GETGetUserHistory/v0001Restituisce la cronologia di audit di un utente da utilizzare nello strumento di assistenza.
GETGetHistoryCommandDetails/v0001Restituisce a un agente di supporto l'elenco dettagliato delle azioni di comando per un comando della cronologia.
POSTHistoryExecuteCommand/v0001Esegue una serie di azioni di comando della cronologia su un utente per l'agente di supporto.
GETSupportGetAssetHistory/v0001Restituisce informazioni sulla cronologia di una risorsa da fornirci tramite lo strumento di assistenza.

Acquisto web

Puoi consentire agli utenti di acquistare oggetti nel gioco dal web implementando le API indicate di seguito.
POSTStartWebAssetTransaction/v0001Avvia una transazione per conto di un utente per gli oggetti specificati. Esegue la chiamata a ISteamMicroTxn/InitTxn per far sì che Steam configuri la transazione e per ottenere un URL di inoltro.
POSTFinalizeWebAssetTransaction/v0001Questa chiamata viene effettuata al termine della transazione di pagamento degli oggetti da parte dell'utente. La chiamata a ISteamMicroTxn/FinalizeTxn deve essere effettuata prima del tentativo di rilascio degli oggetti all'utente.
GETGetAssetPrices/v0001Restituisce i prezzi e le categorie degli oggetti che gli utenti possono acquistare.

Rimborsi di Steam

La politica di rimborso di Steam consente agli utenti di ottenere rimborsi per gli acquisti in gioco entro 48 ore dall'acquisto, purché nessuno degli oggetti acquistati sia stato utilizzato, modificato o trasferito. Se desideri offrire questa possibilità ai tuoi utenti, dovrai implementare le API elencate di seguito.
GETQueryRefundAllowed/v0001Viene chiamata per controllare lo stato di ciascun oggetto relativo a un acquisto in gioco.
POSTRefundPurchase/v0001Viene chiamata quando un rimborso è stato approvato in modo automatico o da un agente di supporto.

Risorse esterne

Se il tuo gioco prevede l'importazione di risorse da un altro gioco, per recuperarle puoi effettuare la chiamata a GetExportedAssets.
GETGetExportedAssets/v0001Restituisce un elenco di oggetti esportati da un altro gioco su Steam.

Versioni dell'interfaccia

Per consentire l'utilizzo di versioni future dell'API della risorsa, il server dell'Economia di Steam aggiungerà un numero di versione a ogni URL chiamato. Attualmente tutti i metodi sono alla versione 1. Di conseguenza, "/v0001" verrà aggiunto a ciascun URL. Quindi, se l'URL del server della risorsa è https://api.mygame.com/assetapi, il metodo GetContexts verrà chiamato come https://api.mygame.com/assetapi/GetContexts/v0001 seguito dai parametri GET specificati per quel metodo
.

Chiavi API

Impostando una chiave API nella scheda Economia dei dettagli tecnici del gioco, tale chiave verrà trasmessa in ogni chiamata effettuata dal server dell'Economia.
La chiave farà parte di un parametro GET o POST (a seconda del tipo di richiesta) denominato "chiave". Quando ricevi una chiamata, verifica che la chiave corrisponda a quella impostata nella scheda Economia per assicurarti che la chiamata provenga effettivamente dal server dell'Economia.

Domande frequenti

D: Cos'è l'Economia di Steam?

R: La piattaforma di Steam offre funzionalità integrate per effettuare scambi sicuri e affidabili, un Mercato mondiale con transazioni in valuta reale, un focus dettagliato sugli oggetti all'esterno del gioco fornito attraverso la Comunità di Steam e molto altro. Puoi scegliere solo alcune di queste funzionalità o decidere di implementarle tutte.

D: Che vantaggi offre la partecipazione all'Economia di Steam?

R: Gli oggetti nei giochi abilitati al sistema dell'Economia hanno un valore maggiore di quelli che possono essere utilizzati esclusivamente negli ecosistemi dei singoli giochi, e portano pertanto a una maggiore soddisfazione del cliente.

I giocatori possono creare collegamenti agli oggetti sia nei propri profili di Steam sia nelle chat, garantendo una visibilità aggiuntiva e gratuita al gioco e agli oggetti contenuti al suo interno. Per i giochi che supportano lo scambio, gli oggetti acquisiscono valore non solo per i loro proprietari attuali, ma anche per tutti gli altri giocatori attivi e futuri. Questo significa, ad esempio, che tutti i giochi abilitati all'Economia di Steam acquisiscono interesse e valore anche per i giocatori di tutti gli altri giochi che sfruttano il medesimo sistema (come Team Fortress 2 e Dota 2).

Inoltre, puoi sfruttare la nostra infrastruttura per le transazioni di scambio o in valuta e decidere di aggiungere qualsiasi funzionalità futura gratuitamente.

D: Quali sono i requisiti per partecipare?

R: Il gioco deve disporre di un back-end delle risorse che non sia archiviato nel client, ossia un server per gli oggetti. È necessario disporre di un database ospitato in un datacenter.
Tale datacenter può essere di proprietà di un editore o sviluppatore oppure essere fornito da un servizio di cloud hosting. Steam offre un servizio di inventario gratuito che viene utilizzato come archivio persistente degli oggetti del tuo gioco. Per poter abilitare la comunicazione con Steam, è necessario implementare un numero ridotto di API web in questo back-end.

D: Posso sfruttare solo alcune funzionalità dell'Economia?

R: Le API web a cui Steam effettua la chiamata forniscono un'unica interfaccia comune per la visualizzazione degli oggetti e lo scambio tra giochi nella Comunità di Steam e nel Mercato della Comunità di Steam. Puoi decidere quali funzionalità offrire a livello generale (ad esempio, abilitare lo scambio ma disabilitare tutte le transazioni del Mercato) o a livello specifico (ad esempio, abilitare la visualizzazione di tutti gli oggetti dalla Comunità, consentire lo scambio di alcuni e offrire la possibilità di inserire solo oggetti specifici in un elenco del Mercato). Puoi modificare queste impostazioni per ciascun oggetto in qualsiasi momento.

D: Valve offre un back-end persistente per gli oggetti che può essere utilizzato come funzionalità di Steamworks?

R: Sì, è disponibile il servizio dell'inventario di Steam.