文章摘要

UE5 提供了一款名为 Lyra 的 TPS 游戏作为示例游戏。
[UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

这个游戏是使用虚幻引擎的各种功能实现的,当然也包括网络匹配功能。

默认只有局域网比赛,Epic Games提供的线上平台史诗在线服务通过将后端替换为 ,您可以轻松地通过 Internet 进行比赛。

Lyra 以名为 CommonUser 的插件的形式实现在线功能。
在 CommonUser 插件中,通过设置在内部使用在线子系统可以切换。

CommonUser 插件支持 OSS 未涵盖的高级游戏会话流,旨在提供原始在线功能。
请参阅下面的详细资料。
https://docs.unrealengine.com/5.0/ja/common-user-plugin-in-unreal-engine-for-lyra-sample-game/

Lyra 有 EOS 的设置,您可以通过激活它轻松切换到 EOS。
在本文中,我会将下面博客中解释的内容翻译成日文,并解释以 EOS 为后端运行 Lyra 的过程。
https://dev.epicgames.com/community/learning/tutorials/375e/using-epic-online-services-with-lyra-starter-game

此外,UE5 还计划改进 OnlineSubsystem,该系统目前处于试验阶段,但已作为 OnlineServices 插件实现。
我还将在这里向您展示如何替换它。

设置 EOS 开发者门户

为了使用 EOS,需要在 Epic Games(开发者门户)为开发者提供的网站 Developer Portal 上创建/配置必要的资源。

  1. 开发者门户创建自己的组织。
    1.1 在每个组织内,每个游戏都可以通过创建与游戏对应的“产品”来访问EOS服务。
    [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

  2. 在 DevPortal 上创建新产品
    2.1 创建一个产品,这次叫做“LyraTestProduct”

  3. 打开已创建产品的详情页面,从“产品设置”中创建各种资源
    3.1 单击“客户端”选项卡中的“添加新客户端策略”
    3.2 策略类型选择“Peer2Peer”
    [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
    3.3 点击“添加新客户”
    3.4 设置3.2中创建的客户端策略
    [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

  4. 设置 Epic 账户服务
    4.1 在您的 Epic 帐户服务详细信息页面中,单击“创建应用程序”
    [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
    4.2 在“权限”中启用“在线状态”、“好友”
    4.3 在“Linked Clients”中链接3中创建的客户端

    至此,EOS端的必要设置就完成了。
    在“产品配置”页面中,可以列出配置 OSS 所需的每个参数。

    对于实际投放市场的游戏,需要在 Epic 账号服务中完成“品牌化”,但像这样的测试使用,则没有必要。

    获取 UE5 源码

    因为我们在打包 Lyra 时调整了构建过程,所以我们需要从源代码构建虚幻引擎。
    如果您可以访问 Perforce,则可以从那里获取源代码,如果没有,则可以从 GitHub 获取。

    有关详细说明,请参见下文。
    https://docs.unrealengine.com/5.0/ja/downloading-unreal-engine-source-code/

    *从 GitHub 下载源码时的注意事项

    目前可供下载的 Lyra(2022 年 4 月 5 日)在使用“ue5-main”分支的最新源代码时出现编译错误。
    从标签“5.0.3-release”下载它作为 zip 或 tar.gz,而不是从分支下载。
    https://github.com/EpicGames/UnrealEngine/releases/tag/5.0.3-release

    安装 Visual Studio

    安装 Visual Studio 2019 或 2022 以构建源代码。
    安装时包括以下组件。

    • C++ 分析工具
    • C++ 地址清理程序(可选)
    • Windows 10 SDK(10.0.18362 或更新版本)
    • 虚幻引擎安装程序

    另外,安装UnrealVS扩展也方便开发。
    安装程序位于上一节下载的 UE 源文件夹下的 Engine\Extras\UnrealVS\。
    有关详细说明,请参见下文。
    https://docs.unrealengine.com/5.0/ja/using-the-unrealvs-extension-for-unreal-engine-cplusplus-projects/

    安装天琴座

    如果您从 Perforce 下载 UE5 源

    Samples 下有一个 Lyra 项目,请在此处构建。

    如果您从 GitHub 下载 UE5 源

    您需要从 Epic Games Launcher 中单独下载 Lyra Starter Game。
    [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

    1. 从“Unreal Engine”=>“Samples”,选择 Lyra Starter Game
    2. 点击“创建项目”
    3. 设置安装文件夹为上一节下载的UE源的根文件夹
    4. 在 UE 根文件夹中运行 setup.bat
    5. 在 UE 根文件夹中运行 GenerateProjectFiles.bat
    6. 在 Visual Studio 中打开 UE5.sln

      完成至此的步骤后,您应该可以在 Visual Studio 的解决方案探索的“游戏”下看到一个名为 LyraStarterGame 的项目,让我们来构建它。
      [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

      设置 EOS 参数

      Lyra 有自己的自定义配置,设置为使用 EOS。
      它位于 Config/Custom/EOS 文件夹下,包括启用 OnlineSubsystemEOS 和替换 NetDriver 等设置。

      通过在启动时指定“-customconfig=EOS”作为参数,将从该配置文件中读取设置。

      默认情况下,写入 EOS 工件设置的行被注释掉,因此删除以下行开头的冒号 (;) 以启用设置。
      ";+Artifacts=(ArtifactName=..."

      激活设置后,将各种 ID/Secret 值替换为 EOS Developer Portal 中创建的资源值。
      [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

      EOS 开发者认证工具设置

      启动游戏后登录EOS有多种方式,但这次我们将使用开发者认证工具。
      这是一个在本地运行的网络服务器,通过在这个工具上登录你的 Epic 账户,你可以获得使用 HTTP 登录所需的认证信息。

      1. 从开发者门户的 SDK 页面下载最新的 EOS SDK
      2. 解压拉链解压
      3. SDK\Tools\EOS_DevAuthTool-win32-x64-1.1.0.zip
      4. 启动 EOS_DevAuthTool.exe

        当你启动这个工具时,会要求你指定本地运行的端口,所以这次是8080。
        然后登录任何 Epic 帐户并提供一个名称以获取您的凭据。 (示例中的“Player1”)
        [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

        使用带有 EOS 的 Lyra 启动

        在 Visual Studio 上,将以下参数添加到命令行并执行调试。
        (将 -AUTH_LOGIN 的端口号和 -AUTH_PASSWORD 的用户名酌情替换为上一节中指定的值。)

        -game -customconfig=EOS -AUTH_LOGIN=localhost:8080 -AUTH_PASSWORD=Player1 -AUTH_TYPE=开发者

        [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

        如果一切设置正确,Lyra 应该会成功启动并自动将您登录到 EOS。
        右上角显示登录完成弹窗后,按下“Shift+F3”即可显示社交叠加,如下图。
        [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

        包装 LyraGameEOS

        一旦你可以在调试运行中没有问题地登录到 EOS,让我们打包 LyraGameEOS。

        1. 从 Visual Studio 命令行中删除项目名称后的所有参数,然后调试运行以在编辑器中启动 Lyra 项目
        2. 从“平台”=>“Windows”=>选择“LyraGameEOS”作为构建目标
          [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
        3. 选择“Platform”=>“Windows”=>“Package Project”并指定适当的输出文件夹

          通过选择“LyraGameEOS”作为构建目标,您可以使用-CustomConfig=EOS以嵌入在可执行文件中的形式打包。

          请注意,打包的游戏必须在运行开发者认证工具的情况下启动,才能获取认证信息。
          与调试执行类似,可以通过在启动游戏时传递适当的参数来进行身份验证。
          -AUTH_LOGIN=localhost:8080 -AUTH_PASSWORD=播放器1 -AUTH_TYPE=开发者

          通过以上步骤,EOS 可以作为 Lyra 的后端。
          如果你有指定的EOS资源(ID/Secret),你也可以对战互联网,所以请尝试一下。

          [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
          [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
          [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる

          附录:在线服务的替换

          目前,UE5 正在开发一个 OnlineServices 插件,用于改进 OnlineSubsystem(BP 支持、简化描述方法等)。
          虽然仍处于试验阶段,但可以通过更改设置来代替 CommonUser 插件中的 OnlineSubsystem。

          使用 Lyra 的 Online Services 界面的过程如下。

          1. 在 LyraStarterGame\Plugins\CommonUser\Source\CommonUser\CommonUser.Build.cs 中,b使用在线子系统V1假的
            [UE5] Lyra のバックエンドにEOS を使ってみる + OnlineServices (Experimental) を使ってみる
          2. 在 Config/Custom/EOS 下的 DefaultEngine.ini 中禁用 OnlineSubsystemEOS
            [OnlineSubsystemEOS]
            bEnabled=false
            
            [OnlineSubsystemEOSPlus]
            bEnabled=false
            
            1. 注释掉OSSv1配置
              ;For OSSv1, fill in the following line ...
              ;+Artifacts=...
              
              1. 启用 [OnlineServices.EOS] 设置并将其指向适当的 EOS 资源。
                (*如果你下载了5.0.3的源码,【OnlineServices.EOS】前面还有一个“+”,请删除。)
                ;For OSSv2, fill in the following lines with actual details and then uncomment
                [OnlineServices.EOS]
                +ProductId=PRODUCTID
                +SandboxId=SANDBOXID
                +DeploymentId=DEPLOYTMENTID
                +ClientId=CLIENTID
                +ClientSecret=CLIENTSECRET
                

                通过更改上述设置,将使用 OnlineServicesEOS 插件代替 CommonUserSubsystem 中的 OnlineSubsystemEOS。
                游戏画面上并没有什么特别的区别,但是如果看一下CommonUserSubsystem/CommonSessionSubsystem等,就可以看出实现上的区别。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308622834.html

相关文章: