将Epic在线服务用于Lyra

详细介绍如何通过Lyra示例游戏使用Epic在线服务。

Choose your operating system:

Windows

macOS

Linux

Lyra初学者游戏(Lyra Starter Game)示例项目旨在用于开发和发布多人游戏。此项目支持在线多人游戏功能,并集成了Epic在线服务EOS)后端。但是,如果是从 Epic Games启动程序 下载的Lyra,则必须进行一些额外设置,才能使用EOS。

Epic帐户和引擎设置

要在Lyra中使用EOS,必须设置帐户以访问EOS和虚幻引擎源代码:

  1. 要测试多人游戏,至少需要2个 Epic帐户。创建新帐户的方法是导航到Epic Games商城页面,然后单击 登录(Sign In),使用新的电子邮件地址和密码进行 注册(Sign Up)

    为了提高效率,可以在另一个浏览器中使用第二个帐户登录。

  2. 要启用完整的EOS支持,必须具有一个可以访问虚幻引擎源代码的帐户。确认你的主Epic帐户已经与 GitHub 同步,如在GitHub上访问虚幻引擎源代码页面所述。

  3. 获得源代码访问权限后,请按照下载虚幻引擎源代码所述,下载并安装引擎源代码。安装引擎的 版本分支。可以使用 Visual Studio 2019Visual Studio 2022

    下载源代码并运行 Setup.bat 的过程可能需要一些时间。我们建议你在等待设置完成的过程中继续创建帐户。

  4. 你需要在两个帐户上都启用 双因素身份验证 以便访问EOS开发者工具。为此,可以从 帐户管理(Account Management) 页面导航到 密码和安全 (Password & Security) 中执行此操作,也可以在你执行第5步时根据系统提示完成此设置。

  5. 两个Epic帐户都需要能够访问EOS开发者门户)(开发者门户)。 导航到开发者门户时,系统会提示接受许可证并选择 作为个人(On your own) 还是 作为组织(As an Organization)。 请选择 作为组织(As an Organization) 以使用你的主帐户创建组织。

  6. 使用开发者门户登录到你的主帐户和组织后,你需要将你的辅助帐户添加到组织。单击 开发者门户(Developer Portal) 目录左侧的 组织(Organization) 分段,然后从 团队(Team) 选项卡中单击 邀请(Invite) 按钮。随后,系统会提示你填写辅助帐户的电子邮件地址。

该角色对于开发测试并不重要,因此你可以在单击 邀请(Invite) 之前选择 社区工具(Community Tools)。可以通过单击 设置(Settings) 重命名你的 组织(Organization)。或者,还可以为你的辅助帐户创建一个组织,但是,本教程不需要这样做。

  1. 你的辅助帐户将在电子邮件中收到邀请链接。你需要在登录辅助帐户时访问此URL。

    可以将URL粘贴到已使用辅助帐户登录的浏览器中来接受邀请。

接受邀请后,辅助帐户除了在测试期间登录外,不会用于任何其他用途。

Epic在线服务产品设置

在拥有具备开发者访问权限的Epic帐户并且具有相应的组织后,需要在后端设置一个产品以便在Lyra的本地副本中使用。要在PC平台上开发和测试Lyra,需要为EOS和 Epic帐户服务(EAS) 进行额外的设置。

Epic帐户服务提供旨在与EOS集成的身份验证和社交工具。如果你可以访问由平台或发布商提供的另一个身份验证系统,则不需要使用EAS。Lyra使用EAS执行开发登录以及与Epic Games商城的集成。

本小节中的步骤均在EOS开发者门户中执行,并且包含的信息与EOS设置指南Epic帐户服务入门页面中的相同:

  1. 首先,需要设置产品。可以通过选择 创建产品(Create Product) 来创建新产品。然后,可以选择你的产品以查看各种EOS功能的选项。

  2. 接下来,你需要为你的Lyra版本设置客户端客户端策略。在 产品设置(Product Settings) 中,单击 客户端(Clients) 选项卡。系统会提示你阅读并接受法律协议。执行此操作后,"Clients(客户端)"页面会显示其他授权许可的提示。对于本教程,你需要接受 Epic帐户服务(Epic Account Services) 的授权许可。

  3. 单击 新增客户端(Add New Client) 以创建一个名为"Lyra测试客户端(Lyra Test Client)"的新客户端。然后,单击 新增客户端策略(Add New Client Policy)

  4. 客户端策略名称(Client policy name) 字段中,输入"P2P客户端(Peer to Peer client)",因为它可以重复用于多个产品。对于 客户端策略类型(Client policy type),请选择 Peer2Peer,因为它提供Lyra所需的所有功能。单击两次 保存并退出(Save & Exit) 以保存你的新策略和客户端。

  5. 要允许使用EOS进行开发测试,你需要设置一个应用程序将你的产品与EAS连接。要为游戏使用EOS,你需要在该服务上设置EOS应用程序。这样就会将你的游戏与Epic帐户服务相关联。要执行此操作,请选择 Epic帐户服务(Epic Account Services),系统会提示你阅读并接受法律协议。完成后,单击你的 Lyra测试产品(Lyra Test Product)权限(Permissions)(1) 字段。或者,可以单击 创建应用程序(Create Application)(2),然后单击右上角的 权限(Permissions) 选项卡。

    品牌设置(Brand Settings)需要在发布前进行设置,但开发和测试不需要进行品牌设置。

    brand-settings-menu

  6. 权限(Permissions) 页面上,启用 在线状态(Online Presence)(1)好友(Friends)(2),因为Lyra需要这两项设置才能启用社交功能。单击 保存更改(Save Changes)(3)

  7. 选择 关联的客户端(Linked Clients)(1),然后单击 选择客户端(Select Clients) 旁边的下拉箭头并选择 Lyra测试客户端(Lyra Test Client)(2) 以将其关联到此应用程序,再单击 保存更改(Save Changes)(3)

    你可以导航到 产品设置(Product Settings) 页面,然后从 通用(General) 选项卡中向下滚动以查看你稍后需要的所有信息。

  8. EOS设置的最后一步是安装开发者身份验证工具(Developer Authentication Tool)。此工具可以简化多人游戏测试,因为你只需登录每个帐户一次,而不必在每次启动游戏时都进行双因素身份验证检查。

你的UE5源代码安装目录的Engine/Source/ThirdParty/EOSSDK/Tools文件夹中有身份验证工具的副本,也可以在EOS SDK下载内容中找到。

安装和配置Lyra

你现在拥有完整下载的引擎版本和完全设置好的EOS产品。下面的步骤将引导你完成安装、配置和构建Lyra的过程,使Lyra能够使用EOS。这些步骤类似于Lyra文档中的对应步骤。

如果你已经将Lyra安装到从启动程序下载的二进制版本引擎中,则可以跳到第7步。

  1. 打开 Epic Games启动程序(使用你的主帐户登录),然后选择 虚幻引擎(Unreal Engine) > 示例(Samples)。单击 Lyra初学者游戏(Lyra Starter Game),然后单击 创建项目(Create Project)

  2. 不要接受默认设置, 请为你的项目指定一个名称。

    如果你打算将Lyra改编成另一款游戏,则应在此处使用该名称。

选择安装引擎源代码的根文件夹。例如,如果已将引擎源代码安装到C:\UE5,请单击 浏览(Browse) 以选择这个文件夹,然后单击 创建(Create) 以便下载该项目。进行此操作之后,你应该有一个Engine子文件夹,还有一个与你刚选择的项目名称相匹配的子文件夹(默认为LyraStarterGame)。

  1. 你需要安装位于Engine/Extras/UnrealVS文件夹中的 UnrealVS 扩展。使用该扩展可以轻松管理Visual Studio中的启动项目和命令行参数。

  2. 导航到引擎源代码的根目录,然后安装并运行GenerateProjectFiles.bat以创建一个名为UE5.sln的新解决方案文件。双击该文件以加载Visual Studio。 加载完成后,你的LyraStarterGame版本会列在 解决方案资源管理器(Solution Explorer) 中的 游戏(Games) 类目下(包括LyraGameEOS)。

  3. 右键单击LyraStarterGame,选择 设为启动项目(Set As Startup Project),然后构建该项目

    这将编译Lyra和所需的所有引擎功能,可能需要一段时间。如果遇到任何编译错误,则需要在解决它们之后再继续。

  4. 从源代码构建Lyra后,可从 "调试(Debug)"菜单 运行该项目,并可浏览项目示例。

  5. 你需要进行额外设置,以便配置该项目使用EOS。Lyra附带了特定于EOS的配置文件,通过使用公共用户(Common User)插件CustomConfig 功能即可启用这些配置文件。

你需要修改位于项目内Config/Custom/EOS文件夹中的DefaultEngine.ini。请打开该文件并搜索以下行:

可删除开头的分号以取消注释该行。

;For OSSV1, fill in the following line with actual details and then uncomment
 ";+Artifacts=(ArtifactName="OSSv1EOS",ClientId="xxxx",ClientSecret="xxxx",ProductID="xxxx",SandboxId="xxxx",DeploymentId="xxxx",EncryptionKey="0")

default-engine-ini-artifacts-section

  1. 你需要修改之前创建的EOS产品的 Artifacts 行。在EOS操作面板的 产品设置(Product Settings) 页面上显示了你需要的信息。EOS OSS插件文档中介绍了执行此操作的过程,但此处列出了重要字段:

    • 工件名称(Artifact Name) 用于标记这种独特的设置组合,并且应该与DefaultArtifactName=OSSv1EOS行的值匹配。

    • 导航到 开发者门户。从 产品(Product)客户端(Clients) 分段的 产品ID(Product ID)客户端ID(Client ID)客户端密钥(Client Secret) 文本字段中复制这些字段值。

    单击 复制(Copy) 将这些值复制到剪贴板,然后将它们 粘贴(Paste) 到文本编辑器中。

    • 沙盒ID(Sandbox ID) 描述了如何查找成就等功能的数据,你可以使用 默认实时 沙盒的ID。由于游戏仍在开发中,因此可以将 部署ID(Deployment ID) 设置为 发布ID(Release ID)。在开发阶段后期,可能需要创建多个沙盒和部署以进行测试和发布。

    • 加密密钥(Encryption Key) 用于加密由客户端写入并保存在云端的文件,但Lyra实际上并不使用该功能。可以将此值设置为"0"或任何随机的64位数字(用引号引起)。

  2. 修改配置文件后进行 保存

在编辑器版本中测试EOS

现在可以开始执行在编辑器版本和打包的版本中测试游戏的步骤。

  1. Visual Studio 中,启用 UnrealVS工具栏,并将以下行添加到命令行分段中:

    -game -customconfig=EOS  
  2. 调试项目以使用新命令行进行启动,这将在独立游戏模式下启动项目并使用EOS配置文件。完成后,将显示一条错误消息"登录失败,未实现(Login Failure Not Implemented)"。 单击 OK(确定),随后将加载Lyra主菜单。 此错误消息表示你的项目正在尝试使用EOS,但由于你没有在命令行上指定足够的信息而无法登录。如果你没有看到登录失败的错误消息,则配置文件可能存在错误,因此应在输出日志中搜索与EOS相关的任何错误。

lyra-login-failure

  1. 现在,运行你在 Epic在线服务产品设置(Epic Online Services Product Setup) 中解压缩的 开发者身份验证工具(Developer Authentication Tool)。运行 EOS_DevAuthTool 程序时,系统会提示你输入要使用的 端口,请输入 6666

    在Windows上,你可能会收到要求访问防火墙的另一个提示。你需要允许访问。

接下来,单击 登录(Login) 以打开嵌入式浏览器,可在其中使用你的主Epic帐户登录。输入双因素代码后,系统会提示你输入 凭据名称(Credential Name),请输入"Player1"或类似名称。

credentials-list

  1. 对你的辅助帐户重复此过程,但请指定另一个不同的凭据名称,例如"Player2"。你的两个帐户将保持登录到该测试会话的EOS后端。最终,你将需要重新启动开发工具并再次登录以刷新身份验证。

  2. 导航回 Visual Studio 并将以下选项添加到 UnrealVS 中的命令行:

-AUTH_LOGIN=localhost:6666 -AUTH_PASSWORD=Player1 -AUTH_TYPE=developer 但是,需要将端口和凭据名称替换为前面选取的名称。例如,此时的完整命令行可以是:

    LyraStarterGame -game -customconfig=EOS -AUTH_LOGIN=localhost:6666 -AUTH_PASSWORD=Player1 -AUTH_TYPE=developer.

authorization-in-visual-studio

  1. 单击 调试(Debug) 以再次启动游戏。这一次,将使用命令行上的额外信息来登录EOS。随即将打开一个浏览器窗口,警告你有一个未经验证的应用程序,这是因为品牌设置未完成。单击两次"接受(Accept)"以授权将应用程序关联到你的Epic帐户。这将带你回到游戏并显示主菜单(无错误消息)。按 Shift+F3 打开Epic帐户覆层,其中显示你已完全登录。

  2. 此帐户是你的多人游戏的主帐户,因此请单击 Play Lyra(运行Lyra),然后单击 开始游戏(Start a Game) 以加载托管屏幕。确保 网络(Network) 设置为 在线(Online),然后选择 淘汰(Elimination) 开始比赛。

    为确保你的计算机可以处理两个游戏副本,你可能需要将图形质量设置为"低(Low)"并在设置菜单中启用窗口模式。

  3. 返回到 Visual Studio 并从 调试(Debug) 菜单中分离此客户端。将UnrealVS命令行中的-AUTH_PASSWORD值更改为第二个凭据名称(Player2),准备使用你的辅助帐户登录。 单击 调试(Debug) 以再次启动游戏。当第二个实例启动时,系统会提示你将应用程序授权给你的第二个帐户,然后显示主菜单。

  4. 为确保一切正常,请单击 浏览(Browse) 以显示 服务器浏览器(Server Browser),并检查第一个游戏实例托管的游戏是否仍在运行。

  5. 选择游戏。如果你加入游戏成功,则该过程完成。你现在处于一个有2名玩家(和机器人)的多人游戏中。

LyraGameEOS打包

在确认EOS可以在开发编辑器版本中正常运行后,即可按照额外的步骤创建打包的 LyraGameEOS 版本。

仅当遵循了将Lyra安装到从源代码构建的引擎副本中的完整过程后,这些步骤才有效,因为安装启动器的版本无法自定义构建过程。

  1. 开发(Development) 版本中设置你的项目,并加载编辑器以创建游戏的EOS打包版本。

    可以清除项目名称后的命令行,UnrealVS会在下拉菜单中保留命令行历史记录。

  2. 编辑器加载后,导航到工具栏,单击 平台(Platforms) > Windows > 构建目标(Build Target),然后选择 LyraGameEOS 以构建游戏的自定义版本,这一游戏版本将 -CustomConfig=EOS 设置烘焙到可执行文件中。

  3. 导航到 工具栏(Toolbar)> 平台(Platforms)> Windows >打包项目(Package Project) 以选择一个输出目录。选择目录之后,系统将开始烘焙和打包过程。

    检查输出日志中是否有任何错误。

    如果打包Lyra失败并且日志显示有与UAT相关的错误消息,则可能是遇到了Lyra游戏示例的原始5.0版本中存在的错误。要修复此错误,可下载5.0.2版(或更高版本)的Lyra示例,或将Lyra安装到引擎基础安装目录的 Samples/Games 子文件夹(C:\UE5\Samples\Games\LyraStarterGame)。

  4. 如果烘焙和打包过程成功,则会将打包的游戏副本放在你选择的目录中。这个打包的版本可以压缩并发送到另一台计算机以进行真实的多人游戏测试。

如果从Epic Games商城运行这个打包的版本,则会传入正确的用户凭据。但是,对于开发测试,你需要创建一个快捷方式或批处理文件,并添加以下命令行:

-AUTH_LOGIN=localhost:6666 -AUTH_PASSWORD=Player1 -AUTH_TYPE=developer

后续步骤

完成这些步骤后,你现在获得了一个完整工作的Lyra版本,可在其中使用EOS进行多人游戏的开发和测试。借助启用了EOS的Lyra游戏示例的工作版本,你可以将其用作其他开发任务的基础,最终目标是发布你自己的游戏。要调整Lyra多人游戏代码以用于另一个现有游戏,你可以在整个Lyra代码库之上构建你的游戏,或者可以按照文档中的说明将CommonUser插件和配置文件复制到你自己的游戏中。

Lyra设计为在所有受支持的游戏主机、移动平台和PC桌面平台上均可运行,但是,当前版本的示例主要是使用Epic Games商城的内部版本在PC上进行测试的。为了准备在Epic Games商城中发布你自己的游戏,我们建议你与你的发布商合作完成品牌审核流程,并开始与发布团队进行对话。

如果你在开发游戏的跨平台版本时需要帮助,或对本教程中的EOS设置步骤有任何疑问,可以在EOS社区论坛上创建讨论或联系EOS支持团队。