無所屬單位

首頁 文獻與幫助
Steamworks 文獻庫
Steam 物品庫服務
Steam 物品庫服務是一組能在遊戲上啟用持久化玩家物品庫的功能,不必另外執行特別伺服器來管理玩家或物品。

請在 Steamworks 開發者群組的 Steam 物品庫討論區中向我們回饋意見或提出問題。

說明

物品庫服務有兩種使用方式:無伺服器,或者另一台知道遊戲狀態且受信任的伺服器。

如果不使用遊戲伺服器,遊戲用戶端便可直接聯繫 Steam 服務,取得使用者物品庫內容、消費與交換物品,或取得達到一定遊戲時間能獲得的新物品。使用者也可直接從物品商店購買物品,或在 Steam 社群市場中交換或交易。

然而,由於用戶端不可信(且用戶端中的序號可能會被駭客獲取),您不能以此方式給予顧客特定物品。您必須選擇一些可掉落的物品,並設定掉落頻率。在適當的時候,遊戲用戶端便會叫用 ISteamInventory::TriggerItemDrop。Steam 伺服器會管理每位玩家的遊戲時間和掉落頻率。這些 API 是藉由假定為不可信的內部「用戶端 API 序號」所呼叫的。

如果您已有一個配合使用的可信任伺服器,您便可在該伺服器上使用一個特權 Steam API 序號,在適當條件下給予物品。但仍需記住,您不能信任自己的用戶端,因此,您只能在遊戲狀態由伺服器控制時才能這樣做。

最後是物品庫服務附帶的物品銷售。您可以在遊戲中或通過網頁版店面銷售單項或購物車內的多項物品。

藉由下方的 Steam Dev Days 2016 的講座,您可瞭解物品庫服務的實作概覽、物品庫服務如何解決開發者的特定問題的詳情,以及合作夥伴使用此系統服務顧客的演示。

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

實作概覽

  1. 建立物品定義
    您需要先建立並上傳一些物品定義(ItemDefs)。
    這些定義描述了您遊戲中可能會出現的物品。您不需要在遊戲本身中使用這些定義,但 Steam 需要這些定義才能正確地顯示物品庫。要建立 ItemDefs ,請前往 Steamworks 設定區域的 Steam 物品庫欄位。您可從這裡前往:https://partner.steamgames.com/apps/inventoryservice/
  2. 啟用物品庫服務
    有了物品定義後,在您上傳物品定義的頁面,勾選「啟用庫存服務」,以啟動物品庫服務。
  3. 設置資產伺服器序號
    首先,產生一組應用程式的開發者 Web API 序號(步驟:建立發行商 Web API 金鑰),並填入「Steam 經濟設定」中的「資產伺服器序號」欄位中。
  4. 下載使用者物品庫
    呼叫 ISteamInventory::GetAllItems,讓您的遊戲用戶端下載使用者物品庫。
    定期這樣做,不失為檢查使用者交易或購買了新物品的好辦法。
    視您的遊戲而定,也可以在每個遊戲或關卡開始時檢查。
  5. 提供測試物品
    使用 ISteamInventory::GenerateItems 將用於開發的物品加入玩家帳戶中。
  6. 給予使用者遊戲時間掉落(非必要)
    在適當時候(通常在比賽/階段結束時),呼叫 ISteamInventory::TriggerItemDrop,查看玩家是否有獲得新掉落物品的資格。
  7. 出售物品(非必要)
    要支援小額支付,須在 itemdefs 中定義價格。使用者可從您自訂的物品商店購買,或者連結到 https://store.steampowered.com/buyitem/:appid/:itemdefid/ 通過簡單的 Steam 購買 UI,讓人們購買。

API

Steam 物品庫的 API 文件位於 API 參考資料中:ISteamInventory

Web API

Steam 物品庫的 Web API 文件位於 Web API 參考資料中:IInventoryService

Web 功能

以下為您可以用來導向使用者的結構化網頁:
  • ItemCart – 可用於傳送要通過 Steam 購買的一整車物品。
  • BuyItem – 可用於傳送要通過 Steam 購買的單項物品。