Steams lagertjeneste er et sett med funksjoner som lar et spill ha vedvarende lager for spillere uten å måtte kjøre spesielle tjenere for å behandle brukere eller gjenstander.
Gi oss tilbakemelding og still spørsmål i
diskusjonene om Steams lager i gruppen for Steamworks-utviklere.
Beskrivelse
Lagertjenesten kan brukes på to måter – enten tjenerløst eller med en pålitelig tjener som kjenner til spilltilstanden.
Uten en spilltjener så kommuniserer spillklienten direkte med Steam-tjenesten for å hente en bruker lagerinnhold, bruke opp og bytte gjenstander og motta nye gjenstander som utdeles med grunnlag i spilletid. Brukere kan også kjøpe gjenstander direkte fra gjenstandsbutikken, eller handle eller bytte i Steam-samfunnet.
Men ettersom klienten ikke er pålitelig (og nøklene i en klient alltid kan fanges av en angriper), så kan du ikke gi brukere spesifikke gjenstander med denne metoden. Du må heller velge spesifikke gjenstander som kan slippes, og konfigurere hvor ofte de slippes. Ved passende tidspunkt så aktiverer spillklienten
ISteamInventory::TriggerItemDrop. Steams tjenere behandler spilletid og slippfrekvens for hver spiller. Disse API-ene kalles med en intern klient-API-nøkkel som vi går utifra at ikke er pålitelig.
Hvis du har en pålitelig tjener som deltar, så kan du bruke en privilegiert Steam-API-nøkkel på tjeneren og tildele spesifikke gjenstander når aktuelt. Det er fremdeles viktig å huske på at du ikke kan stole på dine egne klienter, så du kan kun gjøre dette når tjeneren er kontrollerer spilltilstanden.
Til slutt kan du også bruke Steams lagertjeneste til å selge en individuell gjenstand eller en samling gjenstander
i spillet eller gjennom en nettbasert
butikk.
Ta en titt på denne presentasjonen fra Steam Dev Days 2016 for en oversikt over implementasjon, informasjon om spesifikke problemer som lagertjenesten løser for utviklere og en demonstrasjon av hvordan partnere allerede bruker systemet for å hjelpe kunder.
https://www.youtube.com/watch?v=jDfhPTSOLisOversikt over implementasjon
- Opprett gjenstandsdefinisjoner
Du må begynne ved å opprette og laste opp gjenstandsdefinisjoner (ItemDefs).
Disse beskriver mulige sett med gjenstander i spillet ditt. Du trenger ikke å bruke disse fra selve spillet ditt, men Steam må ha dem for å vise lageret ordentlig. For å opprette ItemDefs, gå til seksjonen for Steam-lageret i konfigurasjonsområdet ditt i Steamworks. Du kommer deg dit herfra: https://partner.steamgames.com/apps/inventoryservice/
- Slå på lagertjenesten
Når du har gjenstandsdefinisjoner, slå på lagertjenesten ved å krysse av for «Slå på lagertjeneste» på siden der du lastet opp gjenstandsdefinisjonene. Merk at når gjenstandssynligheten er angitt til privat i Steam-økonomiinnstillingene, er det kun kontoer i Steamworks-partnergruppen som kan få tilgang til gjenstandene i spillet.
- Angi gjenstandstjenerens nøkkel
Generer først en nett-API-nøkkel for utgiver for applikasjonen din (instrukser: Slik oppretter du en utgivernøkkel for nett-API-et) og legg den i feltet for ressurstjenernøkkel i innstillinger for Steam-økonomien.
- Last ned brukerens lager
Last ned brukerens lager i spillklienten ved å kalle ISteamInventory::GetAllItems.
Det er vanligvis lurt å gjøre dette regelmessig i tilfelle brukeren har lagt til flere gjenstander gjennom byttehandel eller kjøp.
Avhengig av spillet, så kan det også være aktuelt å kjøre en sjekk på begynnelsen av hver kamp eller hvert nivå.
- Tildel testgjenstander
Bruk ISteamInventory::GenerateItems for å legge til spesifikke gjenstander til den aktuelle spillerens konto for utvikling.
- Gi en bruker et slipp etter spilletid (valgfritt)
På aktuelle tidspunkt (vanligvis på slutten av en kamp/fase) kall ISteamInventory::TriggerItemDrop for å se om en bruker har tjent et nytt slipp.
- Selg gjenstander (valgfritt)
Du må definere priser i itemdefs for å legge til støtte for mikrotransaksjoner. Spillere kan da kjøpe dem på noen forskjellige måter:
API-er
Dokumentasjon for API-ene til Steam-lageret er nå tilgjengelig i oppslagsverket her:
ISteamInventoryNett-API-er
Dokumentasjonen for nett-API-et til Steams lagertjeneste finnes i oppslagsverket for nett-API her:
IInventoryServiceNettfunksjoner
Dette er strukturerte nettsider som du kan rette brukeren mot.
- ItemCart – Kan brukes for å sende en handlevogn som er full av gjenstander som skal kjøpes gjennom Steam.
- BuyItem – Kan brukes for å kjøpe en enkelt gjenstand gjennom Steam.