演示游戏:Winter Starfall
Winter Starfall 是 PlayFab 开发的游戏,用于展示我们不同的功能,并提供一种途径来了解这些功能在实际游戏中如何实现。 你可以在 WinterStarfall.com 上试玩这款游戏。如果你已经拥有 PlayFab 开发者账号,还可以通过开发者门户中的 My Studios and Titles 页面访问。 该游戏构建为 Web 应用,使用 PlayFab SDK 提供的 API,并结合 PlayFab 的 Azure Functions 集成实现自定义功能。当前该游戏使用了以下 PlayFab 功能:- Economy V2(目录、货币、礼包、商店)
- Title data、Player data 及其他核心 PlayFab 功能
- 用于与玩家沟通的 Title news
- 使用 Azure Functions 的 CloudScript
附加演示功能
Winter Starfall 提供了一些便于观察 PlayFab“幕后运行情况”的功能。任何人都可以试玩这款游戏,但要完整使用这些功能,你需要注册免费开发者账号。 在右上角个人资料图标旁有一个 PlayFab 图标,点击后会打开 PlayFab 活动侧边栏。- 活动侧边栏显示 API 调用列表,会随着你玩游戏而更新。每次 API 调用都会带有标签并使用颜色编码,以标识它所属的 PlayFab SDK。
- 你可以在列表中选择某次 API 调用来查看完整的 API 请求和响应。
- 选择 View title F8941 会在 Game Manager 中打开该 title,你可以查看各项功能的配置方式。此步骤会提示你使用 PlayFab 开发者账号登录。
- Clear 会移除活动栏中的所有当前通知。
你可以随时试玩这款演示游戏,但要访问 Game Manager,你需要注册免费开发者账号。
涵盖的 PlayFab 功能
以下部分更详细地介绍了游戏中使用的各种 PlayFab 功能。认证
任何 PlayFab 游戏中发生的第一件事就是玩家登录,这会返回后续所有 API 调用所需的认证令牌。Winter Starfall 支持多种可恢复的登录方式:邮件、Microsoft(通过 OpenID)、Google 和 Facebook。源代码和场景教程对登录流程以及玩家认证的最佳实践进行了深入的讲解。 进一步了解 PlayFab 认证Economy
作为一款奇幻角色扮演游戏(RPG),Winter Starfall 包含一个经济系统,玩家可以访问商店、购买物品,并通过战斗赚取货币。PlayFab 最新的经济服务负责处理游戏中与库存和交易相关的所有事务。源代码和场景教程对游戏中发生的购买流程进行了深入的讲解。 进一步了解 Economy V2Player data
PlayFab 中的玩家由不同功能存储在服务中的相关数据。Player data 作为一项功能,允许你以键/值对或对象和文件的形式存储与玩家相关的信息,这些信息可以跨多个游戏和设备共享。 在 Winter Starfall 中,Player data 用于存储游戏状态以及诸如哪些角色加入玩家队伍之类的信息。当玩家在剧情中前进时,其位置会通过调用 UpdateUserData API 记录到其玩家档案中。当玩家登录时,会通过GetUserData 访问该数据,从而将玩家加载到剧情中的正确位置并保留所有过往进度。
例如,以下是登录流程中调用 GetUserData 时的 API 请求与响应体示例。
GetUserData - Request
Title data
Title data 与 Player data 类似,也存储键值对,只不过这些数据是关于游戏 title,而不是特定玩家。Winter Starfall 将 Title data 与 Economy 系统结合使用,通过存储值为sell, 0.5 的 multipliers 来计算物品出售时的价格。有关销售流程的更多信息,请参阅源代码和场景教程。
进一步了解 Title data
使用 Azure Functions 的 CloudScript
CloudScript 是一项灵活的功能,允许你实现自定义的服务器端功能。它与其他 PlayFab 功能配合使用时,能够提供几乎无限的解决方案。 游戏使用该功能解决了许多场景:- CombatVictory - 当玩家赢得战斗后,执行一系列操作以授予经验、物品并添加队伍成员。
- PlayerCreated - 为新玩家配备起始物品和属性。
- ProgressCheckpoint - 在到达关键剧情节点后执行操作以解锁物品和角色。
- ResetPlayer - 清除用户数据、物品和统计信息,实现完全重置。
- SellItem - 支持按折扣出售物品,这并不是经济系统固有的功能。购买/销售流程在源代码和场景教程中有更详细的介绍。
Winter Starfall 的 CloudScript 函数是用 C# 编写的,但你可以使用 Azure Functions 支持的任何语言。
Title news
Title news 用于与限定于某个 title 的所有玩家进行沟通。Winter Starfall 将其实现为一个通知系统,用于显示游戏提示和公告。 除 Title news 之外,PlayFab 还提供其他沟通功能,例如邮件模板和推送通知。 进一步了解 title 沟通方式演示的限制
由于 Winter Starfall 依托真实玩家数据运行,Game Manager 视图中的部分功能范围受到了限制。本节概述了在 Game Manager 中查看这些受限功能的样子。若要更详细地探索这些页面,你可以下载源代码并在本地运行游戏实例,或者从零开始创建你自己的新 title。有关开发者门户中各项功能的完整指南,请参阅 Game Manager 文档。
Players
为保护玩家信息,Game Manager 中 Players 部分在 Winter Starfall title 里已被隐藏。通常情况下,你可以查询游戏中全部玩家的列表,并选择某个账号在 Game Manager 中更新其数据。在玩家概览页中,你可以查看与该玩家相关的所有信息,包括库存物品、所有登录记录、Player data 等。数据与分析
Analyze 部分中的某些功能也受到限制,以保护 title 和玩家信息。此限制包括 Data 和 Audit History 部分。Data 部分包含诸如 Data Explorer 之类的功能,可用于查询和查看 PlayFab 事件记录,例如某个特定玩家何时登录等事件(API 调用)。 Audit history 会展示由具有编辑权限的任何人对该 title 所做更改的历史记录。 要完整了解 Data 部分包含的其他功能,请参阅数据与分析文档。其他
在 title 设置下,Secret keys 选项卡已被隐藏。请参阅密钥管理文档。后续步骤
试玩演示之后,我们建议从以下文章开始,进一步了解 PlayFab 的工作原理:- 进一步了解 Game Manager
- 了解 Entity 模型
- 了解 PlayFab Services SDK
