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. 启用库存服务
    您一旦有了物品定义,在您上传物品定义的页面,勾选“启用库存服务”,打开库存服务。 请注意,如果您物品的可见性设置为私密,那么只有加入了您 Steamworks 合作伙伴群组的账号才能访问您的游戏内物品。
  3. 设置资源服务器密钥
    首先为您的应用程序生成发行商网页 API 密钥(步骤:创建发行商 Web API 密钥),并填入“Steam 经济体设置”中的“资产服务器密钥”一项中。
  4. 下载用户库存
    调用 ISteamInventory::GetAllItems,让您的游戏客户端下载用户库存。
    定期这样做以防用户通过交易或购买添加了新物品,通常不失为一个好办法。
    视您的游戏而定,也许可以在每个游戏或关卡开始时检查。
  5. 提供测试物品
    出于开发目的,使用 ISteamInventory::GenerateItems 为当前玩家帐户添加特定物品。
  6. 给予用户游戏时间掉落(可选项)
    在适当时候(通常在比赛/阶段结束时),调用 ISteamInventory::TriggerItemDrop,查看玩家是否有获得新掉落物品的资格。
  7. 出售物品(可选项)
    需要在您的 itemdefs 中定义价格,才能添加对小额支付的支持。 然后可以允许用户通过几种不同的方式进行购买:

API

Steam 库存 API 的文档位于 API 索引中:ISteamInventory

Web API

Steam 库存 Web API 的文档位于 Web API 索引中:IInventoryService

Web 功能

您可以将用户重新定向至以下结构化网页。
  • ItemCart – 可以用于发送要通过 Steam 购买的一整车物品。
  • BuyItem – 可以用于要通过 Steam 购买的单个物品。 "