Overview
This guide aims to help partners promote an optimal experience for users while also ensuring compliance with Epic Games Store requirements. The sections below provide test cases and recommendations for crossplay multiplayer requirements, Epic Online Services (EOS), and a variety of player experience topics.
Before distributing your product or any updates on the Epic Games Store, it is strongly recommended that you review and verify these test cases to ensure a successful launch.
Epic Online Services
Epic Account Services Player Consent
Games using Epic Account Services require player consent to share data. As long as games use the correct CredentialType, players should be directed to grant consent a single time when first launching the game. For games sold in the Epic Games Store, this consent may be granted automatically at time of purchase. Players have the ability to revoke consent at any time from their Account Connections page.
Test Steps
- Sign into an account that is not associated with your Dev Portal organization.
- Ensure the game is not listed on the Account Connections page.
- Launch the game.
- Complete the consent flow when prompted.
- Exit and relaunch the game, confirming the consent flow does not display.
Expected Results
- The account proceeds into gameplay without seeing the consent flow after providing initial consent. Games on the Epic Games Store should use ExchangeCode rather than AccountPortal to ensure correct behavior.
- The Epic Account Services application has its Brand Settings in the Published state prior to game release. Applications that have yet to complete Brand Review cannot allow accounts outside your organization to sign in.
Pass Scenarios
- Consent flow only displays on the initial game launch.
- Epic Account Services application has completed Brand Review.
Fail Scenarios
- Consent flow displays on subsequent game launches after initial consent was provided.
- Epic Account Services application has not completed Brand Review. Brand Settings are set to Not Configured or Under Review.
Connect Interface Access Token Renewal
The Connect Interface requires games to renew players’ access tokens on an hourly basis to maintain a connection to Epic Online Services (EOS).
Games should use the AddNotifyAuthExpiration function to be notified when an access token is about to expire, and proceed to renew the log-in. Failure to carry out this renewal process results in service calls failing once the token expires.
Test Steps
- Launch the game and complete the initial sign-in flow.
- Wait 60 minutes.
- Attempt to use any EOS functionality implemented in the game (e.g., achievements, multiplayer, Player Data Storage, etc.).
- Verify through your game application’s local log file that the game client receives the OnAuthExpirationCallback notification from EOS SDK and successfully refreshes the authentication using the EOS_Connect_Login API.
Expected Results
- Features of the game using EOS functionality continue to function as expected after at least 60 minutes have passed.
Pass Scenarios
- EOS functionality remains usable after 60 minutes of gameplay.
Fail Scenarios
- EOS functionality becomes unusable after 60 minutes have passed from initial sign-in.
Offline Mode Support
The Epic Games Launcher allows users to opt in to Offline Mode, which passes the epicusername
and epicuserid
command line arguments to the game process upon launch.
However, an Exchange Code is not provided, and Epic Online Services (EOS) functionality, including entitlement checks, is not available to the game. You can choose to restrict or allow access to any additional content gated by entitlements, or you can implement a secure entitlement cache to allow players to proceed offline for a set period of time.
Test Steps
- While connected to the internet, access the Epic Games Launcher and select Enable Offline Mode Browsing in the Settings menu.
- Exit the launcher and disable the computer’s internet connection.
- Restart the launcher, entering your account’s email address to proceed.
- Launch the game.
Expected Results
- Game remains stable, and player is alerted to the lack of internet connection when attempting to enter areas of the game that require an active connection.
Pass Scenarios
- Game remains fully playable in Offline Mode.
- Game remains playable in Offline Mode but restricts access to certain content.
- Game informs player that game cannot be launched in Offline Mode.
Fail Scenarios
- Game crashes when launched in Offline Mode.
- Game displays misleading or uninformative messaging when launched in Offline Mode.
Sandbox/Deployment ID Handling (Epic Games Store publishing tools only)
All products configured using the Epic Games Store publishing tools in the Dev Portal are equipped with a standard set of three sandboxes: Dev, Stage and Live.
As static Sandbox ID and Deployment ID values are required to initialize Epic Online Services (EOS), the following implementation is recommended to ensure the build can handle being downloaded and used across multiple sandboxes:
- Sandbox ID: This ID can be obtained from the Epic Games Launcher at launch time in the form of the
epicsandboxid
launch argument provided to all games. - Deployment ID: This ID can be set within your build in a custom if/switch statement block targeting the expected deployment for the sandbox in question.
Test Steps
- Promote the build from the Dev to Stage sandbox.
- Sign in to an account that owns the game in both the Dev and Stage sandboxes.
- Launch the game in the Dev sandbox and ensure any implemented EOS features behave as expected.
- Exit the game and relaunch in the Stage sandbox, testing the same features.
- When pushing the game to the Live sandbox, perform the same test but use a fresh account that is not a member of the dev organization.
Expected Results
- EOS features remain usable across different sandboxes.
- Player state should be distinct between sandboxes. If achievements or add-on purchases have only been completed in a single sandbox, they should not be available in other sandboxes.
Pass Scenarios
- Game handles the
epicsandboxid
launch argument and dynamically sets the correct Sandbox ID and Deployment ID. - Game dependencies require hard-coding Sandbox ID and Deployment ID values, and Live values are used for each.
- An account not associated with a Player Group or added as a member to the developer organization can play the Live sandbox build without issues.
Fail Scenarios
- Game references Dev or Stage sandbox/deployment when downloaded from Live sandbox, blocking sign-in for players.
- Live deployment is set to Private at time of game release, blocking sign-in for players outside the Dev Portal organization.
Player Experience
Epic Games Store Achievements
Games published to the Epic Games Store can leverage Epic Games Store achievements to enhance the player experience by rewarding users with experience points (XP) for various interactions with your game. These achievements utilize the Epic Online Services achievement functionality for in-game integration.
With Epic Online Services achievements implemented in the game, Epic Games Store achievements can be configured in the Dev Portal by specifying XP values for the achievements. Epic Games Store achievements require the use of Epic Account Services to authenticate the player and record their achievement progress and unlocks.
To optimize the player experience, we recommend enabling the Social Overlay to display achievements and achievement progress in game. We also recommend performing a similar test with a fresh account, not assocaited with the developer organization, once you push to the live Sandbox
Test Steps
- Launch the game.
- Sign in to an Epic Games account in the game.
- Advance the gameplay to a point where an achievement is unlocked.
Expected Results
- If the Social Overlay is enabled:
- The overlay (opened with Shift+F3) displays the game’s available achievements on the Achievements tab.
- An XP value displays for each achievement listed on the Achievements tab.
- The achievement unlock notification displays at the top center of the screen along with an unlock sound and the proper tier (i.e., bronze, silver, gold, or platinum) for the achievement.
Pass Scenarios
- Achievements are correctly shown and unlocked in the game using the Social Overlay.
- Achievements are correctly unlocked in the game and displayed on the game’s product page in the Epic Games Store.
Fail Scenarios
- Achievements in the Social Overlay only show Epic Online Services achievements (without XP, rarity, and tier)
Unicode Character Support
Both Windows and Epic Games accounts allow players to use characters outside the Latin alphabet in their display names. Games should include users with this configuration in their test pass.
Test Steps
- Sign into a Windows user account including a non-Latin character.
- Sign into an Epic Games account with a display name including a non-Latin character.
- Install the game into a folder including a non-Latin character.
- Launch the game.
- Proceed into each game mode and create save data.
- Exit and relaunch the game.
Expected Results
- All game modes should function as expected.
- Save data should remain accessible after relaunching the game.
Pass Scenarios
- Game remains fully functional when launched by a user with non-Latin characters included in their Windows user account and installation folder.
- Display name of Epic Games account is depicted accurately in-game.
Fail Scenarios
- Game fails to launch when installation folder includes non-Latin characters.
- Game fails to save or load player data when installation folder or display name of Epic Games account includes non-Latin characters.
- Game displays null characters in place of non-Latin characters in display name.
Redistributable Installation
The Epic Games Store does not currently handle automatic installation of common redistributables like DirectX or Visual C++. Partners are responsible for handling the installation of any prerequisites needed for their games. To learn more about the options available, review Game Prerequisite Installers.
The Epic Games Launcher installs prerequisite redistributables configured using the PrereqIds
argument when uploading builds using the BuildPatch Tool. However, players may choose to uninstall these redistributables at any time. Games should alert players to the missing prerequisites and provide the information needed to address the issue.
Test Steps
- Install the game, including any configured redistributables.
- Note: The Epic Games Launcher treats return codes 0, 1638, and 3010 as successes.
- Launch the game and proceed into gameplay.
- Uninstall the required redistributables.
- Attempt to launch the game.
Expected Results
- Game informs player of any missing redistributables needed.
Pass Scenarios
- Game installs the required redistributables upon initial launch.
- Game informs player of any missing redistributables after they have been removed.
Fail Scenarios
- Game fails to launch when redistributables have been removed.
- Game does not inform player on how to resolve the issue.
Language and Locale Settings
Games have access to three key settings detailing a player’s location, language, and locale:
- Account Region: Used by the Epic Games Store to determine which offers, prices, and age ratings are available to a player. For games using regional builds and launch times tied to local time zones, account region is also used to drive these features. This region code can be obtained for a player through the
Country
property of EOS_UserInfo. - Preferred Communication Language: Used to determine which language is used when contacting the player through email. This language code can be obtained for a player through the
PreferredLanguage
property of EOS_UserInfo. - Launcher Language: Used to determine which language displays within the Epic Games Launcher. This language code is provided to all games via the
epiclocale
argument when launching a game (see table below).
Supported Launcher Languages
Launcher Language | epiclocale Argument |
---|---|
Arabic | ar |
English | en-US |
German | de |
Spanish (Spain) | es-ES |
Spanish (Latin America) | es-MX |
French | fr |
Italian | it |
Japanese | ja |
Korean | ko |
Polish | pl |
Portuguese | pt-BR |
Russian | ru |
Thai | th |
Turkish | tr |
Chinese (Simplified) | zh-Hans |
Chinese (Traditional) | zh-Hant |
Test Steps
- Set the Epic Games Launcher Language setting to a language supported by the game.
- Launch the game.
Expected Results
- Game automatically sets the correct display language or allows the player to freely switch between supported languages via in-game options.
- Game is able to handle and parse all command line parameters provided by the launcher without crashing.
Pass Scenarios
- Game handles
epiclocale
argument and automatically sets in-game language. - Game launches in single default language but allows players to manually set language through in-game option.
Fail Scenarios
- Game lists a Supported Language on the product page, but players are unable to apply this setting through use of the
epiclocale
argument or in-game option.
Build Update Size Optimization
As part of the build upload process, the BuildPatch Tool automatically compares the data in the build to previous uploads and optimizes the generated patches to reduce the download size for existing players.
This process has been improved with BuildPatch Tool v1.5.0, and data is now compared across all artifacts tied to a product, rather than the single artifact of original upload. We strongly recommend using the latest version of the BuildPatch Tool available for download in Dev Portal.
Test Steps
- Install the current version of the game using a staging artifact or private sandbox.
- Note: The ability to download from a private sandbox is only available to partners participating in the Self-Publishing Tools Closed Beta.
- Set the next update of the game live in the test environment.
- Restart the launcher and observe the download size of the update.
Expected Results
- The update should result in a download size roughly representative of the binary delta between the builds, rather than a full redownload of the game.
- The download size for the update between two specific build versions can be further optimized by using the BuildPatch Tool’s BinaryOptimiseDelta mode. This command should be run with an empty CloudDir folder and may take additional time to complete processing compared to previous uploads for the game.
Pass Scenarios
- Player is able to download updates between build versions without issue.
Fail Scenarios
- Player re-downloads entire game when updating between build versions, due to use of outdated BuildPatch Tool for upload.
Launcher Cloud Saves
We encourage all games that save data locally to take advantage of the Cloud Saves feature supported by the Epic Games Launcher. For detailed test cases, review Cloud Saves.
Easy Anti-Cheat
All games that implement Easy Anti-Cheat should ensure the test cases outlined in the Anti-Cheat Integration Checklist have been verified prior to release.
Crossplay
At Epic Games, we want users to be able to play with their friends and other players, regardless of which store they use to purchase your game. As such, all titles coming to the Epic Games Store that offer online multiplayer must support cross-platform multiplayer with all other PC storefronts. Crossplay with other non-PC platforms (e.g., consoles) is optional but encouraged.
Crossplay does not need to be implemented through any particular service or account system. Epic Online Services and Epic Games accounts are offered free of charge as one potential solution. However, publisher-based or other third-party solutions are supported and welcomed.
To ensure your product meets this requirement, we have provided a number of recommended test cases for your crossplay-enabled build. For more information, review Cross-Platform Multiplayer Guidelines.