Mitgliedsfreie Ansicht

Startseite Dokumentation & Hilfe
Steamworks-Dokumentation
Steam-Inventardienst
Der Steam-Inventardienst besteht aus einer Reihe von Funktionen, die es ermöglichen, persistente Gegenstände in ein Spiel zu integrieren, ohne hierfür separate Server zu nutzen.

In der Steamworks-Entwicklergruppe können Sie im Diskussionsbereich zum Steam-Inventar Feedback hinterlassen oder Fragen stellen.

Beschreibung

Der Inventardienst kann auf zwei Arten verwendet werden: Entweder ohne Server oder mit einem zusätzlichen vertrauenswürdigen Server, dem der Spielstatus bekannt ist.

Ohne einen Spielserver kann der Spiel-Client direkt mit dem Steam-Dienst kommunizieren, um Inhalte von Nutzerinventaren abzurufen, Gegenstände zu verbrauchen/auszutauschen und neue Gegenstände zu empfangen, die basierend auf Spielzeit gewährt wurden. Außerdem können Nutzer Gegenstände auch direkt im Shop kaufen oder in der Steam Community handeln und tauschen.

Da der Client jedoch nicht vertrauenswürdig ist (und die Schlüssel auf einem Client von einem Angreifer übernommen werden können), können Sie über diese Methode keine bestimmten Gegenstände an Ihre Nutzer ausgeben. Stattdessen legen Sie eine Auswahl möglicher Gegenstände fest und konfigurieren die Häufigkeit, mit der Gegenstände gefunden werden sollen. Zu gegebener Zeit ruft der Spielclient ISteamInventory::TriggerItemDrop auf. Steam-Server verwalten die Spielzeit und die Häufigkeit von Gegenständen pro Spieler. Diese APIs werden über einen internen "Client-API-Schlüssel" aufgerufen, der als nicht vertrauenswürdig gilt.

Wenn Sie einen vertrauenswürdigen Server einbeziehen, können Sie einen privilegierten Steam-API-Schlüssel auf dem Server verwenden und je nach Situation ganz bestimmte Gegenstände vergeben. Trotzdem dürfen Sie nicht vergessen, dass Sie Ihren eigenen Clients nicht trauen können, also können Sie so nur vorgehen, wenn der Server den Spielstatus verwaltet.

Schließlich können Sie mit dem Inventardienst einzelne Gegenstände oder einen Warenkorb mit Gegenständen im Spiel oder über eine webbasierte Shopseite verkaufen.

In der folgenden Präsentation von den Steam Dev Days 2016 erhalten Sie einen Überblick zur Implementierung und erfahren Einzelheiten zu bestimmten Problemen, die Entwickler mit dem Inventardienst lösen können. Außerdem wird demonstriert, wie unsere Partner dieses System bereits für ihre Kunden einsetzen.

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

Übersicht zur Implementierung

  1. Create Item Definitions
    You'll need to start by creating and uploading some item definitions (ItemDefs).
    These describe the possible set of items in your game. You don't need to use these from your game itself but Steam needs them to display inventory correctly. To create ItemDefs, go to the Steam Inventory section of your Steamworks configuration area. You can get there from here: https://partner.steamgames.com/apps/inventoryservice/
  2. Enable Inventory Service
    Once you have item definitions, turn on the Inventory Service by checking "Enable Inventory Service" on the page you uploaded your item definitions.
  3. Set Asset Server Key
    First generate a Publisher Web API key for your application (instructions: Generieren eines Publisher-Web-API-Schlüssels) and put it into the Asset Server Key field in the Steam Economy Settings.
  4. Download Users Inventory
    Have your game client download the users inventory by calling ISteamInventory::GetAllItems.
    Its usually good to do this periodically in case the user has added more items via trading or purchase.
    Depending on your game, a check at the beginning of each game or level might be appropriate.
  5. Grant Test Items
    Use ISteamInventory::GenerateItems to add specific items to the current players account for development purposes.
  6. Grant User a Playtime Drop (optional)
    At appropriate times (typically the end of a match/phase) call ISteamInventory::TriggerItemDrop to see if the user has earned a new drop.
  7. Sell Items (optional)
    To add microtransaction support, define prices in your itemdefs. You can then have people purchase them in a few difference ways:

APIs

Die Dokumentation zu den Steam-Inventar-APIs finden Sie in der API-Referenz: ISteamInventory

Web-APIs

Documentation for the Steam Inventory Web API is available on the Web API Reference here: IInventoryService

Webfunktionen

Hierbei handelt es sich um strukturierte Webseiten, auf die Sie den Nutzer umleiten können.
  • ItemCart - Can be used to send a cart full of items to be purchased through Steam.
  • BuyItem - Can be used to purchase a single item through Steam.