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. Erstellen von Gegenstandsdefinitionen:
    Zunächst müssen Sie einige Gegenstandsdefinitionen (ItemDefs) erstellen und hochladen.
    Diese beschreiben die möglichen Gegenstandssets in Ihrem Spiel. Sie müssen die Definitionen nicht innerhalb des eigentlichen Spiels verwenden, aber Steam benötigt diese zur korrekten Anzeige des Inventars. Um ItemDefs zu erstellen, wechseln Sie in Ihrem Steamworks-Konfigurationsbereich zum Abschnitt „Steam-Inventar“. Sie können auch folgenden Link verwenden: https://partner.steamgames.com/apps/inventoryservice/
  2. Aktivieren des Inventardienstes:
    Sobald die Gegenstandsdefinitionen vorliegen, aktivieren Sie den Inventardienst, indem Sie auf der Seite, auf die Sie Ihre Gegenstandsdefinitionen hochgeladen haben, die Option „Inventardienst aktivieren“ auswählen. Bitte bedenken Sie, dass nur Accounts in Ihrer Steamworks-Partnergruppe auf Ihre Gegenstände im Spiel zugreifen können, wenn deren Sichtbarkeit in den Einstellungen des Steam-Wirtschaftssystems auf „privat“ gesetzt ist.
  3. Einstellen des Schlüssels des Asset-Servers:
    Generieren Sie zunächst einen Publisher-Web-API-Schlüssel für Ihre Anwendung (Anleitung unter Generieren eines Publisher-Web-API-Schlüssels) und fügen Sie diesen in den Einstellungen für das Steam-Wirtschaftssystem im Feld „Schlüssel des Asset-Servers“ ein.
  4. Herunterladen des Benutzerinventars:
    Lassen Sie Ihren Spiel-Client das Benutzerinventar herunterladen, indem Sie ISteamInventory::GetAllItems aufrufen.
    Es empfiehlt sich, dies regelmäßig zu tun, da der Benutzer weitere Gegenstände gekauft oder durch Handel erworben haben könnte.
    Je nach Spiel ist eine Prüfung zu Beginn jedes Spiels oder jedes Levels angemessen.
  5. Gewähren von Testgegenständen
    Fügen Sie dem Account des Spielers zu Testzwecken mit ISteamInventory::GenerateItems bestimmte Gegenstände hinzu.
  6. Gewähren einer Spielzeitbelohnung für den Spieler (optional):
    Rufen Sie zu bestimmten Zeitpunkten (typischerweise am Ende einer Partie/Phase) ISteamInventory::TriggerItemDrop auf, um zu ermitteln, ob der Spieler einen neuen Gegenstand verdient hat.
  7. Verkaufen von Gegenständen (optional):
    Wenn Sie Unterstützung für Mikrotransaktionen hinzufügen möchten, definieren Sie Preise in Ihren ItemDefs. So können Ihre Spieler auf mehrere verschiedene Arten Gegenstände kaufen:

APIs

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

Web-APIs

Die Dokumentation zu den Steam-Inventar-Web-APIs finden Sie in der Web-API-Referenz unter folgendem Link: IInventoryService.

Webfunktionen

Hierbei handelt es sich um strukturierte Webseiten, auf die Sie den Nutzer umleiten können.
  • ItemCart: Ermöglicht das Senden eines Warenkorbs mit Gegenständen für den Kauf über Steam.
  • BuyItem:Ermöglicht den Kauf eines einzelnen Gegenstands über Steam.