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 kommuniserer spillklienten direkte med Steam-tjenesten for å hente en brukers 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 kapres av en angriper), 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 kan spillklienten kalle
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 ut ifra at ikke er pålitelig.
Hvis du har en pålitelig tjener i bruk, kan du bruke en privilegert 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 kontrollerer spilltilstanden.
Du kan også bruke Steams lagertjeneste til å selge en enkeltgjenstand 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 å betjene 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. Du trenger ikke å bruke disse fra selve spillet ditt, men Steam må ha dem for å vise lageret ordentlig. For å opprette ItemDefs kan du gå til seksjonen for Steam-lageret på konfigurasjonssiden 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 utgivernøkkel for applikasjonen (anvisninger: 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 kan det også være aktuelt å kjøre en sjekk på begynnelsen av hver kamp eller hvert brett.
- Tildel testgjenstander
Bruk ISteamInventory::GenerateItems for å legge til spesifikke gjenstander til den aktuelle spillerens konto for utviklingsformål.
- Gi en bruker et slipp etter spilletid (valgfritt)
På aktuelle tidspunkt (vanligvis på slutten av en kamp/fase) kan du kalle 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
Du finner dokumentasjon for API-ene til Steams lagertjeneste i oppslagsverket her:
ISteamInventoryNett-API-er
Du finner dokumentasjon for nett-API-ene til Steams lagertjeneste i oppslagsverket her:
IInventoryServiceNettfunksjoner
Dette er strukturerte nettsider som du kan rette brukeren mot.
- ItemCart – kan brukes for å sende en handlevogn full av gjenstander som skal kjøpes gjennom Steam.
- BuyItem – kan brukes for å kjøpe en enkelt gjenstand gjennom Steam.