Start Page » Game Development with the Drag[en]gine » Service Listing » EPIC EOS SDK
The SteamEos
Service Module provides access to the EPIC EOS SDK. With this SDK EOS functionality can be used.
EPIC requires the developer to read their terms of service and accept them before the SDK can be downloaded. Downloading the SDK is not required to use this service but accepting the terms of service are a requirement. Once accepted the developer gets access to the EOS parameters required for use during service initialization. To comply with this do the following:
SDK & Release Notes
SDK Type
select anything you want, for example C SDK
. What you choose here doesn't matterDownload
The service has the unique identifier EOSSDK
.
Support for this service is provided in the DragonScript Script Module using the class ServiceEos. This service implements the following interfaces:
The BaseGameApp class automatically creates the ServiceEos service instance if the following values are present in the configuration.ptree.xml
file:
Tag | Value |
---|---|
eos.productName | Game product name |
eos.productVersion | Game version |
eos.productId | Game product identifier |
eos.clientId | Game client identifier |
eos.clientSecret | Game client secret |
The values for all these tags can only be obtained after the developer has accepted the terms of service.
An example configuration.ptree.xml
file looks like his:
<?xml version='1.0' encoding='UTF-8'?> <parameterTree> <boolean path='defaultEnableGI'>true</boolean> <boolean path='defaultEnableAuralization'>true</boolean> <!-- EOS SDK --> <string path='eos.productName'>My Game</string> <string path='eos.productVersion'>1.0</string> <string path='eos.productId'>1234567890abcdef12345678</string> <string path='eos.clientId'>1234567890abcdef12345678</string> <string path='eos.clientSecret'>1234567890abcdef12345678</string> </parameterTree>
If the provided initialization data is incorrect creating the ServiceEos service fails. This does not fail starting the application. Wait until all the services have finished initializing:
func void initGame() // super call starts automatic initialize services super.initGame() // add listener called once all services have finished initialize, no matter if successfull or not getBaseGameServices().setActionInitialized(BlockActionListener.new(block ActionEvent event // services have initialized launchApplication() end)) // you can now do other things in the mean time like showing startup logos or videos end
You can then check first if the EOSSDK service has been created using:
if getBaseGameServices().getEos() != null // ServiceEos is ready to be used end
The SteamEos service can be manually created either by using the new
constructor on the ServiceEos class using ServiceEos.InitParameters setup with the initialization data or by calling initEos()
on BaseGameApp. Using initEos
is preferred if manual creation is required.
The service module provides user management support. Supported is logging in, logging, retrieving user information and retrieving user resources.
The user can log in using different methods. The loginUser()
call accepts a ServiceUserCredentials instance. Depending on the set parameters one of the possible login methods is used.
If the credentials
parameter is null
the game is expected to be launcher by the Epic Launcher. The Epic Launcher appends to the command line the required exchange token. If this method is used the service module retrieves the required credentials from the passed command line arguments.
Optionally you can create an instance of ServiceUserCredentials and manually set the exchangeCode
member. It is up to you to obtain this token from the Epic Launcher.
If the credentials
instance is empty (no value assigned after creating it) auto login is used. If during a previous run of the game a successful login has been done and no logout has been done then the user will be automatically logged in. If nothing of this applies or problems are present during login manual login will be done using Account Portal
. This will show an overlay managed by EOS SDK prompting the user to log in using a web interface. The user can either login (or create) an Epic Games Account or he can link to another platform account he is already using. Once successful the login will be completed. Future auto login calls will then automatically log in the user without showing the account portal again.
The service module provides Authentication Provider
support to other modules. The provider has the unique identifier epic
. This feature allows other service modules to link accounts to the logged in Epic Games user. For this to work you have to call getAuthToken()
to asynchronously retrieve an authentication token. Once received in the listener this token can be used on other service modules supporting linking with Epic Games user accounts.
The service module provides achievement and statistics support. Use setStatsAndAchievements()
to set the value of individual statistics. Once the requirements are fulfilled server side the respective achievements will be unlocked. You can also use the same function to manually unlock achievements. Use getStatsAndAchievements()
to retrieve the current stats and achievements state.