Crossplay across platforms

使用Epic账号来为Epic Games商城、Steam和独立发行的PC游戏启用跨平台游玩

阅读时间7分钟

概览

传统上讲,在不同商店和平台上发行游戏会将玩家群体按照平台进行分割。使用了Epic账号服务,游戏可以接触到更大的玩家群体,并带有强大的跨平台社交功能,而且可以统一游戏的匹配池。

Epic在线服务SDK提供了一套开箱即用的集成方案,能让玩家各种平台上跨平台游戏(只要EOS支持该平台),并解决了其中的各种复杂技术问题。这意味着你可以在你的游戏中使用一项或多项Epic在线服务(EOS)服务,并在所有支持跨平台游戏的平台上进行跨平台游戏。

跨平台游玩现已对Windows平台的游戏可用。 已经计划支持任天堂Switch、PlayStation 以及Xbox平台。 已经计划支持macOS、Linux、安卓和iOS平台。

游戏整合 要启用跨平台游玩需要以下步骤进行整合:

  1. 为Epic账号服务创建一个新的OAuth应用,并包括一个品牌审核。

  2. 将SDK与你的游戏客户端整合。

  3. 对于要在Epic Games商城以外发行的客户端,将Epic在线服务本地服务可再分发安装包及其关联的引导程序作为你游戏的先决条件。

以下各小节将会介绍每个整合步骤。

第一步:应用配置和品牌审核

要在你的游戏中使用Epic账号服务,需要先在开发人员门户中为你的产品设置一个应用程序。使用必要的信息设置好应用程序后,将其提交来进行品牌审核。品牌审核通常会花费几天时间,之后玩家便可以用Epic账号登录你的游戏。仅限于以开发为目的,你的开发者门户组织下属的Epic账号可以在品牌审核完成之前登录游戏。

更多关于如何为Epic账号服务设置应用程序的信息,参考品牌审核应用过程文档。

第二步:整合游戏客户端SDK

Epic账号的登录由游戏客户端调用 EOS_Auth_Login SDK API时发起。该页面描述的常见的登录场景包括通过Epic Games商城Steam发行以及独立发行的游戏。

通常在各个平台和场景的流程中,游戏客户端先获取本地用户的某种授权信息,然后将其传给 EOS_Auth_Login SDK API。独立发行游戏也可能使用 EOS_LCT_AccountPortal 登陆方式,不需要输入授权信息,而是要求用户在登录时输入Epic账号信息。

SDK将会使用游戏内显示来引导用户完成所有必要过程,以此来全程控制登录流程。用户完成登录流程后,不论是成功登录还是取消登录,SDK都会对 EOS_Auth_Login SDK API 完成回调,将控制交回给游戏应用程序。在Steam上,用户的Steam账号会自动在SDK控制的登录流程中与登录的Epic账号关联。

更多SDK API整合细节可以参考授权接口文档。

第三步:引导程序和服务可再分发安装包

要了解如何将引导程序安装包和本地服务可再分发安装包作为你游戏的先决条件,查看可再分发安装包和引导程序文档。

玩家体验

社交覆层可提供现有UX供你在游戏中使用,这样可以在平台之间更轻松地合并社交功能(例如,好友列表、游戏邀请等)。要访问游戏中的社交覆层,你的玩家必须有Epic Games账号。根据你的偏好设置,你的游戏可以提供Epic Games账号登录作为可选的选项来启用跨平台游戏,也可以要求玩家在登录并创建账号之后才能进入游戏大厅菜单。

指定集成平台选项(作为SDK初始化一部分),使之在游戏内覆层的好友列表中也包含本地平台好友。

社交覆层和好友功能

在社交覆层界面中,玩家可以查看他们的Epic Games好友信息以及玩家当前所在平台在线好友信息(如果玩家将当前平台账户于Epic Games账户进行了绑定)。然而,如果玩家是通过Epic Games启动器打开了你的游戏,那么他们只能看到他们的Epic Games好友。例如,如果玩家在Steam上玩你的游戏,并且把他们的Steam账户和Epic Games账户相互绑定,就可以在社交覆层上查看他们的Steam好友和Epic Games好友。但是,通过Epic Games启动器玩你的游戏的玩家,只能在社交覆层上看到他们的Epic Games好友。当他们在Epic Games启动器上游戏时,无法看到他们的Steam好友,因为他们并不是通过Steam玩游戏的。

登录

Epic Games商城

游戏会使用指令行参数中接收的交换代码来记录本地Epic用户,由Epic Games启动器传送至正在运行的游戏进程。该登录行为是自动的,不需要任何用户操作。

Steam

在启动时,游戏会调用 EOS_Platform_GetDesktopCrossplayStatus SDK API来验证Epic账户在登录时可否使用覆层。如果游戏遇到错误(例如Bootstrapper或Redistributable服务丢失),请提示玩家验证Steam库中的游戏文件并修复问题。然后提示玩家重新启动游戏以便应用修复。

游戏会使用一个从Steamworks SDK获取的Steam AuthSessionTicket 来记录本地Steam用户。内置的程序会引导用户将本地用户的Steam账号和Epic账号关联。这样会让用户在使用Epic账号服务连续打开应用和其它游戏时自动登录。

没有Epic账号的新用户可以创建一个新的代理Epic账号。这会将用户的Steam账号和新创建的Epic账号关联,可以让用户在使用Epic账号服务连续打开应用时自动登录,而不需要电子邮箱地址或设置密码。

代理Epic账号与正常的带有电子邮箱和密码的Epic账号用法一样。举个例子,如果用户后来安装了Epic Games启动器,便可以使用Steam账号来登录他们的Epic账号,这时用户会被要求注册一个电子邮箱并为账号设置一个密码。

欢迎页

Steam上的内置用户引导的欢迎页面,可以无缝创建代理Epic账号。

独立发行的游戏

在启动时,游戏会调用 EOS_Platform_GetDesktopCrossplayStatus SDK API来验证Epic账户在登录时可否使用覆层。如果游戏遇到错误(例如Bootstrapper或Redistributable服务丢失),请引导玩家修复游戏安装内容,以便避免内容缺失。

游戏会不使用已有的授权场景来将用户登录到它们的Epic账户。经过内置的用户引导之后,SDK会在本地设备上储存一个长期可用的Epic刷新令牌用于连续打开应用时自动登录。

年龄确认

作为Epic账号登录的一部分,用户可能会需要输入其出生日期。年龄较小的用户可能会被提示要先获得监护人许可,用于Epic账号或者与你的应用程序分享数据,之后才能正常登录。

SDK可以全程管理整个步骤。如果用户不得到监护人许可, EOS_Auth_LoginEOS_Auth_LinkAccount SDK API 会返回 EOS_Auth_AccountFeatureRestricted 错误结果。游戏可能会重新启动登录流程来让用户获得监护人许可后再登录进行游玩,或者让用户检查其许可状态。

覆层

SDK提供的游戏内覆层可以让玩家跨游戏跨平台看到自己的Epic好友。玩家可以搜索和添加好友、查看谁在线并且跨平台发送游戏邀请。

你也可以将一些Epic好友功能内置到游戏本身的UI中,比如用程序将玩家添加为Epic好友,可以通过 EOS_Friends_SendInvite SDK API来实现。

覆盖要求游戏有最基本的SDK代码整合。关于如何为你的游戏启用它,可以参考覆层文档。

匹配

使用大厅 或者 会话SDK接口来跨平台统一游戏的匹配池。这两个接口都带有可以直接使用的覆盖来让游戏支持跨平台邀请变得更加容易。

除此以外,在SDK初始化时指定整合平台选项,游戏邀请被原生整合进了本地平台来让用户在不同的平台上获得相似的体验。