Crossplay across platforms

Using Epic Accounts to enable crossplay for titles on Epic Games Store, Steam, and stand-alone PC distributions

6 mins to read

Overview

Traditionally, publishing your game on multiple storefronts and platforms divides your player base between distribution platforms. Using Epic Account Services, games can access a larger ecosystem with powerful social crossplay features and the ability to unify your game’s matchmaking pools.

The Epic Online Services SDK provides an out-of-box integration that takes care of the complexities and details that connect your players across all of its supported platforms.

Crossplay is currently available for games on Windows PC. Support for Nintendo Switch, PlayStation®, and Xbox console platforms is planned. Support for macOS, Linux, Android and iOS is planned.

Game integration Using crossplay requires the following integration steps:

  1. Create a new OAuth Application for Epic Account Services, including a brand review.

  2. Integrate the SDK with your game client.

  3. For builds that publish outside the Epic Games Store, add the Epic Online Services local service redistributable installer and its associated Bootstrapper application as part of your game’s prerequisites.

The following sections outline each of the integration steps.

Step 1: Application configuration and brand review

To use Epic Account Services with your game, you will need to set up an Application for your product in the Dev Portal. After setting up your Application with the required information, submit it for a brand review. The brand review process will take a few days, after which players of your game will be able to log in using Epic accounts. For development purposes only, those Epic accounts that are members of your Dev Portal organization will be able to log in in your game prior to it completing the brand review process.

See the documentation on the band review application process for more information about setting up your Application for Epic Account Services.

Step 2: Game client SDK integration

An Epic Account log-in is initiated by the game client when it calls the EOS_Auth_Login SDK API. The common log-in scenarios described further in this page include distributing through the Epic Games Store, Steam, and as a stand-alone distribution.

General flow across all platforms and scenarios is that the game client acquires some type of authentication credentials for the local user, and passes them to the EOS_Auth_Login SDK API. Stand-alone distribution may also use the EOS_LCT_AccountPortal log-in method that does not require input authentication credentials, and instead prompts the user for Epic account credentials as part of the log-in process.

The SDK takes full control of the log-in flow by walking the user through any necessary steps using the in-game overlay. Once the user completes the login flow, either successfully or by canceling it, the SDK returns control to the game application via completion callback of the EOS_Auth_Login SDK API. On Steam, the user’s Steam account is implicitly linked to their logged-in Epic Account as part of the log-in flow managed by the SDK.

See the Auth interface documentation for SDK API integration details.

Step 3: Bootstrapper and service redistributable installer

See the redistributable installer and bootstrapper documentation for guidance on how to include the bootstrapper application and the local service redistributable installer as part of the prerequisites of your game.

Player experience

To access the cross-platform social features and play together, add friends, or send game invites, players are required to have an Epic Account. Depending on your preference, the game may offer an Epic Account log in as an optional choice to enable crossplay, or require log in and account-creation before they enter the game lobby menu, for example.

Log in

Epic Games Store

The game logs the local Epic user in using the exchange code received via command-line parameters, passed by the Epic Games Launcher to the started game process. The log-in is performed automatically without any user interaction.

Steam

At startup, the game calls the EOS_Platform_GetDesktopCrossplayStatus SDK API to verify that the Epic account login can use the overlay. If the game runs into errors (e.g. the Bootstrapper or redistributable service is missing), ask the player to verify the game files in the Steam library to repair the issues. Then ask the player to restart the game to apply the fixes.

The game logs the local Steam user into their Epic account using a Steam AuthSessionTicket acquired via the Steamworks SDK. The user is walked through the built-in user onboarding experience to link the local user’s Steam account with an Epic Account. Linking the Steam account with an Epic Account enables automatic user log in across consecutive application runs and across any game titles using Epic Account Services.

New users without an existing Epic Account have the option to create a new frictionless proxy Epic Account. This links the user’s Steam account to a newly-created Epic Account, allowing an automatic log in on consecutive application runs and without requiring users to register any additional details such as their email address or password.

Proxy Epic Accounts can be used in the same way as regular Epic Accounts that have an associated email address and password. For example, if the user later installs the Epic Games Launcher they will be able to login to their Epic Account using their Steam account login credentials. At that time, the user will be asked to register an email address and set a password for their account.

Welcome

Welcome screen of the built-in user onboarding experience on Steam that supports the frictionless proxy Epic Account creation.

Stand-alone distribution

At startup, the game calls the EOS_Platform_GetDesktopCrossplayStatus SDK API to verify that the Epic account login can use the overlay. If the game runs into errors (e.g. the Bootstrapper or redistributable service is missing), guide the player through the steps to repair the game installation for missing prerequisites.

The game logs the user in to their Epic Account without an existing authentication context. The user is walked through the built-in user onboarding experience, after which the SDK stores a persisted Epic refresh token on their local device to enable automatic user log in across consecutive application runs.

Age verification

As part of their Epic Account log in, users may be prompted to input their date of birth. Younger users may be prompted to obtain parental consent for their Epic Account, or for data sharing with your Application, before they can successfully complete the log-in process.

This process is fully managed by the SDK. If users have not yet obtained parental consent, the EOS_Auth_Login and EOS_Auth_LinkAccount SDK APIs will return the EOS_Auth_AccountFeatureRestricted error result. Games may re-initiate the log-in process to let users successfully log in after obtaining parental consent to play, or to otherwise let the user review their consent status.

Overlay

The SDK provides an in-game overlay that lets players access their Epic friends across games and platforms. Players can search and add friends, see who is online, and send game invites across all of the supported platforms.

You can also integrate some of the Epic friends functionality into the game’s own UI, for example to add another player as an Epic friend programmatically, you can use the EOS_Friends_SendInvite SDK API.

The overlay requires minimal SDK code integration from the game. See the overlay documentation for details on how to enable it for your game.

Matchmaking

Use the Lobbies or Sessions SDK interfaces to unify your game’s matchmaking pool across all platforms. Both interfaces provide an out-of-box integration with the overlay, making it easy for the game to add support for cross-platform game invites.

Additionally, specifying the integrated platforms options as part of the SDK initialization, game invites are integrated natively with the local platform to provide users with the same consistent experience that they are used to on each platform.