Skip to content

Platform

Jakub Hubacek edited this page Oct 1, 2025 · 4 revisions

Platform Subsystem

Location: godot_epic_extension/src/Platform

Overview

The Platform subsystem is responsible for EOS SDK initialization, platform creation, tick integration and shutdown. This is the foundational subsystem that all other subsystems depend on for Epic Online Services functionality.


Supported Functions

Function Description
InitializePlatform(options) Initializes EOS SDK and creates an EOS platform handle. Keeps temporary CharString objects alive for pointer lifetime. Performs basic validation of required options
IsOnline() Returns true if platform initialized and online
SetLogLevel(level) Maps integer levels to EOS log levels and calls EOS_Logging_SetLogLevel

Notes

  • Initialization Behavior: InitializePlatform() will call EOS_Initialize and EOS_Platform_Create and will EOS_Shutdown() if platform creation fails — ensure host app handles failures gracefully

EOS SDK Coverage

Core Platform Functions

Mapping of core EOS platform functions to implementation status:

EOS Function Status Notes
EOS_Initialize ✅ Yes Called in PlatformSubsystem::InitializePlatform() to initialize the EOS SDK
EOS_Shutdown ✅ Yes Called in PlatformSubsystem::Shutdown()
EOS_Platform_Create ✅ Yes Used to create the platform instance with provided options
EOS_Platform_Release ✅ Yes Called in Shutdown() to release the platform handle
EOS_Platform_Tick ✅ Yes Called in Tick() to advance the EOS platform
EOS_Platform_GetAuthInterface ✅ Yes Used by subsystems to access auth APIs
EOS_Platform_GetConnectInterface ✅ Yes Used by Authentication subsystem
EOS_Platform_GetAchievementsInterface ✅ Yes Used by Achievements subsystem
EOS_Platform_GetLeaderboardsInterface ✅ Yes Used by Leaderboards subsystem
EOS_Platform_GetFriendsInterface ✅ Yes Used by Friends subsystem
EOS_Platform_GetUserInfoInterface ✅ Yes Used by UserInfo subsystem
EOS_Platform_GetStatsInterface ✅ Yes Used by Achievements subsystem for stats
EOS_Logging_SetLogLevel ✅ Yes Used by SetLogLevel() mapping

Clone this wiki locally