Il servizio dell'inventario di Steam è un insieme di funzionalità che consentono di fornire agli utenti inventari sempre disponibili, senza bisogno di server speciali per gestire i giocatori o gli oggetti.
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. Gli utenti possono inoltre acquistare oggetti direttamente dal Negozio o attraverso i mercati di commercio e scambio nella Comunità di Steam.
Tuttavia, poiché il client non è considerato attendibile (e i codici in un client rischiano sempre di essere acquisiti da un utente malintenzionato), non potrai distribuire agli utenti oggetti specifici in questo schema. Quello che puoi fare è selezionare alcuni oggetti da rilasciare come premi e configurarne la frequenza di rilascio. 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=jDfhPTSOLisPanoramica sull'implementazione
- 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/
- Attiva il servizio dell'inventario
Dopo aver definito le definizioni degli oggetti, attiva il servizio dell'inventario selezionando la casella di spunta "Attiva il servizio dell'inventario" nella pagina dove hai caricato le definizioni degli oggetti. Nota che se la visibilità degli oggetti è impostata su privato nelle impostazioni Economia di Steam, solo gli account nel tuo gruppo di partner di Steamworks potranno accedere ai tuoi oggetti nel gioco.
- Imposta la chiave del server della risorsa
Per prima cosa, genera una chiave dell'API web da editore per la tua applicazione (istruzioni: Creare una chiave dell'API web da editore), quindi dalle impostazioni dell'Economia di Steam immettila nel campo dedicato alla chiave del server della risorsa.
- Scarica l'inventario degli utenti
Consenti al client di gioco di scaricare l'inventario degli utenti effettuando la chiamata a ISteamInventory::GetAllItems.
In caso che l'utente abbia ottenuto più oggetti tramite scambi o acquisti, è buona prassi eseguire questa operazione periodicamente.
A seconda del tipo di gioco, potrebbe essere appropriato eseguire un controllo all'inizio di ogni partita o livello.
- Rilascia oggetti per testare il sistema
Con ISteamInventory::GenerateItems puoi aggiungere oggetti specifici agli attuali account dei giocatori per scopi di sviluppo.
- 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.
- 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:
ISteamInventoryAPI web
La documentazione sull'API web dell'inventario di Steam è disponibile qui:
IInventoryServiceFunzioni 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.