Steamworks-dokumentaatio
Steamin tavaraluettelopalvelu
Steamin tavaraluettelopalvelu on sarja ominaisuuksia, joiden avulla peli voi säilyttää pelaajan esineitä ilman pelaajien tai esineiden hallinnointiin tarvittavan palvelimen perustamista.

Palautetta tai kysymyksiä voi lähettää Steamworks-kehittäjäryhmän Steam-tavaraluettelokeskusteluun.

Kuvaus

Tavaraluettelopalvelua voidaan käyttää kahdella tavalla: joko ilman palvelinta tai luotetulla palvelimella, joka on perillä pelin tilasta.

Pelisovellus voi ilman pelipalvelinta kommunikoida suoraan Steam-palvelun kanssa ja noutaa käyttäjien tavaraluettelosisältöä, käyttää ja vaihtaa esineitä sekä vastaanottaa peliajan perusteella jaettavia uusia esineitä. Käyttäjät voivat myös ostaa esineitä suoraan esinekaupasta tai Steam-yhteisön vaihtomarkkinoilta.

Mutta koska sovellukseen ei voi luottaa (ja hyökkääjä voi aina siepata sovelluksen tunnukset), et voi antaa käyttäjille tiettyjä tuotteita tässä mallissa. Kannattaa mieluummin valita tiettyjä tuotteita esinelöydöiksi ja määrittää, miten usein niitä annetaan. Sopivilla hetkillä pelisovellus käyttää ISteamInventory::TriggerItemDrop-kutsua. Steam-palvelimet hallitsevat peliaikaa ja esineiden myöntämistä pelaajille. Näitä ohjelmointirajapintoja kutsutaan käyttämällä asiakasohjelman sisäistä API-avainta (Client API Key), jota pidetään lähtökohtaisesti epäluotettavana.

Jos sinulla on osallistuva, luotettu palvelin, voit käyttää etuoikeutettua Steam API -avainta palvelimella ja myöntää valikoituja esineitä sopivissa tilanteissa. Kannattaa muistaa, ettei asiakassovellukseen voi luottaa, joten tämän voi tehdä vain, jos palvelin hallitsee pelin tilaa.

Tavaraluettelopalvelua käyttäessäsi voit myydä yksittäisen esineen tai ostoskorillisen esineitä joko pelin sisällä tai verkkopohjaisen kaupan kautta.

Steam Dev Days 2016 -tapahtuman esityksessä kerrotaan yleistä toteutuksesta, tavaraluettelopalvelun ratkaisemista kehittäjien ongelmista ja havainnollistetaan, miten kumppanit käyttävät jo järjestelmää asiakkaiden eduksi.

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

Toteutuksen yleiskatsaus

  1. Luo esinemääritykset
    Aloita luomalla ja lataamalla esinemäärityksiä (ItemDefs).
    Ne kuvaavat, mitkä esineet ovat pelissäsi mahdollisia. Sinun ei tarvitse käyttää niitä itse pelin kautta, mutta Steam tarvitsee ne, jotta se pystyy näyttämään tavaraluettelon oikein. Jotta voit luoda ItemDefs-määrityksiä, siirry Steamworksin määritysosion Steam-tavaraluettelo-osioon. Pääset sinne seuraavasta osoitteesta: https://partner.steamgames.com/apps/inventoryservice/
  2. Ota tavaraluettelopalvelu käyttöön
    Kun sinulla on esinemääritykset, valitse Ota tavaraluettelopalvelu käyttöön -vaihtoehto sivulla, jolla latasit esinemääritykset. Huomaa, että kun esineesi näkyvyys on määritetty yksityiseksi Steam-talouden asetuksissa, vain Steamworksin kumppanuusryhmässä olevat tilit voivat nähdä esineesi pelissä.
  3. Määritä elementtipalvelimen tunnus
    Luo ensin julkaisijan Web API -avain sovelluksellesi (ohjeet: Julkaisijan Web API -tunnuksen luominen) ja lisää se Steam-talouden asetusten Elementtipalvelimen tunnus -kenttään.
  4. Lataa käyttäjän tavaraluettelo
    Pyydä peliohjelmaa lataamaan käyttäjän tavaraluettelo kutsulla ISteamInventory::GetAllItems.
    On yleensä hyvä tehdä tämä säännöllisesti siltä varalta, että käyttäjä on lisännyt tuotteita vaihtokaupan tai ostoksen avulla.
    Pelikohtaisesti saattaa olla tarpeen tehdä tarkistus kunkin pelin tai tason alussa.
  5. Myönnä testituotteita
    Lisää tiettyjä tuotteita nykyisten käyttäjien tileille kehittämistarkoituksia varten kutsulla ISteamInventory::GenerateItems.
  6. Myönnä käyttäjälle esinelöytö peliajan perusteella (valinnainen)
    Tarkista sopivin väliajoin (yleensä ottelun tai vaiheen loputtua) ISteamInventory::TriggerItemDrop-kutsulla, onko käyttäjä ansainnut uuden esinelöydön.
  7. Myy esineitä (valinnainen)
    Jos haluat lisätä mikromaksutuen, määritä ItemDefs-määrityksissä hinnat. Käyttäjät voivat ostaa esineitä muutamalla eri tavalla.

APIt

Steamin tavaraluettelopalvelun API-dokumentaatio on saatavilla ohjelmointirajapintaohjeesta: ISteamInventory

Web APIt

Steamin tavaraluettelon Web APIen dokumentaatio on saatavilla www-ohjelmointirajapintaohjeesta: IInventoryService

Verkkotoiminnot

Nämä ovat jäsennettyjä verkkosivuja, joihin voit uudelleenohjata käyttäjän.
  • Ostoskori – Voidaan käyttää, kun lähetetään ostoskorillinen Steamin kautta ostettavia tuotteita.
  • BuyItem – Voidaan käyttää yksittäisen tuotteen ostamiseen Steamin kautta.