Redistributable installer

Redistributable used to integrate and unify the user authentication and social experience

8 mins to read

If your game is distributed on multiple PC storefronts, or independently of any storefront, you can use Epic Online Services (EOS) to integrate and unify the user authentication and social experience across each of your distributions. For example on Steam, using the in-game overlay of EOS, users will be able to see and interact with all of their Epic friends and Steam friends in a single list.

Read more about crossplay social features for PC on Epic Games Store and Steam in this page: Crossplay using Epic Account Services.

Overview

The EOS Social Panel and Epic Accounts login experience, provided through the EOS SDK integration for games, uses an in-game overlay that is distributed separately to players. For distributing the overlay technology component, a separate EOS service redistributable is provided for games to install as part of the game installation prerequisites.

This allows the overlay to be kept automatically up-to-date by Epic through backend-controlled updates, decoupled from the game’s own update cycle. Automatic updates delivered through this mechanism adds new cross-platform social features, even for games that are no longer actively updated for new content.

Game client startup flow

Game client startup flow

Click to enlarge image.

Adding EOS overlay to your game, when distributed outside Epic Games Store, includes the following steps:

  • Adding the EOS service redistributable EpicOnlineServicesInstaller.exe to be installed as part of your game installation, or whenever the game files are validated, and uninstalling it when the game is uninstalled.
  • Adding the EOS bootstrapper application as the main executable to launch the game. This application is responsible for initializing the local installed EOS service, and then starting the game client application.
  • Updating the game client to call the EOS_Platform_GetDesktopCrossplayStatus SDK API at startup.

Calling the EOS_Platform_GetDesktopCrossplayStatus SDK API during the game client initialization verifies that the following prerequisites have been met:

  • The game was started through the EOS Boostrapper.
  • The EOS redistributable service was found installed as expected.
  • The EOS Overlay was loaded successfully by the EOS SDK.

This check allows you to perform any necessary error handling before the user attempts to log in to your game. For example, you can inform the player that the game was started incorrectly, or you can ask them to verify that the game installation is valid and all required game files are present. This ensures that the player has the best experience possible.

Service redistributable installer

The EOS service redistributable is responsible for downloading and installing the EOS overlay, and keeping it automatically up-to-date. The service is run when the game is started by the user, and automatically exits when the game is terminated. The service is only running when the game is running. The check for overlay updates is performed at the game start up time.

This component is distributed to end-users as part of the game files, and installed as a prerequisite as part of the game installation. When the game is installed or uninstalled, the EOS service redistributable is also installed or uninstalled respectively. It is also important to note that if the distribution platform client provides users ability to verify and fix their game installation, the EOS service redistributable installer should be invoked to ensure that it is fixed if needed.

Steam installscript

This is a template installscript.vdf file that you can use when distributing your game on the Steam platform. You will only need to change the {EosProductId} and {SteamAppId} to match your game’s identifiers. The template assumes that your game distributes the EpicOnlineServicesInstaller.exe under a EpicOnlineServices folder in the game root directory.

"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"
}
}
}

Running the service for local development

Applications using Epic accounts login (EOS_Auth_Login), with either the EOS_LCT_AccountPortal or EOS_LCT_ExternalAuth login types, require the EOS service to be running in the background. During local development, for example when running your game within the Unreal Engine or Unity, you do not need to use the bootstrapper application.

To run the service for local development purposes, navigate to the service installation directory in Program Files (x86)\Epic Games\Epic Online Services\ and start it via the EpicOnlineServices - Development.cmd shortcut. You can stop the service by right clicking its system tray icon in the Windows taskbar. Note that you may need to restart your code development environment for the service to take effect.

Bootstrapper application