The Epic Games for WebView2 plugin allows integrating a project with Epic Online Services (EOS). It is currently only supported with the Windows WebView2 export option in Construct 3 r359+.
The plugin provides basic authentication capabilities, access to user details, and achievements.
Configuration
Before you can use the plugin features, you will need to create an account on the Epic Games Developer Portal. You will need to create an organization and product and obtain the necessary IDs (Product ID, Client ID, Client secret, Sandbox ID and Deployment ID - see the Epic developer documentation for more details). These IDs the need to be entered in to the plugin properties.
For logins to work, you will also need to create an Application on the Developer Portal, and ensure the permissions specified there exactly match the permissions specified in the Construct plugin's properties under Authentication scope. Note that requiring fewer permissions than the application specifies may still result in a failed login - the enabled and disabled permissions must exactly match between the plugin properties and the application permissions configuration.
The sample Construct project is just a technical test of the plugin features. However its IDs have been removed so you will need to set up your own on the Developer Portal. Also note the DevAuthTool option will need to be updated with your own host and credential name before it works.
Exporting for Epic Games
To test your game with Epic Games, make sure it is configured correctly as described above, and then export it with the Windows WebView2 option. The Epic Games Launcher does not need to be running for its features to work. Use the Is available condition to check the plugin features are available.
You can optionally specify the Product name and Product version passed to the EOS SDK in the plugin properties. If left empty, these default to the corresponding project properties.
While there is no need to have the Epic Games Launcher running to use the plugin features, it does support games launched by the Epic Games Launcher. The Is Epic launcher condition is true when started by the Epic Games Launcher, and in that case the Log in (exchange code) action can be used passing EpicGames.LauncherExchangeCode for an automatic login to the account the user is signed in to the Epic Games Launcher with.
Authentication
By default users start logged out and have no access to Epic Games services. The user must log in for features to be available. There are four authentication options available:
- Portal: use the Epic Games login system. This will prompt the user to log in to an existing account with a range of available account services.
- Persistent: attempts an automatic login of a previous saved successful login, without prompting the user. For example if in their first session a user successfully logs in with the Portal method and then closes the app, in the next session they should be able to successfully use the Persistent login mode automatically. This allows remembering logins long-term. If persistent login fails, fall back to another login method.
- Exchange code: attempts login using an exchange code. The main reason to do this is when started with the Epic Games Launcher. The launcher provides an exchange code, available with the LauncherExchangeCode expression, which can be passed for an automatic login to the account the user is signed in to the Epic Games Launcher with.
- DevAuthTool: login via the developer authentication tool provided in the EOS SDK, for testing and development purposes only.
The login status can also change after login, in which case On login status changed triggers. The current login status is also available with the LoginStatus expression, which is a string which can be one of "not-logged-in"
, "using-local-profile"
or "logged-in"
(corresponding to EOS_ELoginStatus
in the EOS SDK).
For more details see the Epic developer documentation.
Overlay
Apparently the EOS SDK supports an in-game overlay, but we can't figure out how to get it working. If you need in-game overlay support please contact Epic Games as we think they need to add support on their side. Currently the SDK is configured to disable the overlay in order to force the use of fallbacks.