登录到 Partner Center
以下示例使用 Partner Center 配置 XBOX 游戏体验。 在你的公司获得为 XBOX 创建产品的协议后,在 Partner Center 中配置你的内容。如果你的公司尚未设置 Partner Center 访问权限,并且你正在开发游戏,请联系你的 Microsoft 客户经理。如果你正在开发应用,请联系 XBOX App Partner Requests (xboxapps@microsoft.com)。如果你正在与 ID@XBOX 计划合作,请联系 ID Setup (idsetup@microsoft.com)。 ID@XBOX 计划使所有规模的合格游戏开发者能够通过在 XBOX One(或更高版本)上自行发布数字游戏来释放他们的创造力。这为工作室提供了他们所需的工具和支持,以帮助最大程度地取得成功。若要了解详细信息,请转到 https://www.xbox.com/Developers。 在你有权访问 Partner Center 后,你需要 Microsoft 为你的游戏创建产品组。你的 Microsoft 客户经理可以协助此过程。 在 Microsoft 为你的游戏创建产品组后,使用 Partner Center 为你的游戏配置 XBOX 服务。你的游戏的 XBOX 服务配置也称为其 服务配置。 请按以下步骤转到 Partner Center 中的位置,可以在其中为你的游戏添加事件、统计数据、成就和排行榜。- 登录到 Partner Center 上的帐户。
- 选择包含或将包含你的游戏的产品组。
- 在 Product Group 页面上,选择你的游戏或选择 Add New Product 以创建新条目。
- 如果要创建新产品,请输入产品的名称。
- 对于资源访问,选择 Exclusive Resource Access (ERA)。
- 选择是否需要为游戏生产实体媒介,或者它是否仅为数字下载。
- 选择 Create Product。
- 在左侧窗格的底部,展开创建产品的沙盒。 服务配置在沙盒级别定义。如果你将产品导出到另一个沙盒,还需要导出你的服务配置。
- 在沙盒子菜单上,选择 Service Configuration。使用此页面为当前沙盒中的标题配置 XBOX 服务。
识别并定义场景的事件
在 Partner Center 中,在我们可以定义实现我们希望实现的玩家体验的规则之前,我们需要识别并定义将驱动这些体验的事件。 在基于事件的模型中,成就和排行榜基于玩家统计数据。因此,我们可以查看要定义的统计数据,以查看我们的标题需要发送哪些事件。 为了驱动我们将在此示例中定义的体验,我们将使用在比赛中每一圈结束时发送的事件。 我们将该事件称为LapCompleted。我们将使用此事件来驱动我们的定制体验。为了驱动这些体验,我们还将定义以下字段作为我们 LapCompleted 事件的一部分。
- LapTime:指示完成一圈的时间(以分钟为单位)的字段。
- CarModel:指示用于完成一圈的汽车型号的字符串字段。
- WeatherCondition:标识完成一圈时赛道天气条件的字符串字段。
- TrackId:完成一圈的赛道 ID。
- 在 Partner Center 中的左侧窗格上,选择 Test Sandbox > Service Configuration > Events & Stat Rules。
-
选择 New 以创建新事件。将出现 Add New Event 对话框,如下所示。

- 在 Base Event 中选择 Base。
- 在 Event Name 中输入 LapCompleted。
- (可选)在 Description 中输入事件的描述。
- 选择 Add Event Field。
-
在 Field Name 中输入 LapTime,然后将 Type 指定为 Double,如下所示。

- 选择 Add Event Field。
-
重复此过程以添加以下事件字段。
- CarModel:UnicodeString
- WeatherCondition:UnicodeString
- TrackId:Int32

- 选择 Save Event 以将事件保存在你的沙盒中。
设计统计规则
现在我们已经定义了玩家体验,我们可以开始创建实现这些体验的统计规则。因为我们在所有三个场景(精选统计数据、成就和排行榜)中都使用LapTime,所以我们将首先配置它。
此统计数据将显示为精选统计数据(也称为 Hero 统计数据),并且还将用于具有其他元数据的全球排行榜。
当游戏中发生某些操作时,游戏会触发游戏内事件,这些事件被视为创建统计数据的原始数据。每个事件应至少创建或更新一个统计数据。
(有关在单个事件中生成多个统计数据的详细信息,请参阅 基于事件的统计数据概述。)
- 在 Events & Stat Rules 页面上,从事件列表中选择 LapCompleted 事件。
-
选择 New(在 Stat Rules 的右侧)以创建新的统计规则。它将基于所选事件。将出现 Add Stat Rule 对话框,如下所示。

- 在 Stat Rule Name 中输入 FastestLap。
- 由于我们希望其他应用和标题能够访问由该规则创建的统计数据,请选择 Open read access to any title 复选框。 统计规则具有定义事件如何创建或更新统计数据的逻辑。因为我们要跟踪最快单圈,所以我们仅当新的单圈时间低于现有最快单圈时间时才更新统计数据值。
-
为此,在 Operator 中选择 Min,在 Parameter 中选择 LapTime,如下所示。

- 若要将字段添加到元数据,请选择 CarModel,然后选择 Add Event Field。
-
对 WeatherCondition 和 TrackId 字段重复此操作,如下所示。

- 选择 Add Stat Rule 以创建统计规则。
配置精选统计数据、排行榜和成就
精选统计数据
现在统计规则已完成,我们希望该统计数据出现在 GameHub 的成就选项卡上。因此,我们必须配置精选统计数据(在 Partner Center 中称为 Hero 统计数据)。- 在 Partner Center 中的左侧窗格上,选择 Test Sandbox > Service Configuration > Hero Stats。
- 选择 New 以添加新的精选/Hero 统计数据。
- 在 Hero Stat Display Name 中输入 Fastest Lap。
- 在 Display Format 中选择 ShortTimespan。在 Display Units 中选择 Seconds。
- 在 Display Semantic 中选择 Best。这向配套应用指示该值代表该统计数据的最佳分数。
-
选择 Select an Instance,然后在 Stat Instance 中选择 FastestLap。这表示该精选统计数据基于
FastestLap统计数据值。 - 在 Ordinal 中输入 1。这表示在列出精选统计数据时应首先显示此精选统计数据。
-
在 Sort Order 中选择 Ascending。这表示较低的值优于较高的值,如下所示。

- 选择 Add New Hero Stat 以创建精选/Hero 统计数据。
全球排行榜
使用相同的单圈时间统计数据,我们可以配置一个排行榜,以便每个玩家都可以查看他们的单圈时间与全球所有其他玩家的排名。- 在 Partner Center 中的左侧窗格上,选择 Test Sandbox > Service Configuration > Leaderboards。
- 选择 New 以创建新的全球排行榜。
- 在 Leaderboard ID 中输入 FastestLap。
- 选择 Select an Instance,选择我们之前创建的 FastestLap 统计规则,然后选择 Add Stat Instance。
-
在 Sort 中选择 Ascending,如下所示。此选择表示较短的时间更好。

- 选择 Add New Leaderboard 以创建新的全球排行榜。
基于事件的成就
我们建议你使用标题托管成就。但是,对于仍在使用基于事件的成就的标题,你可以使用事件在服务上驱动成就的解锁,如下所示。 使用事件解锁基于事件的成就- 在 Partner Center 中的左侧窗格上,选择 Test Sandbox > Service Configuration > Achievements & Challenges。
- 选择 New 以添加新的成就。
- 在 Achievement Name 中输入 Under 60 seconds。
- 在 Description 中输入 Completed a lap in under 60 seconds。当成就解锁时,此描述会显示给玩家。
- 在 Not Achieved Description 中输入 Complete a lap in under 60 seconds。当成就仍处于锁定状态时,此描述会显示给玩家。
-
上传 1920 × 1080 像素的 .png 文件以用作 Achievement Icon,如下所示。

- 选择 Add Achievement 以创建成就。
- 确保在成就列表中选择了 Under 60 seconds 成就。选择 Rewards 右侧的 New,以便向玩家提供解锁成就的奖励。
- 因玩家解锁此成就而奖励玩家 20 个游戏得分点数。在 Reward Type 中选择 Gamerscore。
-
在 Value 中输入 20,如下所示。

- 选择 Add Reward。
- 确保在成就列表中仍然选择了 Under 60 seconds 成就。选择 Rules 右侧的 New 以定义解锁成就的条件。
- 在 Rule Name 中输入 Under 60 seconds rule。玩家看不到此值,因此可以任意命名。
- 在 Action 中选择 Min。这表示当所选统计数据实例小于或等于阈值时,成就将解锁。
- 在 Threshold 中输入 60。
- 选择 Select an Instance,选择 FastestLap 统计规则,然后选择 Add Stat Instance。
-
选择 Add Rule 以创建成就的规则,如下所示。

添加从游戏发送事件的代码
现在我们已经定义了 XBOX 服务将用于更新玩家场景的LapCompleted 事件,我们需要向游戏添加代码,以便在玩家完成游戏中的一圈比赛时发送该事件。
若要写入事件,请使用事件名称 LapCompleted 调用 XblEventsWriteInGameEvent 函数。
Flat C API
