Steamworks-dokumentation
Steam-inventartjeneste
Steam-inventartjenesten er et sæt funktioner, der gør et spil i stand til at bruge vedvarende spillerinventarer uden at skulle køre særlige servere for at håndtere brugere eller genstande.

Giv os feedback eller stil spørgsmål i Steam-inventardiskussionerne i Steamworks-udviklergruppen.

Beskrivelse

Inventartjenesten kan bruges på to måder – enten uden en server eller med tilføjelse af en pålidelig server, som kender spillets tilstand.

Uden en spilserver kan spilklienten kommunikere direkte med Steam-tjenesten for at hente brugeres inventarindhold, indtage og bytte genstande og modtage nye genstande, som gives som en konsekvens af spilletid. Brugere kan også købe genstande direkte fra genstandsbutikken eller bytte eller udveksle genstande i Steam-fællesskabet.

Men fordi klienten er upålidelig (og nøglerne i klienten altid kan fanges af en hacker), kan du ikke give brugere specifikke genstande i denne ordning. I stedet vælger du bestemte genstande, som kan droppes, og indstiller en drop-frekvens. På passende tidspunkter kalder spilklienten ISteamInventory::TriggerItemDrop. Steam-servere administrerer spilletid og drop-frekvenser pr. spiller. Disse API'er kaldes ved hjælp af en intern "Klient-API-nøgle", som antages at være upålidelig.

Hvis du har en pålidelig server, kan du bruge en priviligeret Steam-API-nøgle på serveren og give bestemte genstande i passende situationer. Det er stadigvæk vigtigt at huske på, at du ikke kan stole på dine egne klienter, så du kan kun gøre dette, når spiltilstanden administreres af serveren.

Endelig i forbindelse med inventartjenesten kan du sælge en individuel genstand eller en kurv med genstande, i spil eller via en webbaseret butik.

Se denne præsentation fra Steam Dev Days 2016 for at få et overblik over implementering, detaljer om specifikke problemer, som inventartjenesten løser for udviklere, og en demonstration af, hvordan partnere allerede bruger systemet til at betjene deres kunder.

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

Implementeringsoversigt

  1. Opret genstandsdefinitioner
    Du skal starte med at oprette og uploade nogle genstandsdefinitioner (ItemDefs).
    Disse beskriver de mulige sæt af genstande i dit spil. Du behøver ikke at bruge disse fra selve spillet, men Steam har brug for dem for at vise inventaret korrekt. For at oprette ItemDefs skal du gå til sektionen "Steam-inventar" i området for dine Steamworks-konfigurationer. Du kan komme derhen ved at klikke her: https://partner.steamgames.com/apps/inventoryservice/
  2. Slå inventartjeneste til
    Når du har dine genstandsdefinitioner, skal du slå inventartjenesten til ved at markere "Slå inventartjeneste til" på siden, hvor du uploadede dine genstandsdefinitioner. Bemærk, at når din genstandssynlighed er angivet som "privat" i Steam-økonomiindstillingerne, er det kun konti i din Steamworks-partnergruppe, som vil have adgang til dine genstande i spil.
  3. Sæt nøgle til asset server
    Først skal du genere en web-API-udgivernøgle (instruktioner: Sådan opretter du en web-API-udgivernøgle) og sætte den ind i feltet "Nøgle til asset server" i indstillingerne for Steam-økonomien.
  4. Download brugeres inventar
    Få din spilklient til at downloade brugernes inventar ved at kalde ISteamInventory::GetAllItems.
    Det er normalt godt at gøre dette periodisk i tilfælde af, at brugeren har tilføjet flere genstande via byttehandler eller køb.
    Afhængigt af dit spil vil et tjek i begyndelsen af hvert spil eller level være passende.
  5. Giv testgenstande
    Brug ISteamInventory::GenerateItems til at tilføje specifikke genstande til den aktuelle spillers konto til udviklingsformål.
  6. Tildel bruger et drop baseret på spilletid (valgfrit)
    På passende tidspunkter (typisk i slutningen af en kamp/fase) skal ISteamInventory::TriggerItemDrop kaldes for at se, om brugeren har optjent et nyt drop.
  7. Sælg genstande (valgfrit)
    For at tilføje understøttelse af mikrotransaktioner skal du definere dine itemdefs. Du kan derefter få folk til at købe dem på et par forskellige måder:

API'er

Dokumentation om API'er til Steam-inventaret findes i API-referencen her: ISteamInventory

Web-API'er

Dokumentation om web-API'er til Steam-inventaret findes i API-referencen her: IInventoryService

Webfunktioner

Disse er skrukturerede websider, som du kan omdirigere brugeren til.
  • ItemCart – Kan bruges til at sende en indkøbskurv fyldt med genstande til køb gennem Steam.
  • BuyItem – Kan bruges til at købe enkeltgenstande gennem Steam.