Documentazione di Steamworks
Servizio dell'inventario di 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.

Inviaci il tuo parere e le tue domande nelle nuove discussioni sull'inventario di Steam all'interno del gruppo degli sviluppatori di Steamworks.

Descrizione

Il servizio dell'inventario può essere utilizzato in due modi: senza server o con l'aggiunta di un server affidabile che riconosca lo stato di gioco.

Senza un server di gioco, il client può comunicare direttamente con il servizio di Steam per recuperare i contenuti dell'inventario degli utenti, utilizzare e scambiare oggetti o ancora ricevere nuovi oggetti premio ottenuti grazie al tempo di gioco trascorso. 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. Rather you select certain items that can be dropped, and configure a drop frequency. Al momento opportuno, il client di gioco effettua la chiamata a ISteamInventory::TriggerItemDrop. I server di Steam gestiscono il tempo di gioco e la frequenza di rilascio degli oggetti per ciascun giocatore. La chiamata a queste API viene effettuata tramite una "chiave API del client" ritenuta non attendibile.

Se disponi di un server partecipante affidabile, puoi utilizzare una chiave API di Steam privilegiata su tale server e distribuire oggetti specifici in determinate situazioni. È importante tenere presente che non si possono considerare affidabili i propri client, pertanto questa operazione è fattibile solo quando il server è quello principale dello stato del gioco.

Infine, con il servizio di inventario è possibile vendere un singolo articolo o un carrello di articoli all'interno del gioco o tramite un Negozio sul web.

Dai un'occhiata a questa presentazione tratta dai Dev Days di Steam del 2016 per una panoramica sull'implementazione, per dettagli sui problemi specifici che il servizio di inventario risolve per gli sviluppatori e per la dimostrazione dei partner che stanno già offrendo il sistema ai propri clienti.

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

Panoramica sull'implementazione

  1. Crea le definizioni degli oggetti
    Il primo passo è la creazione e il caricamento di alcune definizioni degli oggetti (ItemDefs).
    Le definizioni descrivono il possibile set di oggetti nel gioco. Non devono essere utilizzate dal gioco, ma servono a Steam per visualizzare correttamente l'inventario. Per creare delle definizioni ItemDefs, vai alla sezione dell'inventario di Steam dall'area di configurazione di Steamworks o fai semplicemente clic su questo collegamento: https://partner.steamgames.com/apps/inventoryservice/
  2. Enable Inventory Service
    Once you have item definitions, turn on the Inventory Service by checking "Enable Inventory Service" on the page you uploaded your item definitions.
  3. Imposta la chiave del server della risorsa
    Per prima cosa, genera una chiave API Web dell'editore per la tua applicazione (istruzioni: Creating a Publisher Web API Key), quindi dalle impostazioni dell'Economia di Steam immettila nel campo dedicato alla chiave del server della risorsa.
  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. Rilascia un oggetto per il tempo di gioco di un utente (opzionale)
    Al momento opportuno (in genere al termine di una partita o di una fase) effettua la chiamata a ISteamInventory::TriggerItemDrop per constatare se l'utente ha guadagnato un nuovo oggetto.
  7. Vendi gli oggetti (opzionale)
    Per aggiungere il supporto per le microtransazioni, definisci i prezzi nelle definizioni degli oggetti ItemDefs. Puoi vendere gli oggetti agli utenti in diversi modi:

API

La documentazione per le API dell'inventario di Steam è disponibile qui: ISteamInventory

API Web

La documentazione per l'API Web dell'inventario di Steam è disponibile qui: IInventoryService

Funzioni web

Si tratta di pagine web strutturate a cui è possibile reindirizzare l'utente.
  • Carrello degli oggetti: può essere utilizzata per inviare un carrello pieno di oggetti da acquistare tramite Steam.
  • Acquista oggetto: può essere utilizzato per acquistare un singolo oggetto tramite Steam.