Redistributable installer

Redistributable用于集成和统一用户身份验证和社交体验

阅读时间8分钟

Redistributable安装工具

如果你的游戏在多个PC商城发布,或独立于商城发布,你可以使用Epic在线服务(EOS)来集成和统一每次发布的用户身份验证和社交体验。例如在Steam上,使用EOS的游戏内覆层,用户将能够在单个列表中查看他们所有的Epic好友和Steam好友并与之互动。

在此页面阅读有关Epic Games商城和Steam上PC的跨平台游戏社交功能的更多信息:使用Epic账号服务的跨平台游戏

概述

EOS社交面板和Epic账号登录体验通过游戏专用的EOS SDK集成功能提供,使用了单独发布给玩家的游戏内覆层。为了发行覆层技术组件,我们为游戏了提供单独的EOS服务Redistributable,能作为游戏安装先决条件的一部分安装。

这样Epic可通过后端控制的更新自动保持覆层的最新状态,与游戏自身的更新周期脱钩。通过此机制提供自动更新,增加了新的跨平台社交功能,对于不再积极更新内容的游戏也是如此。

游戏客户端启动流程

Game client startup flow

点击查看大图。

在Epic Games商城外发行时,将EOS覆层添加到你的游戏中,包括以下步骤:

  • 添加EOS服务Redistributable EpicOnlineServicesInstaller.exe ,将作为游戏安装流程的一部分安装,或在验证游戏文件时安装,并在卸载游戏时将其卸载。
  • 添加EOS Bootstrapper应用程序,作为启动游戏的主要可执行文件。该应用程序负责初始化本地安装的EOS服务,然后启动游戏客户端应用程序。

服务Redistributable安装工具

EOS服务Redistributable负责下载和安装EOS覆层,并使其自动保持最新。该服务在用户启动游戏时运行,并在游戏终止时自动退出。该服务仅在游戏运行时运行。在游戏启动时执行覆层更新检查。

该组件作为游戏文件的一部分发布给最终用户,并作为游戏安装流程的一部分作为先决条件进行安装。安装或卸载游戏时,EOS服务Redistributable也将分别安装或卸载。还需注意的是,如果发布平台客户端为用户提供了验证和修复其游戏安装的能力,则应调用EOS服务Redistributable安装工具,以便确保在需要时对其进行修复。

Steam安装脚本

这是模板 installscript.vdf 文件,你可以在Steam平台上发布游戏时使用。你只需更改 {EosProductId}{SteamAppId} ,匹配你游戏的标识符。该模板假定你的游戏在游戏根目录的 EpicOnlineServices 文件夹下发布 EpicOnlineServicesInstaller.exe

"InstallScript"
{
"Firewall"
{
"EOS Bootstrapper - {SteamAppId}" "%INSTALLDIR%\\EOSBootstrapper.exe"
}
"Run Process"
{
"EpicOnlineServices"
{
"HasRunKey" "HKEY_LOCAL_MACHINE\\Software\\Valve\\Steam\\Apps\\{SteamAppId}\\EOS"
"Process 1" "%INSTALLDIR%\\EpicOnlineServices\\EpicOnlineServicesInstaller.exe"
"Command 1" "/install productId={EosProductId} /quiet"
}
}
"Run Process On Uninstall"
{
"EpicOnlineServices"
{
"Process 1" "%INSTALLDIR%\\EpicOnlineServices\\EpicOnlineServicesInstaller.exe"
"Command 1" "/uninstall productId={EosProductId} /quiet"
}
}
}

为本地开发运行服务

使用Epic账户登录(EOS_Auth_Login)的应用程序,无论是 EOS_LCT_AccountPortal 还是 EOS_LCT_ExternalAuth 登录类型,都需要EOS服务在后台运行。在本地开发期间,例如在虚幻引擎或Unity中运行游戏时,你不需要使用Bootstrapper。

如需为本地开发运行服务,请导航到 Program Files (x86)\Epic Games\Epic Online Services\ 中的服务安装目录,并通过 EpicOnlineServices - Development.cmd 快捷方式启动它。你可以通过右击Windows任务栏中的系统托盘图标来停止该服务。注意,你可能需要重启代码环境,以便你的服务生效。

Bootstrapper应用程序

EOS Bootstrapper是一个可执行文件,用作临时启动应用程序来运行实际的游戏客户端可执行文件。它旨在用作用户启动游戏时运行的目标可执行文件。

EOS Bootstrapper负责启动已作为游戏安装流程的一部分安装的EOS服务。EOS 服务将对其自己的软件版本和EOS覆层组件执行自动更新检查,并自动安装所有可用的软件更新。

初始化EOS服务后,EOS Bootstrapper会自动继续运行目标游戏客户端可执行文件。此流程可确保在游戏启动时EOS覆层可供游戏应用程序和EOS SDK使用。EOS覆层是游戏内Epic账号登录体验和Epic社交面板正常工作的必要条件。

用法

EOS Bootstrapper可执行文件作为游戏文件的一部分发布。它通常放置在主游戏可执行文件旁边,但也可以位于游戏安装目录中的另一个文件夹中。EOS Bootstrapper可执行文件与一个和EOS Bootstrapper可执行文件同名的配置文件配对。例如,LaunchGame.exeLaunchGame.ini 配对。

要生成配置文件,并选择性地更改EOS Bootstrapper可执行文件的程序图标,请参阅下一节EOS Bootstrapper工具

故障排除

对于每次运行,EOS Bootstrapper都会将日志文件写入 %LOCALAPPDATA%\Epic Games\Epic Online Services\Bootstrapper\Logs\EOSBootstrapper.log。如果游戏客户端进程未启动,或者EOS SDK返回了与Epic账号登录或EOS覆层相关的意外错误,请检查Bootstrapper日志是否存在错误。

Bootstrapper工具

EOS Bootstrapper工具是一个命令行工具,用于生成EOS Bootstrapper应用程序使用的配置文件。你还可以选择使用自己的程序图标更新EOS Bootstrapper可执行文件,例如匹配游戏客户端可执行文件的程序图标。

EOS Bootstrapper工具是一种开发工具,不会作为游戏文件的一部分发布给最终用户。它通常会添加到游戏客户端构建管线的末尾,但也可以用作一次性独立工具来创建EOS Bootstrapper配置文件。

用法

运行时,该工具执行以下操作:

  1. 将本地Boostrapper可执行文件(EOSBootstrapper.exe)复制到输出文件路径(--output-path)。
  2. 如果设置,更新复制的Bootstrapper可执行文件的程序图标和版本信息,使用目标应用程序可执行文件运行(--app-path)。
  3. 在复制的输出Bootstrapper可执行文件旁边创建新的配置 .ini 文件。

通过命令行提示运行 EOSBootstrapperTool.exe --help,查看完整的使用信息和所有可用选项。

使用示例

假设你的开发目录树如下所示:

.\
GameBuild\Bin\GameClient.exe
Tools\EOSBootstrapper.exe
Tools\EOSBootstrapperTool.exe

然后,你将使用以下命令行运行EOS Bootstrapper工具:

EOSBootstrapperTool.exe --output-path ..\GameBuild\Bin\LaunchGame.exe --app-path GameClient.exe

这会复制原始EOSBootstrapper.exe并重命名为 LaunchGame.exe 到游戏构建目录中,位于游戏客户端可执行文件旁边,并生成 LaunchGame.ini 配置文件。

Bootstrapper配置

EOS Bootstrapper应用程序使用该配置文件并且需要它才能工作。为方便起见,它可以使用EOS Bootstrapper工具生成,也可以手动创建。

配置文件将为EOS Bootstrapper应用程序指定以下运行时选项:

选项类型描述
ApplicationPath字符串指向要运行的目标应用程序可执行文件。如果Bootstrapper可执行文件和游戏客户端可执行文件都位于同一文件夹中,则这是游戏客户端可执行文件的名称。例如 Game.exe 。如果它们位于不同的文件夹中,则这是从Bootstrapper可执行文件的位置到游戏客户端可执行文件的相对路径,包括可执行文件名称本身。例如 Bin\\Game.exe
WorkingDirectory字符串(可选)。运行目标应用程序时要设置的相对工作目录。
NoOperation布尔值[True, False],整形[0, 1]可选,默认为false。如果设置,将直接启动目标应用程序而无需初始化EOS服务。此设置可用于在没有EOS服务的情况下运行游戏,例如,你尚未完全集成服务Redistributable安装工具,以便在你的开发环境中运行,供其他开发人员和游戏测试人员使用。
WaitForExit布尔值[True, False],整形[0, 1](可选,默认为false)。如果设置,Bootstrapper将仅在启动的目标应用程序退出后退出。例如,此设置可用于平台启动器在其目标可执行文件退出时将游戏标记为未运行的情况。由于Bootstrapper将成为平台客户端启动的目标可执行文件,因此你可以将Bootstrapper配置为在后台静默运行,直到游戏客户端本身退出。

配置示例

ApplicationPath=GameClient.exe
WorkingDirectory=
NoOperation=0
WaitForExit=0