Steamworks Documentation
Serviciul de inventar Steam
Serviciul de inventar Steam este un set de caracteristici care permit unui titlu să ofere jucătorilor inventare permanente, fără a fi necesară utilizarea unor servere speciale pentru gestionarea utilizatorilor sau a obiectelor.

Te rugăm să ne transmiți feedback sau să ne adresezi întrebări în cadrul discuțiilor despre inventarului Steam din grupul dedicat dezvoltatorilor Steamworks.

Descriere

Serviciul de inventar poate fi folosit în două moduri: fără un server sau împreună cu un server sigur care cunoaște starea jocului.

Fără un server de joc, clientul de joc poate comunica direct cu serviciul Steam pentru a obține conținutul din inventarele utilizatorilor, a consuma și schimba obiectele, dar și a primi obiecte noi în urma timpului petrecut în joc. De asemenea, utilizatorii pot achiziționa direct obiecte din magazinul de obiecte, să realizeze schimburi și listări pe piață în cadrul comunității Steam.

Cu toate acestea, deoarece clientul nu este sigur (iar cheile dintr-un client pot fi mereu interceptate de către o persoană cu rele intenții), nu le poți oferi utilizatorilor anumite obiecte folosind acest sistem. În schimb, poți selecta anumite obiecte care pot fi oferite în mod aleatoriu și să configurezi o frecvență cu care acestea sunt acordate. La momentul potrivit, clientul de joc va invoca ISteamInventory::TriggerItemDrop. Serverele Steam gestionează timpul de joc și frecvența de acordare a obiectelor pentru fiecare jucător în parte. Aceste API-uri sunt apelate cu ajutorul unei „chei API de client” care se presupune că nu este sigură.

Dacă ai un server sigur care este utilizat în cadrul acestui sistem, atunci poți folosi o cheie API Steam privilegiată pe acel server și să acorzi obiecte în situațiile potrivite. Trebuie să reții totuși faptul că nu poți avea încredere în propriii clienți, așa că poți realiza acest lucru doar atunci când serverul este cel care coordonează starea jocului.

În cele din urmă, împreună cu serviciul de inventar, poți vinde un obiect individual sau un coș de obiecte fie în joc, fie prin intermediul unui magazin bazat pe tehnologii web.

Urmărește această prezentare de la Steam Dev Days 2016 pentru a vedea o prezentare generală a implementării, cu detalii despre problemele specifice pe care serviciul de inventar le rezolvă pentru dezvoltatori și care demonstrează cum partenerii utilizează deja acest sistem pentru a-și deservi clienții.

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

Prezentare generală a implementării

  1. Creează definițiile obiectelor
    Pentru început, va trebui să creezi și să încarci câteva definiții de obiecte (ItemDefs).
    Acestea vor descrie posibilul set de obiecte din jocul tău. Nu trebuie să le folosești în joc, dar Steam are nevoie de ele pentru a afișa inventarul în mod corect. Pentru a crea „ItemDefs” (definiții de obiecte), accesează secțiunea serviciului de inventar Steam de pe pagina de administrare a aplicației din Steamworks. Poți accesa acea secțiune de aici: https://partner.steamgames.com/apps/inventoryservice/
  2. Activează serviciul de inventar
    După ce ai creat definițiile obiectelor, pornește serviciul de inventar bifând opțiunea „Activează serviciul de inventar” pe pagina în care ai încărcat definițiile obiectelor. Reține că, deși vizibilitatea obiectelor tale este setată drept privată în setările sistemului economic Steam, numai conturile din grupul tău de partener Steamworks vor putea accesa obiectele tale în joc.
  3. Setează cheia serverului cu resurse
    Mai întâi va trebui să generezi pentru aplicația ta o cheie de editor pentru API-ul web (instrucțiuni: Creating a Publisher Web API Key) și să introduci cheia în câmpul „Cheia serverului cu resurse” din cadrul setărilor sistemului economic Steam.
  4. Descarcă inventarul utilizatorilor
    Descarcă inventarul utilizatorilor prin intermediul clientului de joc, apelând funcția ISteamInventory::GetAllItems.
    Este recomandat să apelezi în mod regulat această funcție, în caz că utilizatorul a dobândit mai multe obiecte prin intermediul schimburilor sau achizițiilor.
    În funcție de tipul tău de joc, ar putea fi ideală o verificare a inventarului la începutul fiecărui meci sau nivel.
  5. Acordă obiecte de testare
    Utilizează ISteamInventory::GenerateItems pentru a adăuga anumite obiecte în contul jucătorului actual în scopuri de testare.
  6. Acordă unui utilizator un obiect în urma timpului de joc (opțional)
    La anumite intervale adecvate (de regulă la sfârșit de meci/fază), apelează ISteamInventory::TriggerItemDrop pentru a vedea dacă utilizatorul a dobândit un nou obiect.
  7. Vinde obiecte (opțional)
    Pentru a permite implementarea microtranzacțiilor, definește prețuri în cadrul definițiilor de obiecte. Ulterior, le poți oferi utilizatorilor mai multe modalități prin care le pot achiziționa:

API-uri

Documentația despre API-ul inventarului Steam este disponibilă aici: ISteamInventory.

API-uri web

Documentația pentru API-ul web al inventarului Steam este disponibilă aici: IInventoryService.

Funcții web

Acestea sunt paginile web structurate către care poți redirecționa utilizatorii.
  • ItemCart – Poate fi utilizată pentru a transmite un coș plin de obiecte care să fie achiziționate prin Steam.
  • BuyItem – Poate fi utilizată pentru a achiziționa un singur obiect prin Steam.