在门户中创建 stat/排行榜
Steamworks
在 Steamworks 管理门户中,进入 Stats & Achievements > Leaderboards。按下方截图(来自 Steamworks 文档)所示填写表单。
XBOX Game Development Kit(GDK)(基于事件)
在 Partner Center 中,进入你的游戏并选择 XBOX services > Gameplay settings。在右侧窗格的导航栏选择 Player Stats > Stat Rules,添加一条类型为 Show 的 stat 规则,并按需配置。由于我们的 stat 更新将包含玩家(用户)自上次更新以来行走距离的差值,我们会指定一个测量字段,让服务从中获取此值。将更新事件的数据存储在事件的 Measurements 或 Dimensions 字段中在功能上没有区别。这两个字段的存在是为了配合 Application Insights 使用。更多信息参见 [Application Insights API for custom events and


上传分数
Steamworks
在 Steamworks 中,你需要计算行走英尺的新累计值,并通过ISteamUserStats::UploaderLeaderboardScore 方法发送到 API。
XBOX Game Development Kit(GDK)(基于事件)
对于 XBOX Game Development Kit(GDK)的基于事件 stats,你只需将“行走英尺”的差值传给XblEventsWriteInGameEvent,因为我们已经指定:在收到事件时对该 stat 做增量更新,并在 measurements JSON 字符串中指定了该 diff 值的位置,如下所示。
获取全球排行榜
在 Steamworks SDK 中,可通过调用ISteamUserStats::GetLeaderboardEntries,然后在 callback 中调用 ISteamUserStats::GetDownloadedLeaderboardEntry 获取全球排行榜的每条条目(“行”)。
Steamworks
XBOX Game Development Kit(GDK)(基于事件)
XBOX Game Development Kit(GDK)API 遵循类似模式。构建查询,指定要哪张排行榜、覆盖的范围、排序方式、是否包含额外字段等。使用查询调用XblLeaderboardGetLeaderboardAsync 后,可以使用 XblLeaderboardGetLeaderboardResultSize 与 XblLeaderboardGetLeaderboardResult 将结果填入指定缓冲区并遍历,如以下代码示例所示。
获取社交排行榜
在 Steamworks 中,你可以使用ELeaderboardDataRequest::k_ELeaderboardDataRequestFriends 枚举,将排行榜限定在当前用户的好友范围内。
在 XBOX Game Development Kit(GDK)中,这称为 社交排行榜。要从 XBOX 服务获取社交排行榜,在 XblLeaderboardQuery 结构体中,将 xboxIUserId 设为当前登录 XBOX 服务用户的 XBOX 用户 ID(XUID),将 leaderboardName 设为 nullptr,并将 socialGroup 设为 XblSocialGroupType::People 或 XblSocialGroupType::Favorites。然后按前述方式调用 XblLeaderboardGetLeaderboardAsync。
更多信息参见 XblSocialGroupType。
