将游戏事件写入 XBOX 服务用户统计信息服务
游戏中最令人兴奋的时刻是重要事情发生的时刻——击败对手、被击败、移动到某个位置、发射武器、采摘花朵。通过使用 XBOX 服务,标题可以共享玩家游戏中重要事件的信息。详细信息可以发送到 XBOX 服务,该服务记录有关用户的统计信息。这些统计信息可用于用户统计信息、排行榜和匹配。 事件以及作为事件一部分发送的任何数据到达服务后,XBOX 服务会处理您在标题的服务配置中定义的规则,以创建或更新用户统计信息、排行榜等。合作伙伴中心的配置
首先,在合作伙伴中心的”玩家统计信息 | 统计信息规则”页面定义您的事件。在合作伙伴中心定义了事件和统计信息之后,您可以执行以下步骤来发送事件。编写事件
对于 Microsoft Game Development Kit (GDK) 标题,发送事件的 API 与 XBOX One 软件开发工具包标题不同,并且不需要使用清单文件。 XblEventsWriteInGameEvent 函数声明为:xboxLiveContext 是 XBOX 服务上下文句柄。
eventName 是在合作伙伴中心定义的事件名称。
dimensions 是与事件属性对应的属性包,其取有限的一组值。例如:关卡、武器或角色。
measurements 是与具有不确定值集的事件属性对应的属性包。例如:驾驶里程、击杀敌人数或游玩分钟数。
维度和度量将在下面进一步讨论。
度量和维度
当为 XBOX 服务上的事件调用 XblEventsWriteInGameEvent 时,无论您将事件属性作为维度还是度量传递,都没有区别。仅当您在 Application Insights 上分析事件以进行遥测时,这些差异才相关——这对游戏体验没有影响。有关详细信息,请参阅 Application Insights API 中的自定义事件和度量。 维度可用于筛选事件或在事件上进行透视。例如:显示完成第 6 关的用户,或显示所使用武器是”Minigun”的所有”击杀敌人”事件。 度量可以图形方式显示,或者用于排行榜。例如:赛道时间、连续获胜回合等。 但是就与 XBOX 服务一起使用而言,无论您将事件属性作为度量还是维度传递都没有区别,出于解锁成就和其他 XBOX 服务相关功能的目的,这将以相同方式处理。调试 XBOX 服务事件
如果来自您的标题的事件未成功到达 XBOX 服务,则英雄统计信息和排行榜不会更新。如果您怀疑事件未成功被 XBOX 服务接收,请尝试以下步骤:- 验证您的沙盒是否正确。
- 在设备上设置 Fiddler。在 Fiddler 中,您应该看到如下事件:
v10.vortex-win.data.microsoft.com 的调用。您需要如所示解码请求正文,然后如果查看 JSON,将看到类似以下内容:
您可以验证事件名称是否符合预期。您的标题 ID 将附加到该名称前。您还应该验证是否收到 200 返回代码。
