Dokumentacja Steamworks
Usługa Ekwipunku Steam
Usługa Ekwipunku Steam to zbiór funkcji umożliwiających grze włączenie trwałych ekwipunków graczy bez konieczności utrzymywania specjalnych serwerów do zarządzania użytkownikami lub przedmiotami.

Możesz zostawić komentarz lub zadać pytanie w dyskusjach na temat Ekwipunku Steam w grupie Steamworks Development.

Opis

Usługa Ekwipunku Steam może być używana na dwa sposoby: bez serwera lub z dodatkiem zaufanego serwera, który zna stan gry.

Bez serwera klient gry może komunikować się bezpośrednio z usługą Steam, by uzyskać informacje o zawartości ekwipunku użytkowników, zużywać i wymieniać przedmioty, a także otrzymywać nowe w związku z czasem spędzonym w grze. Użytkownicy mogą również kupować przedmioty bezpośrednio w sklepie z przedmiotami lub wymieniać się ze sobą oraz handlować przedmiotami poprzez Społeczność Steam.

Jednakże z racji tego, iż klientowi nie można zaufać (a klucze w kliencie mogą zawsze zostać przechwycone przez osobę niepowołaną), nie można w taki sposób dawać użytkownikom konkretnych przedmiotów. Zamiast tego możesz wybrać zbiór przedmiotów, z których zostanie wylosowany jeden (tzw. item drop) oraz częstotliwość, z jaką użytkownicy je będą otrzymywać. W odpowiednim czasie klient gry wywołuje ISteamInventory::TriggerItemDrop. Serwery Steam zarządzają informacjami o czasie gry i częstotliwości otrzymywania przedmiotów dla każdego gracza. Te API są wywoływane z użyciem wewnętrznego „klucza API klienta”, który z założenia nie jest zaufany.

Jeśli posiadasz zaufany serwer, możesz użyć uprzywilejowanego klucza API Steam na serwerze, aby odpowiednich sytuacjach zostały wydane określone przedmioty. Ważne jest jednak, aby pamiętać, że nie możesz ufać własnym klientom, więc możesz to zrobić tylko wtedy, gdy serwer kontroluje stan gry.

W połączeniu z usługą Ekwipunku Steam możesz sprzedawać pojedyncze przedmioty albo zestawy w grze lub poprzez stronę internetową.

Sprawdź tę prezentację ze Steam Dev Days 2016, by zobaczyć informacje ogólne dotyczące implementacji, szczegóły konkretnych problemów, które usługa ekwipunku rozwiązuje, oraz demonstrację tego, jak partnerzy już wykorzystują ten system do obsługi swoich klientów.

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

Implementacja

  1. Utwórz definicje przedmiotów
    Należy zacząć od utworzenia i przesłania definicji przedmiotów (ItemDefs).
    Opisują one możliwe zestawy przedmiotów w grze. Nie musisz ich używać z poziomu samej gry, ale Steam potrzebuje ich, aby poprawnie wyświetlać ekwipunek. Aby stworzyć ItemDefs, musisz znajdować się w sekcji Ekwipunku Steam w swoim obszarze konfiguracji Steamworks. Możesz tam dotrzeć za pośrednictwem tego linku: https://partner.steamgames.com/apps/inventoryservice/
  2. Włącz usługę ekwipunku
    Jeśli masz już definicje przedmiotów, włącz usługę ekwipunku poprzez zaznaczenie „Włącz usługę ekwipunku” na stronie, na którą zostały przesłane definicje. Pamiętaj, że gdy widoczność twojego przedmiotu jest ustawiona jako prywatna, to tylko konta w twojej grupie partnerskiej Steamworks będą posiadały dostęp do twoich przedmiotów w grze.
  3. Ustaw klucz serwera zasobów
    Najpierw wygeneruj klucz Web API wydawcy dla swojej aplikacji (zobacz instrukcje tutaj: Creating a Publisher Web API Key) i umieść go w polu „Klucz serwera zasobów” na stronie ustawień ekonomii Steam.
  4. Pobierz ekwipunek użytkownika
    Spraw, by klient gry pobierał ekwipunek użytkownika, wywołując ISteamInventory::GetAllItems.
    Dobrze jest to robić cyklicznie w przypadku, gdy użytkownik dodał więcej przedmiotów przez handel lub zakup.
    W zależności od gry konieczne może być sprawdzenie tego na początku każdej gry lub poziomu.
  5. Przyznawanie przedmiotów testowych
    Użyj ISteamInventory::GenerateItems, aby dodać konkretne przedmioty do konta gracza w celach rozwojowych produktu.
  6. Przyznaj użytkownikowi przedmiot za czas spędzony w grze (opcjonalne)
    W odpowiednim czasie (zazwyczaj pod koniec gry albo meczu/fazy) wywołaj ISteamInventory::TriggerItemDrop, aby sprawdzić, czy użytkownikowi przysługuje nowy, losowy przedmiot.
  7. Sprzedawaj przedmioty (opcjonalnie)
    Aby dodać wsparcie mikrotransakcji, określ ceny w swoich ItemDefs. Użytkownicy następnie będą mogli kupować przedmioty na kilka różnych sposobów:

API

Dokumentacja dla API Ekwipunku Steam jest dostępna tutaj: ISteamInventory.

Web API

Dokumentacja dla Web API Ekwipunku Steam jest dostępna tutaj: IInventoryService.

Funkcje sieciowe

Oto strukturalne strony sieciowe, do których możesz przekierować użytkownika.
  • ItemCart — może zostać użyte do przesłania koszyka przedmiotów do zakupu przez Steam.
  • BuyItem — może zostać użyte do zakupu pojedynczego przedmiotu przez Steam.