冬季星落是一款由 PlayFab 开发的游戏,用于展示我们不同的功能,并提供一种方法来探索它们在实时游戏中的实现方式。
游戏可在 WinterStarfall.com 玩。 如果已有 PlayFab 开发人员帐户,还可以通过“我的工作室和游戏”页上的开发人员门户访问它。
游戏构建为 Web 应用,并使用 PlayFab SDK 中的 API 以及 PlayFab 的Azure Functions集成来实现自定义功能。 游戏当前使用以下 PlayFab 功能:
- 经济 V2 (目录、货币、捆绑包、商店)
- 游戏数据、玩家数据和其他核心 PlayFab 函数
- 用于与玩家沟通的游戏新闻
- 包含Azure Functions的云脚本
其他演示功能
冬季星空附带的功能,使你更容易看到 PlayFab 的“幕后”发生了什么。 该游戏可供任何人玩,但要充分利用这些功能,需要注册 一个免费的开发人员帐户。
右上角的配置文件图标旁边有一个 PlayFab 图标,单击该图标将打开 PlayFab 活动边栏。
- 活动边栏显示游戏时更新的 API 调用列表。 每个 API 调用都进行了标记和颜色编码,以指示它与哪个 PlayFab SDK 相关。
- 可以在列表中选择其中一个 API 调用来查看完整的 API 请求和响应。
- 选择 “查看游戏 F8941 ”将在 Game Manager 中打开游戏,可在其中查看不同功能的配置方式。 系统会提示你使用 PlayFab 开发人员帐户登录。
- 清除 将从活动栏中删除所有当前通知。
注意
你可以随时玩演示游戏,但要访问 Game Manager,你需要注册 一个免费的开发者帐户。
包含的 PlayFab 功能
以下部分更详细地细分了游戏中使用的不同 PlayFab 功能。
身份验证
在任何 PlayFab 游戏中发生的第一件事都是在玩家中登录,这将返回所有后续 API 调用所需的身份验证令牌。 Winter Starfall 支持多种形式的可恢复登录,包括电子邮件、Microsoft通过 OpenID) 、Google 和 Facebook 进行 (。 源代码和方案教程详细介绍了登录流和玩家身份验证的最佳做法。
经济
作为一个幻想的RPG风格的游戏,冬季星空包括一个经济系统,供玩家参观商店,购买物品,并通过战斗赚取货币。 PlayFab 的最新经济服务处理与游戏中的库存和商业相关的一切。 源代码和方案教程详细介绍了游戏中发生的购买流程。
玩家数据
PlayFab 中的玩家具有通过不同功能存储在服务中的关联数据。 玩家数据作为一项功能,可将玩家相关信息存储在键/值对或对象和文件中,这些键/值对或对象和文件可在多个游戏和设备之间共享。
在冬季星空中,玩家数据用于存储游戏状态和信息,例如哪些角色加入了玩家的群。 当玩家在故事中移动时,通过调用 UpdateUserData API,他们的位置将记录在其玩家个人资料中。 然后,当玩家登录时,使用 GetUserData 访问此数据,以将玩家加载到故事中的正确点以及他们过去的所有进度。
例如,这些是在登录流期间调用 GetUserData
的 API 请求和响应正文。
GetUserData - 请求
{
"Keys": [
"stats",
"location",
"party",
"notifications",
"cinematicProgression",
"enemyGroupProgression"
]
}
GetUserData - 响应
{
"code": 200,
"status": "OK",
"data": {
"Data": {
"location": {
"Value": "{\"id\":\"intro\",\"map\":[\"intro\",\"intro-village\"]}",
"LastUpdated": "2024-09-20T18:16:13.68Z",
"Permission": "Private"
},
"party": {
"Value": "{\"characters\":[{\"id\":1,\"armor\":\"dfae3ef9-92a0-493b-9bb8-f88a09718d26\",\"weapon\":\"32e1f684-43b0-4fe6-982e-b0829ff0d6f3\",\"spells\":null}],\"guests\":[]}",
"LastUpdated": "2024-09-20T18:16:13.68Z",
"Permission": "Private"
}
},
"DataVersion": 20
},
"CallBackTimeMS": 97
}
游戏数据
游戏数据类似于玩家数据,因为它存储键值对,只有数据与游戏而不是特定玩家相关。 Winter Starfall 使用游戏数据与经济系统结合来计算销售商品时的价格,方法是存储值为 multipliers
的值 sell, 0.5
。 有关销售流工作原理的详细信息,请参阅 源代码和方案教程。
Azure Functions 的 CloudScript
CloudScript 是一项非常灵活的功能,可让你实现自定义服务器端 fucntionality,在与其他 PlayFab 功能配对时,它允许使用几乎无限的解决方案。
游戏使用此功能来解决多种方案:
- CombatVictory - 玩家赢得战斗后,执行一系列作来授予 exp、物品和添加党员。
- PlayerCreated - 为新玩家提供起始项和统计信息。
- ProgressCheckpoint - 执行作以在到达关键故事点后解锁项目和字符。
- ResetPlayer - 擦除完全重置的用户数据、项目和统计信息。
- SellItem - 允许以折扣方式销售商品,这不是经济体系的固有特征。 源代码和方案教程中详细介绍了购买/销售流程。
详细了解使用 Azure Functions 的 CloudScript
注意
Winter Starfall 的 CloudScript 函数是用 C# 编写的,但你可以使用Azure Functions支持的任何语言。
游戏新闻
游戏新闻用于与游戏范围内的所有玩家进行通信。 Winter Starfall 将其实现为一个通知系统来显示游戏提示和通知。
除了游戏新闻,PlayFab 还提供其他通信功能,例如电子邮件模板化和推送通知。
演示限制
由于 Winter Starfall 由真实玩家数据提供支持,因此某些功能在 Game Manager 视图中的范围有限。 本部分将概述游戏管理器中受限功能的外观。 若要更详细地浏览这些页面,可以 下载源代码 并运行游戏的本地实例,或从头开始创建自己的新游戏。
注意
有关开发人员门户中功能的完整指南,请参阅 Game Manager 文档
玩家
为了保护 玩家 信息,游戏管理器的玩家部分隐藏在冬季星空游戏中。 通常,你可以查询游戏中的整个玩家列表,并选择单个帐户通过 Game Manager 更新其数据。 在玩家概述页中,可以查看与玩家相关的所有信息,包括清单项、所有登录名的记录、玩家数据等。
数据和分析
“分析”部分下的一些功能也仅限于保护游戏和玩家信息。 这包括“数据和审核历史记录”部分。 “数据”部分包含数据资源管理器等功能,可用于查询和查看 PlayFab 事件记录,这些记录将显示事件 (API 调用) 例如特定玩家登录时。
审核历史记录 可查看具有编辑访问权限的任何人对游戏所做的更改的历史记录。
有关 数据部分的其他 功能的完整视图,请参阅 数据 & 分析文档。
其他
在游戏设置下,“ 机密密钥 ”选项卡处于隐藏状态。 请参阅 有关密钥管理的文档。
后续步骤
尝试演示后,建议从以下主题开始,详细了解 PlayFab 的工作原理:
- 详细了解 Game Manager
- 了解 实体模型
- 了解 PlayFab 服务 SDK