Steamworks dokumentáció
Steam Raktár szolgáltatás
A Steam Raktár szolgáltatás egy sor funkció, amelyek lehetővé teszik egy játéknak, hogy állandó játékosraktárakat engedélyezzen speciális szerverek futtatása nélkül a felhasználók vagy tárgyak kezeléséhez.

Kérjük, hagyj visszajelzést vagy tegyél fel kérdéseket a Steam Inventory témákban a Steamworks Developer csoportban.

Leírás

A Raktár szolgáltatás kétféleképpen használható: vagy szerver nélkül, vagy egy megbízható szerver hozzáadásával, amely ismeri a játékállapotot.

Játékszerver nélkül a játékkliens kommunikálni tud közvetlenül a Steam szolgáltatással a felhasználók raktártartalmának lekérésére, tárgyak felhasználására vagy cseréjére, és új tárgyak megadására a játékidő alapján. A felhasználók vásárolhatnak is tárgyakat közvetlenül a tárgyáruházból, vagy kereskedhetnek és cserélhetnek a Steam Közösség piacain.

Mivel azonban a kliensben nem lehet megbízni (mert egy támadó bármikor elfoghatja a kliensben levő kulcsokat), ebben az elrendezésben konkrét tárgyakat nem tudsz adni a felhasználóknak. Ehelyett ki tudsz választani bizonyos tárgyakat, amelyek eshetnek, és be tudsz állítani egy esési gyakoriságot. A megfelelő időpontokban a játékkliens meghívja az ISteamInventory::TriggerItemDrop-ot. A Steam szerverek játékosonként kezelik a játékidőt és dobási gyakoriságot. Ezek az API-k egy belső „kliens API-kulcs” használatával vannak meghívva, ami feltételezés szerint nem megbízható.

Ha van részt vevő megbízható szervered, akkor használni tudsz privilegizált Steam API-kulcsot a szerveren, és meg tudsz adni konkrét tárgyakat a megfelelő helyzetekben. Továbbra is fontos észben tartani, hogy nem bízhatsz a saját klienseidben, így ezt csak akkor tudod megtenni, amikor a szerver a játékállapot ura.

Végül, a Raktár szolgáltatáshoz kapcsolódóan tudsz eladni egyedi tárgyakat vagy tárgykosarakat játékon belül, vagy webalapú áruházban.

Nézd meg ezt a Steam Dev Days 2016 bemutatót megvalósítási áttekintésért, a Raktár szolgáltatás által a fejlesztőknek megoldott konkrét problémák részleteiért és bemutatóért arról, hogyan használják a partnerek a rendszert már most is vásárlóik kiszolgálására:

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

A megvalósítás áttekintése

  1. Tárgydefiníciók létrehozása
    Néhány tárgydefiníció (ItemDef) létrehozásával és feltöltésével kell kezdened.
    Ezek írják le a játékodban levő lehetséges tárgyak készletét. Magából a játékból nem kell ezeket használnod, de a Steamnek szüksége van rájuk a raktár megfelelő megjelenítéséhez. ItemDef-ek létrehozásához menj a Steamworks konfigurációs területed Steam Raktár részébe. Innen tudsz odajutni: https://partner.steamgames.com/apps/inventoryservice/
  2. A Raktár szolgáltatás engedélyezése
    Miután vannak tárgydefinícióid, kapcsold be a Raktár szolgáltatást a „Raktár szolgáltatás engedélyezése” bejelölésével azon az oldalon, ahol a tárgydefinícióidat töltötted föl. Ügyelj rá, hogy amíg a tárgyak láthatósága Privátra van állítva a Steam Gazdaság beállításokban, addig csak a Steamworks partnercsoportodba tartozó fiókok fognak tudni hozzáférni a tárgyaidhoz a játékon belül.
  3. Az elemszerver-kulcs beállítása
    Először hozz létre kiadói web API-kulcsot az alkalmazásodhoz (útmutató: Creating a Publisher Web API Key), és írd be az Elemszerver-kulcs mezőbe a Steam Gazdaság beállításokban.
  4. A felhasználó raktárának letöltése
    Töltesd le a játékklienseddel a felhasználói raktárt az iSteamInventory::getAllItems meghívásával.
    Általában jó ezt rendszeresen megtenni arra az esetre, ha a felhasználó további tárgyakat adott hozzá cserével vagy vásárlással.
    A játékodtól függően az egyes játékok vagy pályák elején történő ellenőrzés megfelelő lehet.
  5. Teszttárgyak megadása
    Használd az ISteamInventory::GenerateItems-t konkrét tárgyak megadására a jelenlegi játékos fiókjára tesztelési céllal.
  6. Játékidős tárgydobás adása felhasználóknak (elhagyható)
    Megfelelő időpontokban (általában a meccs/fázis végén) hívd meg az ISteamInventory::TriggerItemDrop-ot annak megnézésére, érdemelt-e ki a felhasználó új tárgydobást.
  7. Tárgyak eladása (elhagyható)
    Mikrotranzakció-támogatás hozzáadásához határozz meg árakat az ItemDef-jeidben. Ezt követően különböző módokon lehet megvásárolni azokat:

API-k

A Steam Raktár API-k dokumentációja az API-referenciában érhető el itt: ISteamInventory

Webes API-k

A Steam Raktár webes API-k dokumentációja a webes API-referenciában érhető el itt: IInventoryService

Webes funkciók

Ezek strukturált weboldalak, amelyekre át tudod irányítani a felhasználót.
  • ItemCart – Használatával elküldhető egy kosárnyi tárgy Steamen keresztüli megvásárlásra.
  • BuyItem – Használatával megvásárolható egy adott tárgy a Steamen keresztül.