Cross-Platform Multiplayer Guidelines

Guidelines for the cross-platform multiplayer requirement

17 mins to read

Overview

Products with online multiplayer functionality must support crossplay across all PC storefronts in order to be distributed on the Epic Games Store. This requirement ensures users who purchase a multiplayer product on the Epic Games Store can easily connect with friends and other players, regardless of where purchases were made.

You may use your preferred solution for crossplay, such as the free Epic Online Services (EOS) crossplay functionality, your own method, or any third-party system that works across PC storefronts. Crossplay with other non-PC platforms (i.e., consoles) is optional but encouraged.

The sections below provide guidelines, additional details, and test cases to help you meet this requirement and prepare your product for release on the Epic Games Store.

To allow sufficient time for testing and verification, partners must provide a crossplay enabled build at least four weeks prior to any public launch.

Crossplay Requirements

The sections below outline the elements that comprise the cross-platform multiplayer requirement. Where supported, multiplayer functionality on Epic Games Store must be at parity with other PC storefronts.

Epic Online Services for Cross-Platform Multiplayer Support

While you may use Epic Online Services (EOS) to support crossplay, EOS is not required. You may choose any third-party solution providers or in-house solutions to ensure your product meets the below requirements.

  • Learn more about Epic Online Services.
  • If you have any questions about the setup for your multiplayer game, contact your Business Development Manager or Technical Account Manager.

Matchmaking

For products that support matchmaking, players must be able to match-make across storefront boundaries by default. Specifically:

  • All Steam and Epic Games Store sessions must be listed together.
  • An Epic Games Store player can join a Steam or Epic Games Store session listed in the multiplayer menu.
  • A Steam player can join a Steam or Epic Games Store session listed in the multiplayer menu.

Friends-Based Multiplayer

For products that support friends-based multiplayer, players must be able to view and interact with friends across platform boundaries. Examples of friends-based multiplayer functionality include but are not limited to joining sessions via presence, asynchronous friends-based play, and other friends-based interactions.

Invites

For products that support invites, invites must be supported across storefront boundaries. These invites should work bi-directionally, in a similar manner to how they work on their native platform, so:

  • An Epic Games Store player has a way to send an invitation to a friend playing on Steam.
  • A Steam player has a way to send an invitation to a friend playing on the Epic Games Store.

Learn more about Crossplay Social Graph Options to support invitation systems.

Recommended Practice

If you choose to use Epic Games accounts as the cross-platform account system, we recommend the following flow on Steam to provide an optimal experience to users:

  1. Use a persistent setting in your product to toggle cross-platform multiplayer functionality (e.g., Enable cross-platform invites to friends using an Epic Games account). By default, this crossplay setting should not have a known true/false value so that users must provide their selection. Additionally, you must implement crossplay in your product using Epic Account Services.
  2. Once implemented, users should be prompted upon first launch of your product to enable cross-platform multiplayer by linking their Epic Games account (e.g., Would you like to enable cross-platform invites to friends using an Epic Games account? You can update this preference at any time in the Settings menu.)
    • If a user selects No, save the False value to the crossplay setting. Then, continue as if cross-platform invites have not been implemented.
    • If a user selects Yes, save the True value to the crossplay setting. Then, proceed through the Epic Games account linking flow.
  3. On subsequent launches, detect the value of the crossplay setting (i.e., true or false) and take the appropriate action:
    • If True, automatically log in the user during initial boot.
    • If False, skip the Epic Games account authentication.
  4. In your product's UI where direct direct session invites between friends are supported, use the EOS Native Platform Integration to display Steam and Epic Games friends together in the social overlay.
    • Alternative: Provide separate options to send Steam friend invites (through the Steam API/overlay) and Epic Games friend invites (through the EOS API/overlay).

This scenario provides you with a unified cross-platform matchmaking pool while allowing users to decide if they wish to use their Epic Games account for crossplay purposes (i.e., using the Epic Games social overlay or sending cross-platform invites to friends).

Crossplay Social Graph Options

Invitation systems largely depend on the player’s social graph to provide addressable users as targets for the invitation. The Epic Games Store recommends the following options for crossplay social graphs:

  • Epic Social Graph: Uses Epic Account Services-based social graph as the primary social graph across all PC storefronts.
  • Publisher Social Graph: Uses a title-, developer-, or publisher-based social graph as the primary social graph across all PC storefronts.
  • Bifurcated Social Graphs: Uses the social graph of the PC storefront where the client was purchased as the primary social graph (the Home social graph). Optionally, allows for linking to another storefront’s social graph (the Away social graph) as a way to satisfy the invitation requirement. Necessitates additional UX for showing the Away social graph, either collated in-game friends lists, or additional social graph overlays.

Epic Social Graph

Epic Account Services are designed to work across platforms to provide a consistent developer and user experience. Learn more about Epic Online Services and Epic Account Services.

Pros:

  • Large social graph: The Epic Account Services have more than 350 million accounts and over 2.2 billion friend connections
  • Single identity on all platforms: Makes development and support easier across platforms for developers. Users maintain a single online identity and friends list across titles and platforms.
  • No blockers: Epic Account Services are supported on all major platforms, storefronts, engines, etc.

Cons:

  • A change for existing users: for titles that have previously ​shipped using other social graphs as their primary, updating to Epic Account Services as the primary social graph may be disruptive. In these cases, we recommend using bifurcated social graphs.

Additional Options:

  • Integrated friends: Optionally link with other social graphs, including other publishers or platform-based social graphs where applicable, to display additional friends lists in-game
  • Suggested friends: Optionally link to another account to suggest Epic friends to another social graph
  • Reciprocal friends: Optionally link to another account to have Epic Account Services receive friend suggestions from another social graph

Typical Tech Stack

Typically, a game client leveraging Epic Account Services for the primary social graph would also use EOS services. This is not a requirement.

StorefrontEpic Games StoreSteamPublisher Store
ServicesEpic Online ServicesEpic Online ServicesNot applicable
SocialEpic Account ServicesEpic Account ServicesNot applicable
StoreEpic Games StoreSteamNot applicable

Publisher Social Graph

Some developers or publishers have the capability of supporting their own social graph. These solutions are welcome on the Epic Games Store.

Pros

  • Storefront equality: By default, when using a publisher social graph as the primary social graph, PC storefronts are treated equally
  • Single identity on all platforms: Makes development and support easier across platforms for developers. Users maintain a single online identity, no matter where they play

Cons

  • Expensive: Not all developers/publishers have the capability to implement, maintain, and constantly draw users to their own social graphs
  • Small(er) social graphs: Publisher-focused social graphs tend to have fewer users and social connections between those users, than social graphs spanning multiple publishers
  • Account linking requirements: Users may get confused if they purchase a product with one identity, but then play that product with a separate identity and have a friends list that does not match the platform/storefront’s friends list

Additional Options

  • Integrated friends: Optionally link with other social graphs, including other publisher or platform social graphs where and when available, to display additional friends lists in-game
  • Suggested friends: Optionally link to Epic Account Services to suggest Epic friends to the publisher social graph
  • Reciprocal friends: Optionally have Epic Account Services receive friend suggestions from the publisher social graph

Typical Tech Stack

Typically, a game client leveraging their publisher account for the primary social graph across storefronts also uses their own game services. They may also have their own storefront. This is not required.

StorefrontEpic Games StorePublisher StoreSteam
ServicesPublisher Game ServicesPublisher Game ServicesPublisher Game Services
SocialPublisher Account ServicesPublisher Account ServicesPublisher Account Services
StoreEpic Games StorePublisherSteam

Bifurcated Social Graph

In a bifurcated social graph, the primary social graph is the one provided by the storefront the game client was purchased on. However, a bifurcated social graph allows a user to be signed in on more than one social graph at the same time. In-game UI or SDK-based overlays provide the UX for the Away social graph to present itself in-game.

Bifurcated social graphs must feature a single matchmaking pool across all platforms, by default.

Pros:

  • Best UX: For users, combines the simplicity of the Home social graph with the flexibility of adding the Away social graph.
  • Largest social graphs: Allow users to target the union of the large platform-based social graphs all at once.

Cons:

  • Non-trivial to implement: Less expensive than building and maintaining a publisher social graph; requires some care in UX design and implementation across multiple client versions of the title
  • Multiple identities: Users will be left with some of the burden of managing their experience across multiple social graphs; for example: knowing which graph a particular friend is on or what their username is on that social graph
  • Non-linked safety concerns: If a user does not link to the Away graph and they encounter users from the Away graph who are abusive, the user may not have immediate recourse to, for example, block that abusive user
  • Steam blockers: Steam does not, as of this writing, allow for account linking to a Steam ID outside the Steam ecosystem. This necessitates signing in to a Steam account directly every time the game client wants to update the Steam social graph, for example. We encourage developers to request that Steam open up their social graph and services from outside the Steam launcher and Steam clients.

Additional Options:

  • Integrated friends: Optionally link with other social graphs, including other publisher- or platform-based social graphs where and when available, to display additional friends lists in-game
  • Suggested friends: Optionally link to another account to suggest Epic Account Services friends to another social graph
  • Reciprocal friends: Optionally link to another account to have Epic Account Services receive friend suggestions from another social graph
  • Remove crossplay: Because bifurcated social graphs must include crossplay ​by default​ in matchmaking, and because situations can arise around abusive players when the user has not linked to the other social graph, the product ​may ​present an option to the user to remove themselves from cross-platform matchmaking. Epic Games instead prefers the product to present options for dealing with potentially abusive crossplay players versus limiting a user’s matchmaking pool.

Typical Tech Stack

Typically, a game client leveraging a bifurcated social graph across storefronts would use a cross-platform set of multiplayer services (either their own in-house services, EOS, or another third-party solution).An in-house solution is shared for illustrative purposes in the table below. This is not a requirement.

StorefrontEpic Games StoreSteamPublisher Store
ServicesPublisher Game ServicesPublisher Game ServicesNot applicable
SocialEpic Account Services; Steam (optional link - not available yet)Steam; Epic Account Services (optional link)Not applicable
StoreEpic Games StoreSteamNot applicable

Crossplay Test Cases

To help ensure a successful launch of your product, we strongly encourage you to review the following test cases for your crossplay-enabled build. These test cases help ensure your product meets the Epic Games Store crossplay requirement and offers an optimal multiplayer experience to users.

A crossplay-enabled build must be provided at least four weeks prior to any public launch to allow sufficient time for independent testing and verification. When initiating the testing process, provide the following details:


  • Artifact ID and Sandbox ID of Epic Games Store build
  • Two to three keys to redeem the build on other PC storefronts, as well as branch details if applicable
  • Any additional steps needed to grant access to specific accounts or machines

Server Browser / Matchmaking

If server browser or matchmaking is supported, players must be able to connect across storefront boundaries by default (e.g. without having to manually opt-in through a menu option).

Test Steps

  1. Have one or more players launch the product on the Epic Games Store.
  2. Have one or more players launch the product on another storefront (e.g., Steam).
  3. If the product has a server browser:
    • Have one player on the Epic Games Store create a game.
    • Have additional players on the Epic Games Store and other storefront join the game.
    • Repeat the two steps above with the player on the other storefront creating the product and the player on the Epic Games Store joining the game.
  4. If the product has matchmaking:
    • Have all players across both storefronts look for a match at the same time.

Expected Results

  • All Epic Games Store and other PC store games must be listed together.
  • An Epic Games Store player can join a product hosted via Epic Games Store or another PC platform via server browser/matchmaking.
  • A player on another PC platform can join a product hosted via Epic Games Store or another PC platform via server browser/matchmaking.

Pass Scenarios

  • Players across storefronts can create and join the same pool of multiplayer sessions by default.

Fail Scenarios

  • Players do not join the same pool of multiplayer sessions after completing account linking and must set additional options to enter gameplay.

Game Session Invites

If direct session invites are supported, they must be supported across storefront boundaries. Where supported, in-game friend functionality on Epic Games Store must be at parity with other PC storefronts. These invites should work bi-directionally.

Test Steps

  1. Have one or more players launch the product on the Epic Games Store.
  2. Have one or more players launch the product on another storefront (e.g., Steam).
  3. Create friend relationships between two or more players across storefronts through any means the product supports (ie. Epic Games accounts, Discord, custom accounts, etc.).
  4. Have one player send a session invite to a player on another storefront.

Expected Results

  • An Epic Games Store player has a way to send a direct invite to a friend playing on another PC platform.
  • A player on another PC platform has a way to send a direct invite to a friend playing on the Epic Games Store.
  • If the Friends list can be used to send a direct invite on another PC platform, friends across storefront boundaries must be displayed in the same list.

Pass Scenarios

  • Product allows invites through a consistent mechanism (overlay, in-game menu, or invite codes) on each storefront.

Fail Scenarios

  • Product supports disparate invite mechanisms across storefronts (e.g., overlay and invite codes on Storefront A, and only invite codes on Storefront B).
  • Product supports direct invites, but friends are displayed in separate per-storefront lists.

Epic Account Services

If your product uses Epic Account Services to provide crossplay functionality, use the following checklist to validate the handling of all required scenarios. Note that while this is one of the ways you can implement crossplay, it is not required and you are welcome to implement any other solution of your choice.

If a player who has not yet linked their Steam and Epic Games accounts chooses to authenticate to Epic Account Services using their Steam account, the product should prompt for account linking, then automatically proceed to the Epic Account Service (EAS) consent flow.

Test Steps

  1. Revoke any existing consent to the product on the Apps tab on the Connections page.
  2. Unlink any existing Steam account on the Accounts tab on the Connections page.
  3. Launch the product on Steam.
  4. Trigger the in-game Epic Games account linking flow.
    • Note: To ensure account linking is understood to be optional, account linking and EAS consent should be driven by explicit player action (e.g., through a Link Epic Games account menu option), rather than included as part of the default launch flow.
  5. Complete the subsequent Epic Account Services consent flow.
  6. Exit the product and repeat steps 2-4 to ensure the player is able to restore the account link without being prompted to complete the Epic Account Services consent flow a second time.

Expected Results

  • Steam account linking is requested. Once completed, the Epic Account Services consent flow is initiated.

Pass Scenarios

  • Product displays account linking flow, then proceeds to Epic Account Services consent flow.

Fail Scenarios

  • Product does not provide in-game UI to link Steam and Epic Games accounts; player must manually link accounts on epicgames.com.
  • Product skips account linking and proceeds directly to AccountPortal login flow.
  • Logging in fails after the player removes account link, and product does not provide opportunity to restore account linking.

If a player has previously connected their Steam and Epic Games accounts, but Epic Account Services (EAS) application consent for the product has not yet been provided, the EOS SDK automatically prompts the user for consent during the Auth Interface Login API call. Through the Epic Games account management page, users can review the list of applications they have given data sharing consent to. On this page, users may also revoke access to any of the applications. If application consent is revoked, the user will be prompted for consent the next time they attempt login within your application.

Test Steps

  1. Ensure a Steam account has been linked on the Accounts tab on the Connections page.
  2. Revoke any existing consent to the product on the Apps tab on the Connections page.
  3. Launch the product on Steam.
  4. Trigger the in-game Epic Games account authentication flow.
    • Note: In cases where the use of Epic Account Services is optional, EAS consent and logging in should be driven by explicit player action (e.g., through a Link Epic Games account menu option), rather than included as part of the default launch flow.
  5. Complete the subsequent Epic Account Services consent flow.
  6. Restart the product and ensure that the player is able to sign into Epic Account Services without being prompted for consent.

Expected Results

  • The Epic Account Services consent flow is initiated using the linked Epic Games account, and the player is not prompted for consent on subsequent launches.

Pass Scenarios

  • Player is prompted for Epic Account Services application consent on initial launch and is able to proceed with login.

Fail Scenarios

  • Product skips account linking and proceeds directly to AccountPortal login flow.
  • Logging in fails if player has not provided Epic Account Services consent, and product does not provide opportunity to complete consent flow.
  • Epic Account Services consent flow displays on subsequent product launches after consent has already been provided.

Epic Online Services Redistributable

Using Epic Online Services, you can integrate in-game user authentication through Epic Account Services and unify social experiences across any PC storefront. As an example of this implementation, users on Steam would be able to see and interact with both their Epic Games friends and Steam friends from a single list using the Epic Games overlay.

In order to enable the Epic Games overlay in your games on PC storefronts other than the Epic Games Store, the Epic Online Services redistributable must be installed by your product as part of its installation process. To learn more, review Redistributable Installer. Note that the redistributable installer is not needed for the Epic Games Store and should not be included with the Epic Games Store product build.

Test Steps

  1. Ensure EpicOnlineServicesInstaller.exe is included in your game’s build.
  2. Ensure your game’s installation is configured to install, and uninstall, the EpicOnlineServicesInstaller.exe as part of your game’s redistributable dependencies (i.e., via a Steam installscript.vdf ).
  3. Ensure the product is launched via the EOSBootstrapper.exe process.
  4. Launch the product for the first time after installation.
  5. Sign into an Epic Games account in the game.
  6. Open the Epic Games overlay using the Shift+F3 shortcut.
  7. Exit the game.
  8. Uninstall Epic Online Services via Windows Settings > Apps & Features.
  9. Launch the game. The product should detect that the redistributable installation is missing and instruct the player to verify the product file integrity.
  10. Exit the game. Then, in Steam, right-click the product and select Properties. Navigate to the Local Files tab and click Verify the integrity of game files…
  11. Relaunch the game.

Expected Results

  • Launching the product for the first time after installation triggers the Epic Online Services installer.
  • In product, the Epic Games overlay loads after Epic Account authentication.
  • In product, Shift+F3 brings up the Epic Games overlay.
  • Relaunching the product after uninstallation of Epic Online Services instructs players to verify file integrity to reinstall Epic Online Services.
  • After file integrity verification and relaunching the product, the Epic Games overlay and account linking function as expected.

Pass Scenarios

  • Product includes Epic Online Services redistributable as part of its installation flow and log-in occurs without issue.
  • Product informs users how to install the Epic Online Services redistributable when uninstalled.
    • On Steam, the recommended method is having the product use the EOS_Platform_GetDesktopCrossplayStatus SDK API at startup to detect if the service installation is missing. If missing, the product then informs the user to close the application and verify file integrity in Steam.

Fail Scenarios

  • Product does not include Epic Online Services redistributable in installation flow.
  • Product does not inform user how to complete log-in if redistributable has been manually uninstalled.