Epic Games Store Testing Guide

提供测试用例,帮助你打造出色的玩家体验。

阅读时间19分钟

虽然Epic Games商城没有正式的构建认证流程,但是我们强烈建议将下文中的EOS和玩家体验测试用例应用于在该商城发布的所有游戏和更新,确保尽可能实现最佳玩家体验。 所有实现多人跨平台功能的游戏,都会通过跨平台游戏测试用例的验证。

Epic在线服务

Epic账号服务玩家同意

使用Epic账号服务的游戏需要玩家同意才能共享数据。对于在Epic Games商城出售的游戏,此同意会在购买流程期间自动授予。然而,玩家能够随时从其账号连接页面撤回同意。只要游戏使用正确的CredentialType,当玩家下一次启动游戏时,应该指示他们授予单次同意。

测试步骤

  1. 登录未与你开发门户组织(Dev Portal Organization)关联的账号
  2. 确保该游戏未在账号连接页面列出
  3. 启动游戏
  4. 出现提示时完成同意流程
  5. 退出并重启游戏,确认未显示同意流程

预期结果

  • 账号应该能够继续进入Gameplay,不会第二次出现同意流程,Epic Games商城上的游戏应该使用ExchangeCode(而非AccountPortal)确保正确行为。
  • 游戏启动时,Epic账号服务应用程序应处于已验证状态;未经验证的应用程序将阻止贵组织外部的账号授予同意。

连接接口访问令牌更新

连接接口(Connect Interface)要求游戏每小时更新玩家的访问令牌,以保持与Epic在线服务的连接。游戏应使用AddNotifyAuthExpiration函数,以便在访问令牌即将到期时收到通知,并更新其登录。令牌过期后,未能执行此更新流程将导致服务调用失败。

测试步骤

  1. 启动游戏并完成初始登录流程
  2. 等待60分钟
  3. 尝试使用游戏实现的Epic在线服务功能(成就、多人游戏、玩家数据存储等)
  4. 通过你游戏应用程序的本地日志文件验证游戏客户端收到来自EOS SDK的OnAuthExpirationCallback通知,并使用EOS_Connect_Login API成功刷新身份验证

预期结果

  • 使用Epic在线服务的游戏功能在至少60分钟后继续按预期运行。

离线模式支持

Epic游戏启动程序允许用户选择离线模式,这将在启动时将 epicusernameepicuserid 命令行参数传递给游戏进程,但不提供交换代码,也不为该游戏提供Epic在线服务功能,包括权利检查。开发人员可以选择限制或允许访问由权利控制的任何其他内容,或者可以实现安全权利缓存,允许玩家在设定的时间内离线进行。

测试步骤

  1. 连接到互联网时,在Epic Games启动程序的设置(Settings)菜单中,选择启用离线模式浏览(Enable Offline Mode Browsing)。
  2. 退出启动程序,删除计算机的互联网连接
  3. 重启启动程序,输入账号的邮件地址继续
  4. 启动游戏

预期结果

  • 游戏保持稳定,并在尝试进入需要有效连接的游戏区域时,向玩家发送需要互联网连接的消息。

沙盒/部署ID处理(仅限发布工具产品)

使用发布工具(SPT)配置的所有产品都配备了标准的三沙盒组合:Dev、Stage和Live。初始化Epic在线服务时,需要静态沙盒ID和部署ID值,我们建议以下实现方案,确保构建能够处理在多个沙盒中的下载和使用:

  • 启动时可以从Epic Games启动程序获取沙盒ID,形式为提供给所有游戏的 epicsandboxid 启动参数
  • 部署ID可以在自定义if/switch语句块中的构建中设置,该语句块针对相关沙盒的预期部署

测试步骤

  1. 将构建从Dev提升到Stage沙盒
  2. 登录同时在Dev和Stage沙盒中拥有游戏的账号。**注意:**即将推出的启动程序改进将在库中添加“Dev”和“Stage”标签;在此版本之前,两个库磁贴显示相同。
  3. 在Dev沙盒中启动游戏,确保实现的Epic在线服务功能如预期运行
  4. 退出并在Stage沙盒中重新启动游戏,测试相同功能

预期结果

  • 游戏功能应该在不同的沙盒中保持可用。
  • 沙盒之间的玩家状态应该有区别;如果成就或附加购买仅在单个沙盒中完成,则不应在其他沙盒中显示。

玩家体验

Unicode字符支持

Windows和Epic账号都允许玩家在显示名称中使用拉丁字母以外的字符。游戏应在其测试通道中包含具有此配置的用户。

测试步骤

  1. 登录到包含非拉丁字符的Windows用户账号
  2. 登录到使用包含非拉丁字符的显示名称的Epic账号
  3. 启动游戏
  4. 进入每种游戏模式并创建保存数据
  5. 退出并重新启动游戏

预期结果

  • 所有游戏模式都应按预期运行
  • 重新启动游戏后保存数据应该仍然可以访问

可再发行程序包安装

Epic Games商城目前不处理DirectX或Visual C++等常见可再发行程序包的自动安装;合作伙伴必须处理自己游戏所需的先决条件的相关安装。有关可用选项的更多信息,请参阅游戏先决条件安装工具选项文档。在使用BuildPatchTool上传构建时,Epic Games启动程序将安装使用PrereqIds参数配置的必备可再发行程序包。但是,玩家可以随时选择卸载这些可再发行程序包;游戏应该传送有关缺失先决条件的消息,并为玩家提供解决问题所需的信息。

测试步骤

  1. 安装游戏,包括任何配置的可再发行程序包。注意: 成功后启动程序会返回代码0、1638和3010。
  2. 启动游戏,进入Gameplay
  3. 卸载所需的可再发行程序包
  4. 尝试启动游戏

预期结果

  • 游戏应该通知玩家缺少所需的可再发行程序包
  • 在步骤1中成功安装后,启动程序将不会在以后安装游戏时重新尝试安装相同的可再发行程序包;要重新测试完整流程,你需要从以下文件中删除包含已安装先决条件的行: C:\ProgramData\Epic\EpicGamesLauncher\BuildPatchServicesLocal.ini

语言和区域设置

游戏可以使用三个关键设置,来详细说明玩家的位置、语言和区域:

  • 商城使用账号区域来确定玩家看到的优惠、价格和年龄等级。对于使用与本地时区相关的区域构建和启动时间的游戏,账号区域也用于驱动这些功能。玩家可以通过EOS_UserInfo的国家/地区属性获取该区域码。
  • 首选通信语言用于确定通过电子邮件联系玩家时使用哪种语言。玩家可以通过EOS_UserInfo的PreferredLanguage属性获取该语言码。
  • 启动程序语言用于确定在Epic Games启动程序中显示哪种语言。此语言代码在启动游戏时通过epiclocale参数提供给所有游戏:
启动程序语言epiclocale参数
阿拉伯语ar
英语en-US
德语de
西班牙语(西班牙)es-ES
西班牙语(拉丁美洲)es-MX
法语fr
意大利语it
日语ja
韩语ko
波兰语pl
葡萄牙语pt-BR
俄语ru
泰语th
土耳其语tr
中文(简体)zh-Hans
中文(繁体)zh-Hant

测试步骤

  1. 将Epic Games启动程序语言设置设置为游戏支持的语言
  2. 启动游戏

预期结果

  • 游戏自动设置正确的显示语言,或允许玩家通过游戏内选项在支持的语言之间自由切换
  • 游戏能够处理和解析启动程序提供的所有命令行参数而不会崩溃

构建更新大小优化

作为构建上传过程的一部分,BuildPatchTool自动将构建中的数据与此前上传的数据进行比较,并优化生成的补丁,从而为现有玩家减少下载大小。

[region: note] 此过程已通过BuildPatchTool v1.5.0进行了改进,现在比较与产品相关的所有瑕疵的数据,而不是原始上传的单个瑕疵。我们强烈建议使用可在开发门户中下载的最新版BuildPatchTool。 [/region]

测试步骤

  1. 使用暂存瑕疵或私有沙盒安装当前版本的游戏。注意: 从私有沙盒下载的功能仅适用于参与自助发布工具封闭测试的合作伙伴。
  2. 在测试环境中设置实时游戏的下一个更新
  3. 重启启动程序,并了解更新的下载大小

预期结果

  • 更新结果应该是,下载大小大致代表版本之间的二进制增量,而不是完全重新下载游戏
  • 使用BuildPatchTool的BinaryOptimiseDelta模式可以进一步优化两个特定构建版本之间更新的下载大小;此命令应使用空的CloudDir文件夹运行,与此前的游戏上传相比,完成处理可能需要更长时间

启动程序云保存

我们建议在本地保存数据的所有游戏都利用启动程序云保存(Launcher Cloud Saves)功能。有关测试用例详情,请参阅云保存设置和测试页面。

跨平台游戏

Epic Games希望确保玩家可以和他们的朋友一起玩,无论他们通过哪个商城购买游戏。因此,所有支持在线多人游戏的作品在进入Epic Games商城后,都必须支持所有其他PC商城的跨平台多人游戏。与其他非PC平台(如主机)的跨平台游戏是可选的,但我们鼓励这样做。了解更多:多人游戏跨平台功能

Epic Games商城不要求你通过特定的服务或账号系统实现跨平台游戏。Epic将Epic在线服务和Epic账号作为一种潜在解决方案免费提供。支持并欢迎其他第三方解决方案或基于发布者的解决方案。在支持的情况下,Epic Games商城上的多人游戏功能必须与其他PC商城相同。 如果你对这些标准有疑问或疑虑,请使用下方清单验证你是否符合跨平台游戏标准,并及时联系你的业务开发经理或技术客户经理。他们还可以更详细地指导你如何跨PC商城实现跨平台游戏功能。

请注意,你必须在 公开启动之前至少四周 提供支持跨平台游戏的版本,以便有足够时间进行独立测试和验证。

服务器浏览器/匹配

如果支持服务器浏览器或匹配,默认情况下玩家必须能够跨商城边界连接(例如,无需通过菜单选项手动选择加入)。

测试步骤

  1. 让一名或多名玩家在Epic Games商城上启动游戏
  2. 让一名或多名玩家在另一商城(例如Steam)上启动游戏
  3. 如果游戏有服务器浏览器:
    • 让Epic Games商城上的一名玩家创建游戏
    • 让Epic Games商城和其他商城的其他玩家加入游戏
    • 如果游戏有匹配:
  4. 让两个商城的所有玩家同时寻求匹配

预期结果

  • 所有Epic Games商城和其他PC商城(例如Steam)游戏应该一起列出
  • Epic Games商城玩家可以通过服务器浏览器/匹配加入Epic Games商城或其他PC平台托管的游戏
  • 另一PC平台的玩家可以通过服务器浏览器/匹配加入Epic Games商城或其他PC平台托管的游戏

游戏会话邀请

如果支持直接发送游戏会话邀请,则必须支持跨商城边界的邀请。在支持的情况下,Epic Games商城上的游戏内好友功能必须与其他PC商城相同。这些邀请应当是双向的。

测试步骤

  1. 让一名或多名玩家在Epic Games商城上启动游戏
  2. 让一名或多名玩家在另一商城(例如Steam)上启动游戏
  3. 通过游戏支持的方式,在跨商城的两个或以上玩家之间建立好友关系(如 Epic账号、Discord、自定义账号等)
  4. 让一名玩家向在另一商城玩游戏的另一名玩家发送游戏会话邀请

预期结果

  • Epic Games商城玩家能够向在另一PC平台玩游戏的好友直接发送游戏邀请
  • 另一PC平台上的玩家能够向在Epic Games商城玩的好友直接发送游戏邀请

Epic账号服务

如果你的游戏使用Epic账号服务提供跨平台游戏功能,请使用以下清单来验证是否涵盖了所有必要场景。请注意,虽然这是你可以实现跨平台游戏的一种方式,但并非必需,欢迎你实现你选择的其他解决方案。

Steam账号关联

如果玩家从未将其Steam和Epic账号关联,玩家选择使用其Steam账号向Epic账号服务进行身份验证时,游戏应提示账号关联。

测试步骤

  1. 在Steam上启动游戏
  2. 触发游戏内Epic账号关联流程(如通过菜单选项)

预期结果

  • 如果尚未关联,则请求Steam账号关联

Steam账号重新关联

如果Steam账号未与玩家的Epic账号关联,则游戏应给玩家提供游戏内UI,以便重新连接其Steam和Epic账号(例如通过“关联Epic Games账号(Link Epic Games Account)”按钮)。

测试步骤

  1. 在“账号(Accounts)”选项卡上取消关联现有Steam账号,网址为https://www.epicgames.com/account/connections
  2. 在Steam上启动游戏
  3. 触发游戏内Epic账号关联流程(如通过菜单选项)

预期结果

  • 重新请求Steam账号关联

Steam上的Epic账号服务同意

作为Epic账号服务登录流程的一部分,系统将提示用户同意与你的游戏/应用程序共享他们的账号信息。此提示为身份验证接口登录的一部分。 如果玩家此前连接过其Steam和Epic账号,但尚提供游戏的Epic账号服务应用程序同意,EOS SDK将在身份验证接口登录API调用期间自动提示用户同意。

测试步骤

  1. 在Steam上启动游戏
  2. 触发游戏内Epic账号身份验证流程

预期结果

  • 如果尚未提供,则请求Epic服务应用程序同意

Steam上的Epic账号服务再次同意

用户可以通过Epic账号管理页面查看已同意共享数据的应用程序列表。在此页面上,用户还可以撤销对应用程序的访问权限。如果应用程序同意被撤销,用户将在下次尝试登录你的游戏应用程序时收到同意提示。

测试步骤

  1. 在应用程序选项卡上撤销对游戏的同意https://www.epicgames.com/account/connections
  2. 在Steam上启动游戏
  3. 触发游戏内Epic账号身份验证流程

预期结果

  • 重新请求Epic账号应用程序申请同意