Platform Implementation for EOS

Guidelines and references for implementing EOS SDK on consoles

To run The Epic Online Services (EOS) SDK, you must follow several prerequisite steps in your project's linking, packaging, and loading processes to ensure that your target platform loads and runs the EOS run-time. This page provides generic information about those processes, while the pages listed under Platform-Specific Documentation provide more specific information about each platform's needs. This page also includes information about how to use the Unreal Build System with EOS SDK.

Linking

When linking your project, you need to add the link-time library for EOS SDK to the link command for your project. For most platforms, the run-time library will need to be loaded manually as well.

Linking with Unreal Build System

If you are using Unreal Engine, the Unreal Build Tool will manage the linking and packing of your library if you follow these steps in the <Project>.Build.cs file:

  1. Add the library link-time name to PublicAdditionalLibraries.

  2. Add the library link-time file to RuntimeDependencies.

As an example, your <Project>.Build.cs file should include code similar to the following:

PublicAdditionalLibraries.Add(LibraryLinkName);
string RuntimeLibrarySourcePath = Path.Combine(SDKBinariesDir, RuntimeLibraryFileName);
string RuntimeLibraryTargetPath = Path.Combine(ProjectBinariesDir, RuntimeLibraryFileName);
RuntimeDependencies.Add(RuntimeLibraryTargetPath, RuntimeLibrarySourcePath, StagedFileType.NonUFS);

Packaging

In most cases, placing the run-time library for EOS SDK in the same directory as the game executable will ensure that the game can find it at run-time. Some platforms have specific directories you need to place their libraries in. Review the platform-specific pages for more details.

Loading

Some platforms require you to load the dynamic module for EOS SDK explicitly at runtime. Refer to the platform-specific pages for details on how to do this with each platform. If no process is noted, then explicit loading is not necessary.

Loading with Unreal

As long as you use the Unreal Build Tool to set up the packaging of your game, the same process can be used on all platforms. Use FPlatformProcess::GetDllHandle to load the module and FPlatformProcess::FreeDllHandle to unload the module.

Memory Functions with Unreal

When using Unreal Engine with EOS SDK, the allocators provided to EOS_InitializeOptions can be mapped to FMemory::Malloc, FMemory::Realloc, and FMemory::Release.

Platform-Specific Documentation

The following links provide guidelines for the above processes on specific platforms: