About the EOS SDK
- Get started:
See the EOS Get Started Steps page for information on how to set up and use EOS services and the EOS SDK. - SDK download types:
In addition to different release versions of the EOS SDK, there are different types of SDK download to use, depending on the platform your game clients run on. Find out about these in the EOS get started documentation Get Started Steps: EOS SDK Download Types. - What's new:
See the EOS What's New documentation for a high-level overview of what's changed with every EOS SDK release. - Planned features:
Find out what's in development on the EOS roadmap at trello.com/~/eos-public-roadmap.
Release Notes
2023
1.16.1 - 2023-aug-30
Anti-cheat
- Bug fix: Fixed an issue with the Easy Anti-Cheat (EAC) service setup that resulted in launch error
20006
on Windows operating systems.
Auth
- Bug fix: Fixed the expiration of auth tokens after the application is suspended and then resumed for over 2 hours. This included Epic Account ID auth tokens and the Connect auth refresh notification not firing from
EOS_Connect_AddNotifyAuthExpiration
.
Connect
- Bug fix: Fixed the expiration of auth tokens after the application is suspended and then resumed for over 2 hours. This included Epic Account ID auth tokens and the Connect auth refresh notification not firing from
EOS_Connect_AddNotifyAuthExpiration
.
Lobbies
- Bug fix: Fixed Lobby connection timeouts after the application is suspended and then resumed.
Mobile
- Bug fix: We have added the correct Gradle files to the Android login sample, and Android headers are now in the new
/SDK/Include
directory that matches other platforms.- See the EOS SDK for Android documentation for more information.
Sony PlayStation
- Bug fix: Improved performance of
EOS_P2P_SendPacket
in high latency situations when targeting PS5 7.00. This bug was introduced in EOS SDK version 1.16.
KNOWN ISSUES AND WORKAROUNDS
Lobbies
-
In EOS SDK version 1.16, if you add an attribute to a lobby using
EOS_LobbyModification_AddAttribute
without modifying any lobby owner member attributes, the lobby owner member attributes set previously withEOS_LobbyModification_AddMemberAttribute
are removed. To address this issue, you must modify, add or remove a member attribute for the lobby owner any time a lobby attribute is modified.The attribute value can be anything, as it only matters that one of the member attributes for the lobby owner is changed. You must modify, add or remove the lobby owner attribute as part of the lobby update modification used to change the lobby attribute.
Example code:
1.16 - 2023-aug-16
Anti-cheat
- New: The maximum individual message chunk size sent from the server to clients is increased to 512 bytes from 256 bytes.
- New: We removed a recommendation of what value to use for
AuthenticationTimeout
in theEOS_AntiCheatClient_RegisterPeerOptions
. We no longer recommend a specific timeout value because authentication timeouts are game-specific. - New: Updated the anti-cheat
LogPlayerTakeDamage
API. Now theAttackerPlayer
information fields are optional whenDamageSource
is eitherNonPlayerCharacter
orWorld
. - New: The anti-cheat service now logs if it is not configured for your game. This is only for games running on a platform that supports anti-cheat. We removed anti-cheat service output logs which warned that anti-cheat is not configured for your game on platforms which do not support anti-cheat.
- New: Anti-cheat network message sizes are now logged at
VeryVerbose
logging level instead ofVerbose
. - New: The anti-cheat integrity tool now logs specific errors more explicitly, for example, that it’s trying to generate an empty catalog.
- Bug fix: Fixed an incorrect translation for the Thai language when your game launches through EOS EAC bootstrapper.
- Bug fix: Fixed a bug where the player tracking interface would fail to send most, or all, player information under stable network conditions.
- Bug fix: Fixed a bug where anti-cheat module updates fail to download if their file size is large.
Authentication
- New: Added a
EOS_LF_NO_USER_INTERFACE
input flag forEOS_Auth_Login
API. You can use this flag to attempt automatic player login that silently fails without prompting the player. - New: Added command-line arguments to the Developer Authentication Tool (Dev Auth Tool):
--port=N
(where N is the port number): Use this to automatically select the listening HTTP port you want the Dev Auth Tool to use.--credential-name=S
(where S is your credentials name): Use this to automatically provide your credentials name when you sign in for the first time.
- Bug fix: Fixed an edge case crash during authentication with an HTTP retry response.
- Bug fix: We fixed a potential crash during authentication, which could occur moments before a device authorization expires.
- Bug fix: We fixed an issue so all external accounts are now included regardless of whether or not the account ID is set. Previously, the external accounts for a user (
EOS_UserInfo_ExternalUserInfo
) did not include external accounts that existed with an unset account ID. This was unexpected because the account ID is not guaranteed to be available for all users across all external accounts.
Connect
- New: Added an input parameter,
NSAIdToken
, so that you can provide an NSA (Nintendo Service Account) ID token for a local user (player) withEOS_Connect_Login
. The token is a check to see if the local user has permission to play online. If the local user has a token, the EOS service allows the local user to use the Lobbies Interface and Sessions Interface. If they do not have a token, they can't play online or use either the Lobbies Interface or Sessions Interface.
Console Specific
Sony PlayStation
- New: Optimized PlayStation 4 build flags to reduce a game's memory footprint.
- Bug fix: Fixed an issue where bad memory usage, when internally accessing parental controls on PlayStation 4, caused the SDK to crash.
Nintendo Switch
- New: We updated the Nintendo Switch compilation and link optimizations to compress and reduce binary size. We now use
-flto=full
and have changed-Os
to-Oz
(aggressive size).
Crossplay
-
New: Added
EOS_UserInfo_CopyBestDisplayName
andEOS_UserInfo_CopyBestDisplayNameWithPlatform
. See Crossplay: Best Display Name for more information. -
New: Added an
AllowedPlatformIds
field toEOS_Lobby_CreateLobbyOptions
andEOS_Sessions_CreateSessionModificationOptions
. See the API references below for more information: -
New: Added an
EOS_Bool
fieldbCrossplayOptOut
toEOS_Lobby_CreateLobbyOptions
,EOS_Lobby_JoinLobbyOptions
, andEOS_Lobby_JoinLobbyByIdOptions
.When
bCrossplayOptOut
is set toEOS_TRUE
, it indicates to the SDK that the local player creating or joining the lobby is not eligible to engage in crossplay. The SDK will replicate this information to all other members of the lobby. This replicated value is available inEOS_LobbyDetails_MemberInfo
. -
New: Updated the EOSH installer to version 2.5.9.
Ecom
-
New:
EOS_Ecom_Checkout
returnsEOS_Ecom_PurchaseProcessing
under the following conditions:- The player closes the purchase flow UI after they have confirmed their purchase.
- The purchase checkout website has not yet returned the transaction ID.
EOS_Ecom_Checkout previously returned
EOS_Canceled
. -
New: Added a new API,
EOS_Ecom_QueryOwnershipBySandboxIds
, to request ownership by sandbox id. Developers can now use theEOS_Ecom_QueryOwnershipBySandboxIds
API to query all owned items for a given set of sandbox IDs. -
New: The
EOS_Ecom_QueryOwnership
method can now accept a maximum of 400 catalog Ids in a single API call. The API is also improved to send multiple batched requests to the backend and aggregate the responses. -
New: The
EOS_Ecom_QueryEntitlements
method can now accept a maximum of 256 entitlements in a single API call. The API is also improved to send multiple batched requests to the backend and aggregate the responses. -
Bug fix: Fixed an intermittent issue where
EOS_Ecom_RedeemEntitlements
failed.
EOS Core
-
New: Added additional logging to functions in the API in C when the invalid parameters, that are
null
or empty, are passed in. -
New:
eos_init.h
now includes definitions for the maximum length of the strings which are your game's:ProductName
ProductVersion
The SDK checks the length of the strings at game startup and fails if they exceed the maximum length.
-
New:
eos_types.h
now includes definitions for the maximum length of the strings which are your game's:ClientId
ClientSecret
ProductId
SandboxId
DeploymentId
EncryptionKey
The SDK checks the length of the strings at game startup and fails if they exceed the maximum length.
-
New: You can now specify how the SDK handles RTC rooms when the application switches between background and foreground states by using the
BackgroundMode
field ofEOS_Platform_RTCOptions
. -
New: Steamworks Support:
- Added support for Steamworks version 1.13 and higher.
- Steam sanitization calls only happen if you use Steamworks version 1.45 or higher.
- Reading the launch command line (for accepting Steam game invites) only works on Steamworks version 1.43 or higher.
-
Bug fix: Fixed an issue where using the wrong type specifiers in the log output would cause the SDK to crash.
-
Bug fix: Fixed an exception that can occur if
EOS_Initialization
fails. -
Bug fix: Added additional state checks in the WebSocket destructor before it closes the WebSocket connection in WinHttp. This prevents false warnings about closing sockets when the connection shuts down.
-
Bug fix: Fixed an SDK crash at shutdown if the debugger is attached.
-
Bug fix: Fixed an intermittent issue where peer-to-peer connections fail under the following conditions:
- Connections start immediately after players sign in.
- The relay control setting is
EOS_RC_ForceRelays
.
-
Bug fix: Fixed an issue so
EOS_Platform_CheckForLauncherAndRestart
now correctly detects if the game was launched by the Epic Games Launcher. See Platform Interface: Restarting the App with the Launcher. -
Bug fix: Fixed an issue where tasks waiting on results from the configuration service would stall for more than five minutes in cases where the SDK is unable to contact the backend configuration service. This behavior has been modified to ensure that these tasks now retry for less than a minute after which point they are canceled; any dependent tasks are now notified of this cancellation.
-
Bug fix: Fixed a comment in
eos_types.h
forEOS_Platform_Options::IntegratedPlatformOptionsContainerHandle
to correctly describe the behavior when null. -
Bug fix: Fixed an issue where some internal HTTP requests were misconfigured, and could take much longer to retry than intended. The affected delegates now report connection related issues results much sooner.
EOS SDK in C#
- Bug fix: Fixed an issue that occurred when you pinned the same buffer multiple times in a multi-threaded environment while using the C# wrapper.
- For instance, if you used the
NetProtect
network packet protection feature of the anti-cheat server and decrypting the data in-place, this would cause a crash.
- For instance, if you used the
EOS Overlay
- Bug fix: Fixed intermittent issues that would cause a crash when signing in with a proxy account.
Friends
-
New: We have added the following functions to the Friends Interface to query for blocked players:
EOS_Friends_GetBlockedUsersCount
EOS_Friends_GetBlockedUserAtIndex
EOS_Friends_AddNotifyBlockedUsersUpdate
EOS_Friends_RemoveNotifyBlockedUsersUpdate
Note: Calling
EOS_Friends_QueryFriends
will now additionally retrieve the list of EOS blocked players.
Lobbies
- New: Improved comments around using
bPresenceEnabled
for the create and join APIs. See theEOS_Lobby_JoinLobbyOptions
documentation for more information. - New: Added value
bPresenceEnabled
toEOS_LobbyDetails_Info
.bPresenceEnabled
is now set inEOS_LobbyDetails_Info
byEOS_LobbyDetails_CopyInfo
based on whether the Lobby is created withbPresenceEnabled
. - New: Added "Your Party" features to lobbies. See the Social Overlay: Your Party documentation for more information.
- New: Added "Request to Join" feature to lobbies. See the Social Overlay: Request to Join documentation for more information.
- New: Added
EOS_Sessions_AddNotifySendSessionNativeInviteRequested
andEOS_Sessions_RemoveNotifySendSessionNativeInviteRequested
. The associated callback to these APIs will be used with the Sessions service when the Social Overlay determines that a native invite needs to be sent by the game. - New: Added
EOS_CustomInvites_AddNotifySendCustomNativeInviteRequested
andEOS_CustomInvites_RemoveNotifySendCustomNativeInviteRequested
. The associated callback to these APIs will be used with the Custom Invite system when the Social Overlay determines that a native invite needs to be sent by the game. - Bug fix: Fixed the incorrect audio player mute state after voice reconnects.
- Bug fix: Fixed an intermittent issue where a player's status change in the voice chat room did not call a callback set up with
EOS_Lobby_AddNotifyRTCRoomConnectionChanged
. - Bug fix: Fixed a lobby issue to stop attempting to reconnect while the network is disconnected.
- Bug fix: Fixed session attributes and lobby attributes to allow for empty strings.
- Bug fix: Fixed a few crashes related to log output using the wrong type of specifiers.
Mobile
iOS
- New: Updated the Login Sample UI / UX to reflect recent Android UI / UX updates. The update also includes minor refactoring for clarity and better support of the new UX.
- Bug fix: Fixed an issue for calls to EOS on multiple threads in the Login Sample on iOS with a dedicated background thread.
Peer-to-peer
- New:
EOS_P2P_SendPacket
allows players to send data to themselves locally without sending the data over a network. Packets sent this way are immediately added to the player's local received packet queue and you can retrieve these using theEOS_P2P_ReceivePacket
function. - Bug fix: Improved packet sending throughput under poor network conditions.
- Bug fix: Fixed an issue where peer-to-peer fails to fetch new relay server credentials after returning from application or game suspension.
- Bug fix: Fixed an intermittent race condition issue where a connection fails if two peers attempt to connect to each other at the same time.
- Bug fix: Fixed peer-to-peer packets being receivable before the SDK fires the
ConnectionEstablished
peer-to-peer event. Packets are now held until theConnectionEstablished
event happens for the connection. - Bug fix: Fixed an issue where a player disconnecting for a short period would cause the connection to timeout, even if the connection had reconnected.
Player Data Storage
- New: Improved the error and event logging in Player Data Storage.
- New: After a write operation, a player data storage file's unencrypted data size is now set in the file's metadata.
- Bug fix: If
LastModifiedTime
is not set in the metadata after a write operation, the value ofLastModifiedTime
is set toEOS_PLAYERDATASTORAGE_TIME_UNDEFINED
. - Bug fix: Fixed an issue where you could not download or upload game data to the backend service using Player Data Storage due to network instability or unavailability. The EOS SDK retries to download or upload the files to keep Player Data Storage in sync between the SDK and backend service.
- Bug fix: Fixed an intermittent issue that would cause a crash when you use Player Data Storage's
EOS_PlayerDataStorage_WriteFile
.
Samples
- New: Added support for ingesting a non-local player's stats via the
ingest
command in the achievements sample. - New: Added support for setting
EOS_AS_Country
scope via the-scopescountry
command-line argument. - New: Added client and server samples for EasyAntiCheat.
- Bug fix: Fixed an issue where switching focus and clicking on the text field line in samples empties its contents.
- Bug fix: Fixed a potential issue where a text field widget crashed if the cursor position moved out of range.
- Bug fix: Fixed a crash in the mods sample due to breaking codepoints during string handling.
Session Based Matchmaking
- New: You can find out which player owns a session with the
EOS_SessionsDetails_Info
struct. This value is in one of two forms:- The
EOS_ProductUserId
of the player, if the session is a player hosted listen server. - The
ClientID
of the server, if a dedicated game server created the session.
- The
- Bug fix: Fixed an issue where calls to
EOS_Sessions_UpdateSession
failed. This happened when theLocalUserId
for the session modifications was unavailable duringUPDATE
operations. - Bug fix: Fixed comments related to the incorrect
API_LATEST
macros specified in the various options ofeos_sessions_types.h
. - Bug fix: Fixed an issue with
EOS_Sessions_RegisterPlayers
andEOS_Sessions_UnregisterPlayers
not returning the updated player list in callback when called on a non session owner.
Social Overlay
- New: Integrated Platform on Console expands on the existing Integrated Platform provided for Steam, but now it applies to all the major consoles.
- See the original documentation for Platform Interface: Native Platform Integration.
- See the expanded documentation on integrating the Social Overlay for Crossplay.
Title Storage
- New: Improved the error and event logging in Title Storage.
Tools
- EOS bootstrapper tool
- The EOS bootstrapper tool is now a stand-alone tool. It no longer requires the EOS bootstrapper application (executable file) in the same directory.
Voice
- New: Introduced a way to configure rooms behavior when your game enters a background state.
- New: Added microphone support for Linux.
- Bug fix: When a Lobby's WebSocket connection is lost, the RTC connection stays up while we attempt to re-establish the WebSocket connection.
- Bug fix: Fixed a bug where a block request would not work despite the
EOS_RTC_BlockParticipant
call succeeding ifEOS_RTC_BlockParticipant
was called for a participant immediately after that participant joined the lobby. - Bug fix: Fixed a crash that could occur when a second participant joined a lobby.
- Bug fix: Fixed an intermittent crash that could happen when the system cannot allocate resources to manage audio devices.
- Bug fix: Fixed incorrect local
AudioStatus
when a player enters a room where everyone else is blocked. - Bug Fix: Fixed a resource leak when a player leaves the room through internal methods.
Deprecations
Authentication
- Deprecated: We deprecated Device Code support,
EOS_LCT_DeviceCode
, for Epic Games accounts sign in.- We recommend you stop using
EOS_LCT_DeviceCode
in theEOS_Auth_Login
function or use another authentication method.
- We recommend you stop using
Crossplay
- Deprecated: We deprecated and replaced the struct
EOS_Platform_GetDesktopCrossplayStatusInfo
withEOS_Platform_DesktopCrossplayStatusInfo
for naming consistency.
EOS Core
- Deprecated: We deprecated and replaced some macros to fit with the standard EOS SDK naming convention of
EOS_<system_type>_<function_name>_API_LATEST
. We have removed the stringOPTIONS
from macros in theeos_playerdatastorage_types.h
,eos_titlestorage_types.h
andeos_private_ui_types.h
header files. For example,EOS_PLAYERDATASTORAGE_QUERYFILEOPTIONS_API_LATEST
becomesEOS_PLAYERDATASTORAGE_QUERYFILE_API_LATEST
.- Note: For backward compatibility, the deprecated macros are still present, but we will be removing them in a future version. We recommend replacing any deprecated macros that use the old naming convention with macros that use the new naming convention.
Friends
- Deprecated: We deprecated unused types related to the previously removed
EOS_Friends_DeleteFriend
API.
Player Data Storage
- Deprecated: We deprecated the unused define
EOS_PLAYERDATASTORAGE_FILE_MAX_SIZE_BYTES
.
Voice
-
Deprecated: We deprecated and replaced the following methods and structs:
- Deprecated method
EOS_RTCAudio_GetAudioInputDevicesCount
and replaced withEOS_RTCAudio_QueryInputDevicesInformation
andEOS_RTCAudio_GetInputDevicesCount
. - Deprecated method
EOS_RTCAudio_GetAudioInputDeviceByIndex
and replaced withEOS_RTCAudio_QueryInputDevicesInformation
,EOS_RTCAudio_CopyInputDeviceInformationByIndex
andEOS_RTCAudio_InputDeviceInformation_Release
. - Deprecated method
EOS_RTCAudio_SetAudioInputSettings
and replaced withEOS_RTCAudio_SetInputDeviceSettings
. - Deprecated method
EOS_RTCAudio_GetAudioOutputDevicesCount
and replaced withEOS_RTCAudio_QueryOutputDevicesInformation
andEOS_RTCAudio_GetOutputDevicesCount
. - Deprecated method
EOS_RTC_GetAudioOutputDeviceByIndex
and replaced withEOS_RTCAudio_QueryOutputDevicesInformation
,EOS_RTCAudio_CopyOutputDeviceInformationByIndex
andEOS_RTCAudio_OutputDeviceInformation_Release
. - Deprecated method
EOS_RTCAudio_SetAudioOutputSettings
and replaced withEOS_RTCAudio_SetOutputDeviceSettings
. - Deprecated method
EOS_RTCAudio_RegisterPlatformAudioUser
and replaced withEOS_RTCAudio_RegisterPlatformUser
. - Deprecated method
EOS_RTCAudio_UnregisterPlatformAudioUser
and replaced withEOS_RTCAudio_UnregisterPlatformUser
. - Deprecated struct
EOS_RTCAudio_AudioInputDeviceInfo
and replaced withEOS_RTCAudio_InputDeviceInformation
. - Deprecated struct
EOS_RTCAudio_AudioOutputDeviceInfo
and replaced withEOS_RTCAudio_OutputDeviceInformation
.
Note: We recommend you read the API references to these and replace them with the newer methods and structs as soon as possible.
- Deprecated method
UPGRADE NOTES
Anti-cheat
- Bug fix: The anti-cheat bootstrapper (
start_protected_game
) may reject anti-cheat updates because of a file size limit.- Note: We recommend updating this executable as soon as possible to avoid errors from future module updates. The executable can be updated without updating the rest of the SDK or recompiling your game.
Authentication
-
New: Updated documentation for Steam Session Tickets authentication to use the new
ISteamUser::GetAuthTicketForWebApi
Steamworks SDK API, in favor of the now deprecatedISteamUser::GetAuthSessionTicket
. -
Bug fix: Linked Account messages received from the backend are not guaranteed to have an Account ID. This is an expected state, so the
AccountId
field onEOS_UserInfo_ExternalUserInfo
is Optional.Note:
- You should revisit any handling that assumes a specific number of external accounts. For instance,
EOS_UserInfo_GetExternalUserInfoCount
may return a higher count than previously depending on the external account types in question. - The
AccountId
field ofEOS_UserInfo_ExternalUserInfo
was nullable before this bug fix. The API has not changed, but the behavior has changed, so if you have code that interacts with theAccountId
field ofEOS_UserInfo_ExternalUserInfo
, it must be verified to check for null values.
- You should revisit any handling that assumes a specific number of external accounts. For instance,
Crossplay
- New: See Crossplay: EOS SDK Best Display Name document for additional information.
- New: The
AllowedPlatformIds
andAllowedPlatformIdsCount
fields onEOS_Lobby_CreateLobbyOptions
andEOS_Sessions_CreateSessionModificationOptions
must be initialized; if the lobby is not intended to have restrictions the field should be set tonullptr
and0
respectively. In the case of applications that do not have default initialization, for instance C applications, these fields must be explicitly initialized. - New: Platform IDs are located in
eos_common.h
as well variants ofeos_<platform>.h
, where<platform>
is your specific platform. A lobby created with platform restrictions will only show up in searches that originate from a platform allowed by the lobby or session. - New: You now need to determine the
bCrossplayOptOut
value inEOS_Lobby_CreateLobbyOptions
,EOS_Lobby_JoinLobbyOptions
, andEOS_Lobby_JoinLobbyByIdOptions
.- By default,
bCrossplayOptOut
defaults toEOS_FALSE
in order to maintain the existing assumption that lobby creators and joiners permit crossplay by default.
- By default,
EOS Core
- New: The EOS SDK supports SteamWorks versions 1.13 and higher. The EOS SDK used to require SteamWorks v1.48 and higher.
- Bug fix: Fixed an issue in
IntegratedSteamSessions
, where it was trying to process invites before a login. It now caches the invite. - Bug fix: Fixed a WebRTC vulnerability as disclosed by Google for versions M102 and earlier. We are currently on M109. Note: We recommend everyone using prior EOS SDK versions to update to version 1.16 as soon as possible to include this fix. Impacts can be found here.
- Bug fix: Fixed an issue where building the EOS SDK on Microsoft Xbox GDK printed false warnings about closing sockets during their shutdown.
Lobbies
- New: To use the introduced leave party button, use
EOS_Lobby_AddNotifyLeaveLobbyRequested
andEOS_Lobby_RemoveNotifyLeaveLobbyRequested
. - Bug fix:
EOS_LobbyDetails_GetMemberCount
is now accurate in all contexts including lobby search results.- Note: We recommend that you review the usage of
EOS_LobbyDetails_GetMemberCount
if you use it with a lobby search result.
- Note: We recommend that you review the usage of
- Bug fix:
EOS_LobbyDetails_GetMemberByIndex
now matches previously documented behavior, as it does not return lobby members from a lobby search result.- Note: The information
EOS_LobbyDetails_GetMemberByIndex
returns is only available if you are actively in the lobby. It is not available for search results.
- Note: The information
Session Based Matchmaking
- Bug fix: Fixed
EOS_Sessions_UpdateSession
to returnEOS_LimitExceeded
if a new session cannot be created because doing so would exceed the maximum allowed concurrent session count. Note: We recommend you update the usage ofEOS_Sessions_UpdateSession
to handle theEOS_LimitExceeded
return code. - Bug fix: Fixed
EOS_Sessions_UpdateSession
andEOS_Sessions_JoinSession
to returnEOS_InvalidUser
if the local user associated with the session does not exist or is not authenticated. Note: We recommend you update the usage ofEOS_Sessions_UpdateSession
andEOS_Sessions_JoinSession
to handleEOS_InvalidUser
return codes. - Bug fix: Fixed
EOS_Sessions_RegisterPlayers
to returnEOS_Sessions_TooManyPlayers
when registering the requested number of players would exceed the maximum capacity of the session. This was previouslyEOS_LimitExceeded
. Note: We recommend you update the usage ofEOS_Sessions_RegisterPlayers
to look forEOS_Sessions_TooManyPlayers
instead ofEOS_LimitExceeded
for cases where the requested number of players would exceed the maximum capacity of the session.
PLATFORM-SPECIFIC
Nintendo Switch
- New: We updated the Nintendo Switch compilation and link optimizations to compress and reduce binary size. We now use
-flto=full
and have changed-Os
to-Oz
(aggressive size).
KNOWN ISSUES AND WORKAROUNDS
Android Login Sample 1.16
- In EOS SDK version 1.16 the Android login sample has incorrect gradle files. To fix this, please follow these steps:
- Delete the following files:
Samples\Android\Login\settings.gradle
Samples\Android\Login\app\build.gradle
Samples\Android\Login\app\src\main\cpp\CMakeLists.txt
- Rename the following:
-
build.gradle.out
tobuild.gradle
-
CMakeLists.txt.out
toCMakeLists.txt
-
settings.gradle.out
tosettings.gradle
Note: Keep these files in the same directories.
- Open
Samples\Android\Login\app\src\main\cpp\CMakeLists.txt
and replace the lineset_property(TARGET EOSSDK PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${BASE_PROJECT_DIR}/SDK/Bin/Android/include)
toset_property(TARGET EOSSDK PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${BASE_PROJECT_DIR}/SDK/Include)
Anti-cheat Service Installer
- The Service Installer (
EasyAntiCheat_EOS_Setup.exe
) provided in EOS SDK version 1.16 has a bug that causes games to fail the launch with the error "StartService failed: 1053". This issue will be fixed in the next release.
Lobbies
-
In EOS SDK version 1.16, if you add an attribute to a lobby using
EOS_LobbyModification_AddAttribute
without modifying any lobby owner member attributes, the lobby owner member attributes set previously withEOS_LobbyModification_AddMemberAttribute
are removed. To address this issue, you must modify, add or remove a member attribute for the lobby owner any time a lobby attribute is modified.The attribute value can be anything, as it only matters that one of the member attributes for the lobby owner is changed. You must modify, add or remove the lobby owner attribute as part of the lobby update modification used to change the lobby attribute.
Example code:
1.15.5 - 2023-feb-16
Anti-cheat
- New: Improved the anti-cheat metric collection to keep track of the number of players kicked from your game when you have configured anti-cheat with peer-to-peer mode.
- New: Improved the anti-cheat bootstrapper to log anti-cheat module failures correctly.
- New: The anti-cheat bootstrapper now supports macOS versions 10.14, and higher. Before this update, it supported macOS versions 11.0, and higher.
- New: Improved the anti-cheat bootstrapper to display a dialog for you to test unpublished anti-cheat modules. The new dialog shows that a test module was downloaded which eliminates the need for you to look at the log files.
- New: Players with a local temporary ban can now see the remaining time of their ban in the kick message that is sent to the game server through the EOS SDK. Previously the kick message displayed the local temporary ban without the remaining time of their ban.
- New: The anti-cheat bootstrapper has been updated to use 64-bit architecture instead of 32-bit architecture.
- New: Following the anti-cheat bootstrapper architecture change, the anti-cheat service now supports Chromebooks.
- Bug fix: Fixed an issue where the player tracking functionality would stop sending client data.
- Deprecated: We deprecated the log file,
loader.log
, and introduced a new log file,anticheatlauncher.log
, as the single log file for the anti-cheat bootstrapper.
Sessions
- Deprecated: We deprecated the error value,
EOS_LimitExceeded
forEOS_Sessions_RegisterPlayers
. NowEOS_Sessions_RegisterPlayers
returns the new error valueEOS_Sessions_TooManyPlayers
. For games using EOS SDK version 1.15.5 and higher, make sure you set up your games to check for the new error value.
Voice
- Bug fix: Fixed an intermittent issue where a player's status change in the voice chat room did not call a callback that is set up with
EOS_Lobby_AddNotifyRTCRoomConnectionChanged
.
UPGRADE NOTES
Anti-cheat
- New: For games using EOS SDK version 1.15.5 and higher, you must update your anti-cheat modules to the latest version to avoid issues for players.
Sessions
- New: When you call
EOS_Sessions_RegisterPlayers
with the parameterEOS_SESSIONS_REGISTERPLAYERS_API_LATEST
, the return error value is nowEOS_Sessions_TooManyPlayers
. If you are not using the parameterEOS_SESSIONS_REGISTERPLAYERS_API_LATEST
,EOS_Sessions_RegisterPlayers
continues to returnEOS_LimitExceeded
.
PLATFORM-SPECIFIC
Microsoft Xbox
- New: Added version support for Microsoft's Xbox GDK version October 2022 QFE1 (221001) as well as Microsoft's Xbox GDK version June 2022 QFE4. (220604).
Nintendo Switch
- New: Added version support for Nintendo Switch SDK version 15.3.0 and retained support for Nintendo Switch SDK version 14.3.0.
2022
1.15.4 - 2022-nov-16
Anti-cheat
- New: Improved the
AntiCheatServer
log output to include information about calls toEOS_AntiCheatServer_SetClientNetworkState
. - New: Improved the anti-cheat service's server performance by reducing the number of HTTP requests made by the game server to the anti-cheat service. This allows servers to support larger player populations.
- New: The
AntiCheatServer
now sends more data to the anti-cheat service when your game callsEOS_AntiCheatServer_LogPlayerDespawn
. - Bug fix: Fixed a potential issue where, under high server load, the anti-cheat service might kick players from a game session inappropriately.
Authentication
- Bug fix:
EOS_Auth_VerifyIdToken
does not returnEOS_Auth_InvalidToken
for valid ID tokens when you useEOS_Auth_VerifyIdToken
before the SDK receives configuration from the EOS Service .EOS_Auth_VerifyIdToken
now correctly waits for configuration and returnsEOS_Success
.
EOS SDK in C#
- New: The EOS SDK in C# now supports pinning the same buffer multiple times. In addition to improving performance, this allows in-place encryption and decryption of network messages by the anti-cheat service.
Connect
- Bug fix:
EOS_Connect_VerifyIdToken
does not returnEOS_Connect_InvalidToken
for valid ID tokens when you useEOS_Connect_VerifyIdToken
before the SDK receives configuration from the EOS Service.EOS_Connect_VerifyIdToken
now correctly waits for configuration and returnsEOS_Success
.
Ecom
- New: Added a new API,
EOS_Ecom_QueryEntitlementToken
, inEcomInterface
to query the entitlements token.
Social Overlay
- Bug fix: Players can now see and click on a PROFILE button for all players, regardless of how they are connected to a game session. For example, a player connected to a game session through the Epic Game Store can see and click on the PROFILE button of a player connected through Steam. Previously some players connected through different game platforms could not see each other's PROFILE button.
- Bug fix: Fixed an issue where
EOS_UI_ShowBlockPlayer
andEOS_UI_ShowReportPlayer
failed. This issue happened when you disabled the Social Overlay with platform flags, which caused the SDK to incorrectly detect the network as disconnected.
Lobbies
- Bug fix: Players are now limited to 16 concurrent lobbies. Attempting to create more than 16 concurrent lobbies results in an
EOS_LimitExceeded
error response.
Peer-to-peer
- New: Peer-to-peer now uses the
dcSCTP SCTP
library implementation instead ofusrsctp
. This change addresses security issues withusrsctp
, and improves responsiveness during poor network conditions.- Note: This change is backward compatible, but we recommend you upgrade to the latest SDK version as soon as possible for improved security and performance.
- Bug fix: Fixed an issue where an established connection might timeout immediately after any interruptions.
Sessions
- Bug fix: Players are now limited to 16 concurrent sessions. Attempting to create more than 16 concurrent sessions results in an
EOS_LimitExceeded
error response.
Stats
- Bug fix: We have removed the restriction that
LocalUserId
needs to be the same asTargetUserId
forEOS_Stats_IngestStat
. This means when you enable the Client Policy settingingestForAnyUser
, a game client can now update player data for all players, for example those connecting through a peer-to-peer in game session: remote players and local players.
UPGRADE NOTES
Lobbies
- Bug fix: Players are now limited to 16 concurrent lobbies. Attempting to create more than 16 concurrent lobbies results in an
EOS_LimitExceeded
error response.
Sessions
- Bug fix: Players are now limited to 16 concurrent sessions. Attempting to create more than 16 concurrent sessions results in an
EOS_LimitExceeded
error response.
DEPRECATIONS
Anti-cheat
- Deprecated: We deprecated the string
AccountId
parameter inEOS_AntiCheatServer_RegisterClientOptions
and introduced a newEOS_ProductUserId UserId
parameter to replace it. The newEOS_AntiCheatServer_RegisterClientOptions
parameter has typing.- Note: If your game servers do not yet securely receive the
EOS_ProductUserId
from game clients, we recommend that you use the EOS Game Services' Connect InterfaceEOS Connect ID Tokens
to get theEOS_ProductUserId
.
- Note: If your game servers do not yet securely receive the
EOS Core
- Deprecated: We deprecated and replaced some macros to fit with the standard EOS SDK naming convention of
EOS_<system_type>_<function_name>_API_LATEST
. We have removed the stringOPTIONS
from the affected macros:EOS_PLAYERDATASTORAGE_*_API_LATEST
andEOS_TITLESTORAGE_*_API_LATEST
. For example,EOS_PLAYERDATASTORAGE_QUERYFILEOPTIONS_API_LATEST
becomesEOS_PLAYERDATASTORAGE_QUERYFILE_API_LATEST
.- Note: For backward compatibility, the deprecated macros are still present but we will be removing them in a future version. We recommend replacing any deprecated macros that use the old naming convention with macros that use the new naming convention.
PLATFORM-SPECIFIC
Sony PlayStation
- New: Added version support for Sony's PS4 Platform SDK version 10.008.001 and retained support for Sony’s PS4 Platform SDK version 9.508.001..
- New: Added version support for Sony's PS5 Platform SDK version 6.00.00.38 and retained support for Sony’s PS5 Platform SDK version 5.00.00.33.
- Bug fix: Fixed a bug where games running on PS5 crashed when players with voice chat enabled joined or left lobbies.
Microsoft Xbox
- New: Added version support for Microsoft GDK June 2022 QFE2 (220602) and retained support for March 2022 QFE1 (220301).
1.15.3 - 2023-mar-16
From 2023-mar-16, EOS SDK release 1.15.3 includes a hotfix to the SDKs for Xbox, PlayStation 4, and PlayStation 5.
1.15.3 - 2022-oct-06
From 2022-oct-06, EOS SDK release 1.15.3 includes a hotfix to the SDKs for Xbox, PlayStation 4, and PlayStation 5.
1.15.3 - 2022-sep-19
RELEASE NOTES and UPGRADE NOTES
Mobile
Android
-
New: There are now two types of Android SDK. We added a new type of Android SDK, which is static and links with
libc++_static.a
. The existing Android SDK is dynamic and links withlibc++_shared.so
.SDKs are available for both types in the SDK download. There is one header file for both.
- The static binary is located in
~/SDK/Bin/Android/static-stdc++
. - The dynamic binary is located in
~/SDK/Bin/Android/dynamic-stdc++
.
Use the static type if:
- Your game engine (such as UE5.1), or any libraries in it, use custom new or delete operators. These are not supported well by
libc++_shared.so
. - Your game, or any library in it, uses libc++_static.a. Mixing
libc++_static.a
andlibc++_shared.so
is not supported on Android. Make sure that all your code and libraries, and any you use from a third party, are linked withlibc++_static.a
.
- The static binary is located in
Note
- If you have already downloaded and are using Epic Online Services SDK version 1.15.2 and your game uses P2P, we strongly recommend that you update to SDK version 1.15.2.1 as soon as possible.
- We have copied the 1.15.2 release notes here for reference.
1.15.2.1 - 2022-aug-30
RELEASE NOTES
P2P
- Bug fix: Resolved a new issue in 1.15.2 where a P2P connection between peers timed out shortly after connecting under specific circumstances.
1.15.2 - 2022-aug-26
RELEASE NOTES
New features
Apple silicon support on Mac
- New: The SDK now supports Apple silicon on Mac as a universal dylib.
- Note: Anti-cheat currently does not support Apple silicon.
Updates: new, bug fixes, improvements, deprecations
Anti-cheat
- New: In the configuration file
anticheat_integritytool.cfg
, you can now configure settings for your game client, such as the maximum number of active instances of your game allowed on a player’s machine. - Bug fix: We have resolved a crash in
EOS_AntiCheatClient_RegisterPeer
that occurred if you used SDK 1.15 without rebuilding your project with new headers. - Bug fix: The anti-cheat server no longer retries HTTP requests that failed due to EOS service downtime. In addition, the anti-cheat server no longer retries when the player has left the game session.
- Bug fix: We fixed a bug in the anti-cheat integrity tool on Unix and macOS that was introduced with SDK 1.15: the tool outputted to the wrong location. The output is now correctly located in the
EasyAntiCheat/Certificates
folder, which is in line with the behavior of previous SDK versions. - Bug fix: Fixed an issue so the anti-cheat bootstrapper no longer tries to load a cached module if the anti-cheat service is disabled.
- Bug fix: Fixed a crash on SDK initialization for some macOS Monterey systems.
- Bug fix: Fixed an issue where the anti-cheat bootstrapper lagged on players’ machines running AMD Ryzen CPUs.
- Bug fix: Fixed an issue where the anti-cheat bootstrapper failed to initialize if the player’s GPU does not support textures larger than 2048x2048.
- Bug fix: Fixed an issue where the anti-cheat bootstrapper’s user interface was hard to see if the splash screen is primarily white, or has white elements.
- Bug fix: Fixed a compatibility issue between the Anti-Cheat bootstrapper and the latest version of Arch Linux. This issue will also affect the Steam Deck when attempting to run games compiled for Windows using Proton.
- To apply the fix, replace the old version of
start_protected_game.exe
with the new one packaged in this release and proceed to release an up-to-date Linux anti-cheat module for your game on the dev portal. No other changes are needed.
- To apply the fix, replace the old version of
- Improvement: The anti-cheat bootstrapper’s binary (executable file) is now inside a bundle. This executable bundle means:
- We have added a default icon to the macOS executable bundle, so it now has the same icon on macOS as it does on Windows.
- Improvement: The anti-cheat bootstrapper no longer caches its resources onto a player’s machine’s hard disk.
- Improvement: On Windows, the anti-cheat bootstrapper now displays your game executable’s icon in the taskbar. If you add a custom icon in the
~/<game root>/ EasyAntiCheat
directory, it overwrites the default icon. - Improvement: The anti-cheat integrity tool now has more usage samples. You can see them by running
anticheat_integritytool.exe --help
.
Authentication
- New: If you disable the EOS overlay in your game or it is not installed, Auth Interface uses a system browser so players can sign in.
- Bug Fix: Fixed an issue where, on a flakey network, the logout callback fired multiple times and returned success multiple times.
Connect
- Bug fix: Fixed
EOS_Connect_Login
failing to accommodate UTF-8 character lengths up to the 32 char limit.
EOS core
- New: iOS and Android samples now use examples of the SDK 1.15 suspend/resume and network connect/disconnect APIs.
- New: The EOS SDK now requires Steamworks API (
EOS_IntegratedPlatform_Steam_Options
). You must use the Steamworks API for Steamworks SDK version 1.48 or later. If you use Steamworks earlier than 1.48, Steam integration does not work. - Bug fix:
EOS_Platform_Create
now correctly detects pre-SDK 1.15 header files and treats the defaultEOS_ENetworkStatus
toEOS_NS_Online
on all console platforms.- Now: On all console platforms, the default network status is offline. This provides better management when you use
EOS_Platform_SetNetworkStatus
. - Previously: On console platforms, you should only call
EOS_Platform_Create
when the game was online. You needed to callEOS_Platform_Release
first if the game was offline. SDK 1.15 did not maintain this if your game used pre SDK 1.15 header files. This fix resolves that.
- Now: On all console platforms, the default network status is offline. This provides better management when you use
P2P
- New: Fixed a performance issue in
EOS_P2P_SendPacket
that was caused by thread-synchronization blocking in an internal library. - New:
EOS_P2P_ReceivePacket
no longer requires calls toEOS_Platform_Tick
to receive new packets. - New: Added a new field to
EOS_P2P_SendPacket
. The new field, calledDisableAutoAcceptConnection
, allows automatic acceptance of connections in packet-sending logic.- If you use this option, your game must always use
EOS_P2P_AcceptConnection
to open connections. - If you use
EOS_P2P_SendPacket
, it now returnsEOS_EResult::EOS_NoConnection
when it fails under the following two circumstances:- The remote peer has not accepted the connection.
- The connection has closed since the last time the remote peer accepted it.
- If you use this option, your game must always use
- New: Added a function, called
EOS_P2P_AddNotifyPeerConnectionInterrupted
, which listens for non-fatal disconnects in the connection. If this function returns a disconnect, one of the following callbacks fire to let your game know the connection status:EOS_P2P_OnPeerConnectionEstablishedCallback
- the connection is re-established.EOS_P2P_OnRemoteConnectionClosedCallback
- the connection has failed to reconnect and is closed.
Ecom
- New: Added
ReleaseDate
andEffectiveDate
toEOS_Ecom_CatalogOffer
. - New* Introduced two new APIs to the Ecom Interface:
EOS_Ecom_GetLastRedeemedEntitlementsCount
to fetch the number of entitlements that were redeemed during the lastEOS_Ecom_RedeemEntitlements
call.EOS_Ecom_CopyLastRedeemedEntitlementByIndex
to fetch a redeemed entitlement ID from an index.
- Bug fix:
EOS_Ecom_RedeemEntitlements
no longer returns Success when passed incorrect entitlement ID(s). - Deprecated: We deprecated the
PurchasedCount
field fromEOS_ECom_CatalogOffer
.- Note: Do not use the
PurchasedCount
field. - Now: The
PurchasedCount
field always has a value of0
. - Previously: In pre-SDK 1.15.2, the EOS service sends
PurchasedCount
with a value of0
unless you have configuredPurchaseLimit
for the offer. We will not support this behavior indefinitely, so do not depend on this value.
- Note: Do not use the
Samples
- New: In the sample projects, Steam login now uses Steam Auth Session Tickets instead of Steam Encryption Application Tickets for improved security.
Session-based matchmaking
- Bug fix: Fixed
EOS_Sessions_JoinSession
so it no longer invokesCompletionDelegate
multiple times, and no longer returnsEOS_NotFound
when the operation requiresHTTP
retries.
Platform-specific
macOS
- Bug fix: Fixed an issue where the Dev Auth Tool and anti-cheat bootstrapper did not open on macOS.
Console general
- New: The EOS SDKs for consoles are now pinned to two release versions of a console’s SDK. The two release versions of a console’s SDK (Microsoft’s Xbox SDKs, Sony’s PlayStation SDKs, and Nintendo’s Switch SDKs, for example) are:
- The latest release version.
- The previous release version.
- Note: This applies to the EOS SDK for all consoles and to all future releases of the EOS SDKs for consoles.
- Bug fix:
EOS_Platform_Create
now correctly detects pre-SDK 1.15 header files and treats the defaultEOS_ENetworkStatus
toEOS_NS_Online
on all platforms. This resolves a backwards compatibility issue on consoles.
Sony PlayStation
- New: Added version support for PS4 SDK 9.008.001 and retained support for PS5 SDK 4.000.00.31.
Nintendo Switch
- New: Added version support for Nintendo Switch SDK 14.3.0 and retained support for Nintendo Switch SDK 13.3.2.
Microsoft Xbox
- New: Added version support for Xbox GDK 220301 and retained support for Xbox GDK 211001.
1.15.1 - 2022-jul-01
RELEASE NOTES
Note - If you ship your game on Steam:
- If you have already downloaded and are using Epic Online Services SDK version 1.15 for C or C#, you need to download the 1.15.1 version of the SDK and use it instead.
- 1.15.1 has updated authentication for Steam in the SDK for C and SDK for C#. The SDKs for consoles are unaffected.
SDK for C and SDK for C#
Authentication
- Deprecated:
EOS_ECT_STEAM_APP_TICKET
is deprecated for use withEOS_Auth_Login.
UseEOS_ECT_STEAM_SESSION_TICKET
instead.- Note: The SDKs for consoles are unaffected.
1.15 - 2022-jun-16
RELEASE NOTES
New Features
Crossplay
Seamless crossplay on PC: use crossplay to unify your players and your matchmaking pools across Steam and the Epic Games Store. See What's new in the documentation for more details.
Existing Features, New, Bug Fixes, Deprecations
Anti-cheat
- New: Anti-cheat peer-to-peer mode now supports cross-platform play between PC and console users.
- New: Replaced the client-side
EOS_AntiCheatClient_PollStatus
with a callback function which you can access throughEOS_AntiCheatClient_AddNotifyClientIntegrityViolated
. - Bug Fix: Fixed an issue with
AntiCheatServer
that players could use to cheat by avoiding detection. - Bug Fix: Fixed a crash on SDK initialization for some macOS Monterey systems.
- Improvements: Better error logging for anti-cheat gameplay data features.
- Improvements: Better error logging for anti-cheat peer-to-peer mode.
- Deprecation:
EOS_AntiCheatClient_RegisterPeerOptions AccountID
is now deprecated.PeerProductUserId
replaces it. - Improvements: The anti-cheat bootstrapper’s binary (executable file) is now inside a bundle. This executable bundle means:
- We have added a default icon to the macOS executable bundle, so it now has the same icon on macOS as it does on Windows.
- You can add more modifications to your game running on macOS.
- Known Issue: Changes to the anti-cheat tooling intended to go live with EOS SDK 1.15 were not included in the SDK and will instead be distributed with EOS SDK 1.15.1.
- Known Issue:If you call EOS_AntiCheatClient_RegisterPeer using the EOS SDK 1.15 libraries, you must rebuild your game with the new 1.15 headers. If you do not, your game will crash.
Authentication
- New (Breaking Change): On Windows, the
EOS_LCT_AccountPortal
andEOS_LCT_ExternalAuth
login types now require the EOS redistributable installed with your game.- For more information, see Redistributable Installer.
- New: The SDK now supports verifiable parental consent. Younger users may be prompted to obtain parental consent for their Epic Account, or for data sharing within a game.
- New: SDK packages now contain the EOS bootstrapper and EOS bootstrapper tool for use with the EOS redistributable for crossplay on Windows PC.
- For more information, see Redistributable Installer.
- Bug Fix: Fixed an issue where the
EOS_Connect_OnLoginStatusChangedCallback
did not report that the local user’s authentication session had expired. - Bug Fix: Fixed an issue that caused
EOS_P2P_QueryNATType
to always fail and use the wrong NAT servers if called too soon afterEOS_Platform_Create
. - Bug Fix: Renamed
EOS_EResult::EOS_Auth_PersistentAuth_AccountNotActive
toEOS_EResult::EOS_Auth_AccountNotActive
. This removesPersistent
because the Epic Account status it returns is not specific to only the persistent (EOS_LCT_PersistentAuth
) login type.
EOS Core
-
New: Added
EOS_Platform_GetDesktopCrossplayStatus
API for Windows PC. Games distributed outside the Epic Games Store can use this API to verify that the in-game overlay for Epic Account login is readily available. -
New (Breaking Change): Added the APIs listed below to the Platform Interface. They inform the SDK when the game gets suspended and resumed, and when the network connectivity state of the local system changes.
There are four new APIs:
EOS_Platform_SetApplicationStatus
EOS_Platform_SetNetworkStatus
EOS_Platform_GetApplicationStatus
EOS_Platform_GetNetworkStatus
- All games must now call the two
Set
APIs for the SDK to work correctly:EOS_Platform_SetApplicationStatus
EOS_Platform_SetNetworkStatus
Known Issue: iOS and Android samples are currently not updated with examples of the new suspend / resume and network connect / disconnect APIs.
- New: Added types
EOS_EApplicationStatus
andEOS_ENetworkStatus
. - New: When a game client resumes to a foreground state, the SDK now updates the auth token’s expiration, based on the time that elapsed when it was in a background state.
- New: Redacted display names from the SDK logs because this is personal player information.
- New: Redacted continuation tokens from the SDK logs because this is sensitive information.
- New: Updated the
EOS_Ecom_QueryOwnership
limit from 32 to 50 to bring the SDK in line with the EOS service request limit of 50. - Improvements: Updated the SDK build version string returned by
EOS_GetVersion
to contain the platform it relates to.
Friends
- New: Enabled EOS_Friends_SendInvite,
EOS_Friends_AcceptInvite
, andEOS_Friends_RejectInvite
. Games can call these APIs to let players make new friend connections in-game. These APIs were not enabled in previous SDK versions.
Lobbies
- New: Added new notification functions
EOS_Lobby_AddNotifyLobbyInviteRejected
andEOS_Lobby_RemoveNotifyLobbyInviteRejected
. - New: Added
EOS_CustomInvites_AddNotifyRejected
andEOS_CustomInvites_RemoveNotifyRejected
functions to bring custom invites in line with the Lobbies Interface and Sessions Interface. - Bug Fix: Added additional error messages related to players who are interacting with the voice features of the SDK. The error messages now report when players are not found.
- Bug Fix: Invites to a lobby are now identifiable by the player who sent the invite. If a player has invites to a lobby from various friends, when the player accepts one of the invites, the Social Overlay now removes all the player’s unused invites.
P2P
- Bug Fix: Fixed an issue that caused
EOS_P2P_QueryNATType
to always fail and use the wrong NAT servers if called too soon afterEOS_Platform_Create
. - Bug Fix: Greatly reduced the CPU performance cost of
EOS_P2P_SendPacket
.
Player Data Storage
- Bug Fix: Improved the performance of file reads during the hashing of cached files in player data and title storage file reading and writing flows.
Samples
- Bug Fix:
Fixed EOS_UserInfo_CopyUserInfoOptions
to use the correct API version typeEOS_USERINFO_COPYUSERINFO_API_LATEST
. - Improvements: Changed the Visual Studio Debug and Release project configuration build defaults to
Debug_SDL
andRelease_SDL
. - AuthAndFriends Sample:
- Improved the UI on the custom invites dialog box.
- Voice Sample:
- Added support for setting an individual player’s audio volume.
Social Overlay
- New: Added
EOS_UI_PauseSocialOverlay
which pauses the Social Overlay andEOS_UI_IsSocialOverlayPaused
which checks if the Social Overlay is paused.- While paused, the Social Overlay is not displayed.
- Pause the Social Overlay during cut-scenes to prevent toasts and temporarily keep the player immersed in your experience.
- New: Added
EOS_UI_ShowBlockPlayer
andEOS_UI_ShowReportPlayer
. These send a state update to the Social Overlay requesting that a player is blocked or reported. - New: Added
EOS_UI_GetFriendsExclusiveInput
so your game can immediately check whether the Social Overlay is in exclusive input mode. Previously games had to keep track of this state using theEOS_UI_OnDisplaySettingsUpdatedCallback
callback. - New: The Social Overlay now shows a player ALL their Epic friends. This includes Epic friends who have never played the game a player is playing.
- New: Added functionality so players can:
- Search Epic friends
- Manage Epic friends: add and remove friends, accept and deny incoming friend invites, and cancel outgoing friend invites
- Block Epic friends
- Report Epic friends
- New: The Social Overlay can now show cross-platform friends alongside Epic friends: Players who launch your game from the Epic Games Store can see friends who launch your game from Steam.
- Bug Fix: The Invite button no longer displays when a lobby is full.
- Improvements: The Social Overlay is hidden when a game’s status changes or the network is disconnected.
User Info
- New: Added
DisplayNameSanitized
toEOS_UserInfo
andEOS_UserInfo_ExternalUserInfo
. This contains the sanitized display name when your game is running on platforms that have sanitization support.
Voice
- New: Added
bParticipantInBlocklist
field toEOS_RTC_ParticipantStatusChangedCallbackInfo
which reports when a player is added or removed from a block list. Use this to know when a player can’t be heard in a lobby because they are on a block list.- Note: This is an automatic enforced internal block which you can’t override.
- New: Added EOS_RTCAudio_UpdateParticipantVolume for audio volume control that extends (and replaces) the existing volume control.
- Bug Fix: Allowed setting
NoAffinityMask
on RTC threads. - Bug Fix: Fixed an issue on macOS where the audio input device did not recognize any devices.
- Deprecation: Deprecated
LocalUserId
andLobbyId
in theEOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions
struct.
C# SDK
-
New (Breaking Change):
- Changed most reference types (classes) to value types (structs), giving significant performance gains.
- You must use the
ref
keyword when you pass options structs in API calls. - You must use the
ref
keyword when you pass info structs in callbacks. - Because reference types (classes) are now value types (structs), there might be new bugs in your code, depending on how you assign options and pass them in API calls. We recommend testing for regressions in this area.
-
New: The SDK now uses byte[] instead of ArraySegments to prevent unnecessary copies of data.
-
New: Added a new Utf8String class to reduce the UTF-16 to UTF-8 conversions.
-
New: Added fixes, optimizations, and improvements to the wrapper code.
-
Bug Fix: Added dynamic binding symbol mappings for Win32 and macOS.
Tools
Developer Auth Tool
- New: The tool persists the port chosen by the player. On successive launches, this port is automatically selected in the UI.
- New: The tool remembers player credentials between uses, without requiring player logins to refresh it.
- Bug Fix: The tool refreshes player credentials when it runs for long durations.
LIBRARIES
- New: Updated openssl-1.1.1n.
UPGRADE NOTES
Anti-cheat
- See the documentation for details on how to use peer-to-peer mode in cross-platform play.
- Note: To ensure authentication works correctly with this feature, you must update the SDK for PC and console platforms simultaneously when you use this feature.
PROGRAMMING UPGRADE NOTES
Authentication Breaking Change
- On Windows, the
EOS_LCT_AccountPortal
andEOS_LCT_ExternalAuth
login types now require the EOS redistributable installed, and your game must launch with the EOS bootstrapper.
EOS Core Breaking Change
- All games must now call the following two APIs for the SDK to work correctly:
EOS_Platform_SetApplicationStatus
EOS_Platform_SetNetworkStatus
- Added these APIs to the Platform Interface. They inform the SDK when the game gets suspended and resumed, and when the network connectivity state of the local system changes.
You can use two new related APIs optionally, to check the status:
EOS_Platform_GetApplicationStatus
EOS_Platform_GetNetworkStatus
Known Issue: iOS and Android samples are currently not updated with examples of the new suspend / resume and network connect / disconnect APIs.
C# SDK Breaking Change
- Changed most reference types (classes) to value types (structs), giving significant performance gains.
- You must now use the
ref
keyword when you pass options structs in API calls. - You must now use the
ref
keyword when you use info structs in callbacks.
Voice
- When a player joins an RTC room, they are initially blocked until their real block status is resolved. This means that there is more than one notification of their block status:
ParticipantStatus
is set toEOS_RTCPS_Joined
and theirbParticipantInBlocklist
is initially set to true before updating to their real block status. - The
LocalUserId
andLobbyId
fields ofEOS_Lobby_AddNotifyRTCRoomConnectionChangedOptions
are now deprecated.- The registered callback is now called for all local users and lobbies.
- If the game needs to perform any filtering, use the LocalUserId and LobbyId in the
EOS_Lobby_RTCRoomConnectionChangedCallbackInfo
callback parameter.
Platform-specific
Console General
- Bug Fix: Fixed an issue where
EOS_RTC_XXX
functions could have attempted to use the network before it was valid to.EOS_RTC_XXX
functionality now respects the currentEOS_HPlatform
network status value.
Steam
- New: When running on a platform that supports native sanitization, the
DisplayName
field inEOS_UserInfo and EOS_UserInfo_ExternalUserInf
o now has aDisplayNameSanitized
counterpart representing the version of that name that the platform’s sanitization or filtering functionality has processed. - Bug Fix: Updated the Steam friends interface to use additional friend flags for blocked users.
Sony PlayStation
- Updated to PS4 SDK 9.508.001 and PS5 SDK 5.00.00.33.
Nintendo Switch
- Updated to Nintendo Switch SDK 13.3.2.
- Deprecation: The
OnNetworkRequested
callback inEOS_Switch_InitializeOptions
is now deprecated and replaced by the newEOS_Platform_OnNetworkStatusChanged
API. - Lobbies
- New: The EOS SDK now respects and automatically enforces the Nintendo Switch Online membership permission requirement, when it’s applicable for online matchmaking.
Microsoft Xbox
- Updated to Xbox GDK to version 211001.
- Added support for the EOS developer auth tool on Xbox GDK platforms.
- Treat the target IP address of the developer auth tool as a local IP, such as 192.168.x.x, 10.x.x.x, 127.x.x.x, 172.16.x.x through 172.31.x.x, or the equivalent IPv6 addresses.
- Hostnames are not supported at this time.
- Only use this feature for development and testing: use the GDK's own authentication to log in users in real-world scenarios. This feature does not work on retail devices.
- Bug Fix: Fixed a bug in GDK Sanitizer that could result in unlimited re-sanitization calls to Microsoft services.
1.14.2-hf-2 - 2022-jul-07
Note - If you ship your game on Steam:
- If you have already downloaded and are using the Epic Online Services SDK for C or C# versions 1.14.2 or 1.14.2-hf-1, you need to download the 1.14.2-hf-2 hotfix version of the SDK for C or C# and use it instead.
- 1.14.2-hf-2 has updated authentication for Steam in the SDK for C and SDK for C#. The SDKs for consoles are unaffected.
RELEASE NOTES
SDK for C and SDK for C
Authentication
SDK for C and SDK for C#
- Deprecated:
EOS_ECT_STEAM_APP_TICKET
is deprecated for use withEOS_Auth_Login.
UseEOS_ECT_STEAM_SESSION_TICKET
instead.- Note: The SDKs for consoles are unaffected.
1.14.2-hf-1 - 2022-feb-14
Note: If you already downloaded Epic Online Services SDK Version 1.14.2, you must also download this version of the SDK, to resolve an issue with AntiCheat (see below).
RELEASE NOTES
AntiCheat
- Bug fix: We fixed an issue where the anti-cheat bootstrapper would strip quotes when forwarding arguments.
1.14.2 - 2022-feb-01
RELEASE NOTES
AntiCheat
- New:The anti-cheat bootstrapper now supports specifying the name of the .json from which the values will be parsed. To provide a custom .json file invoke the bootstrapper with the following included:
-anticheat_settings=Custom.json
. Note that the file must still be placed in the same directory as before. - Bug Fix: Fixed the anti-cheat bootstrapper failing to launch for users with non-ASCII characters in their Windows username.
- Bug fix: Fixed an issue where the anti-cheat bootstrapper would strip quotes when forwarding arguments.
- Bug Fix: Fixed the Steam Overlay initializing on the anti-cheat bootstrapper loading window.
- Bug Fix: Fixed anti-cheat bug that caused games to fail to start on Fedora Linux.
- Bug Fix: Fixed the anti-cheat integrity tool sometimes failing for working directory paths that include non-ASCII characters.
- Bug Fix: Fixed a possible memory leak in
AntiCheatServer
. - Bug Fix: Fixed a potential crash with a very high number of players in a single game server or with a poor backend connection.
- Improved layout of anti-cheat integrity catalog files.
- The anti-cheat interface's
ProtectMessage
andUnprotectMessage
functions may now be called from any thread, however they are not thread safe and must not be called from more than one thread concurrently. - Improved error logging for
ProtectMessage
andUnprotectMessage
.
Authentication
- Bug Fix: Fixed
EOS_Auth_VerifyIdToken
failing for tokens that were received from game clients using a differing Client ID from the server's Client ID. - Bug Fix: Fixed
EOS_Auth_VerifyIdToken
not being allowed to be called by game clients. - Bug Fix: Fixed
EOS_Auth_VerifyIdToken
not rejecting expired tokens. - Added returning
ApplicationId
,ClientId
,ProductId
,SandboxId
,DeploymentId
and external account information inEOS_Auth_VerifyIdTokenCallbackInfo
to the caller.
Connect
- Bug Fix: Fixed an issue where the
EOS_Connect_AddNotifyLoginStatusChanged
would not fire when auth expires except in rare cases. Registered callbacks will now correctly be notified when a user is logged out due to auth expiration. - Bug Fix: Fixed
EOS_Connect_VerifyIdToken
failing for tokens that were received from game clients using a differing Client ID from the server's Client ID. - Bug Fix: Fixed
EOS_Connect_VerifyIdToken
not being allowed to be called by game clients. - Bug Fix: Fixed
EOS_Connect_VerifyIdToken
not rejecting expired tokens. - Added returning
ClientId
,ProductId
,SandboxId
andDeploymentId
inEOS_Connect_VerifyIdTokenCallbackInfo
to the caller.
Core
- New: The EOS SDK version and configuration information are now written to log output on startup to help with troubleshooting.
Ecommerce
- Bug Fix: Fixed a bug where
EOS_Ecom_Transaction_CopyEntitlementByIndex
was not populating theCatalogItemId
ofEOS_Ecom_Entitlement
properly.
Samples
- Bug Fix: Leaderboards - Fixed crash in Leaderboards sample when using a Leaderboard configured to never expire.
- Bug Fix: Resolved an Auth issue in the Login samples (iOS/Android).
Session Based Matchmaking
- Sessions that enforce sanctions can now be created. Sanctioned players may neither join nor register with a session that was created with sanctions enabled. See the documentation on Sanctions Interface for more information.
Social Overlay
- Bug Fix:Fixed a very rare crash in the communication layer between the SDK and EOS Overlay
Title Data Storage
- Logging has been improved for many error cases
PROGRAMMING UPGRADE NOTES
AntiCheat
- Added log entries for cases where the encryption/decryption fails. Error logging already existed for invalid arguments.
Console Specific
Nintendo Switch
- New: Updated the Nintendo Switch Nintendo SDK version to 13.3.0 from 11.4.3.
KNOWN ISSUES
AntiCheat
- When the anti-cheat bootstrapper is provided with a custom icon it will sometimes appear blurry.
- This will be resolved with the next release
2021
1.14.1 - 2021-nov-08
RELEASE NOTES
New Features:
-
Custom Invites
The Custom Invites feature is designed for developers who want to use their own grouping technology while still taking advantage of the Social Overlay and Epic Games Launcher invite buttons and prompts.
Developers provide an arbitrary string payload for transmission to other players, and this payload is sent either through direct API call or via the Social Overlay Invite button. Players on the receiving side will see the same Social Overlay Invite Received prompts as with EOS Sessions and Lobbies, and received invites can also trigger new EOSSDK API callbacks if desired.
-
Added
CustomInvites
UI elements and functionality toAuthAndFriends
sample. -
A Send Invite button opens a send invite dialog which allows the user to set a payload and choose a target user, and ultimately "send" an invite. Instead of using the Send button, the Overlay can also be opened where a Send button will appear next to any users currently eligible to receive the invitation.
-
When an invite is received, a dialog appears with detail about the invite and offers Accept and Decline buttons which ultimately call
FinalizeInvite
withSuccess/Canceled
results.
AntiCheat
- New: Added verbose logging support for the bootstrapper, this is enabled by passing either of the following as command line arguments:
-v
or--verbose.
- New: The bootstrapper now supports custom runtime icons on Windows, to use a custom icon place a
BootstrapperIcon.ico
under the<working_dir>/_EasyAntiCheat/_
directory. - Bug Fix: Fixed
AntiCheatServer
backend timeout errors when running with a very high number of players in a single game server. - Bug Fix: Fixed a potential crash with a very high number of players in a single game server or with a poor backend connection.
- Bug Fix: Fixed
AntiCheatClient PollStatus
function having an out parameter incorrectly named ViolationType instead of OutViolationType. - Bug Fix: Fixed
AntiCheatClient PollStatus
function lacking correct out parameter marshaling in the C# SDK. - Bug Fix: The bootstrapper is now code signed on Windows.
- Bug Fix: The bootstrapper now displays an error if the executable field defined through
Settings.json
targets a directory. - Security improvements.
Authentication
- Bug Fix: Fixed EOS_Auth_CopyIdToken not providing an ID Token for logins using the
EOS_ELoginCredentialType::EOS_LCT_AccountPortal
andEOS_ELoginCredentialType::EOS_LCT_DeviceCode
credential types.
Connect
- Added user authentication support using Epic Account ID Tokens with a new
EOS_EExternalCredentialType::EOS_ECT_EPIC_ID_TOKEN
credentials type. - Added Amazon as a supported user authentication provider.
- Extended
EOS_Connect_VerifyIdToken
to return information about the external account associated with the verified Product User ID. - Updated header commenting for
EOS_Connect_QueryProductUserIdMappingsOptions
struct to callout usage with dedicated servers.
Core
- Bug Fix: Fixed an issue where builds launched via EGS Launcher would crash on Mac
- Minimum supported macOS version has been changed from 10.14 to 10.12.
Lobbies
- Bug Fix: Fixed a bug where create/join lobby would fail and destroy any existing lobbies by closing the active connection.
Social Overlay
- New: Added the
CustomInvites
Interface to provide developers the ability to transmit/receive arbitrary payloads with the same high-level functionality provided by EOS Lobbies and Sessions. - New: Added
CustomInvites
UI elements and functionality toAuthAndFriends
sample.- A Send Invite button opens a send invite dialog which allows the user to set a payload and choose a target user, and ultimately "send" an invite.
- When an invite is received, a dialog appears with detail about the invite and offers Accept and Decline buttons which ultimately call
FinalizeInvite
withSuccess/Canceled
results. - Custom Invites Interface: Added
Payload
as a parameter in theOnCustomInviteReceived
andOnCustomInviteAccepted
callback infos
- Custom Invites - Added
EOS_CustomInvites_NotifyCustomInviteAccepted
,EOS_CustomInvites_RemoveNotifyCustomInviteAccepted
andEOS_CustomInvites_NotifyCustomInviteProcessed
CONSOLE SPECIFIC
Sony PlayStation
- New: The EOS SDK PlayStation 4 release now targets the 9.000 PlayStation 4 SDK.
- New: The EOS SDK PlayStation 5 release now targets the 4.000 PlayStation 5 SDK.
KNOWN ISSUES
AntiCheat
- Anti-Cheat bootstrapper is missing some localizations
- Steam overlay automatically initializes when Anti-Cheat bootstrapper opens
- Anti-Cheat fails to initialize on Fedora/Red Hat Linux
- Anti-Cheat bootstrapper may fail to launch for users with non-ASCII characters in their Windows username
- Memory leak in
AntiCheatServer
for some configurations AntiCheatServer
may crash when player count is very high
EOS Connect & EOS Auth
EOS_Connect_VerifyIdToken
andEOS_Auth_VerifyIdToken
fails due to differing Client ID between servers and game clientsEOS_Connect_VerifyIdToken
andEOS_Auth_VerifyIdToken
do not correctly check against token expirationEOS_Connect_VerifyIdToken
andEOS_Auth_VerifyIdToken
are not available for game clients, only if the SDK is initialized with bIsServer set to true
1.14 - 2021-sep-23
RELEASE NOTES
New Features:
- Progression Snapshot, (Account Merge Service Preview)
- Added a new feature in preparation for the introduction of account merge.
- Progression snapshots are a way for developers to store key/value pairs about user progress in the application. This information will be used by account merge to help users make choices when combining account progress. See documentation for details.
AntiCheat
- New: Added anti-cheat client support for Linux, including Wine/Proton
- New: Added anti-cheat client support for Mac (Intel-based)
- Bug Fix: Fixed bug causing anti-cheat gameplay data
UnregisterClient
event to not be sent. - Bug Fix:
EOS_AntiCheatServer_RegisterEvent
no longer accepts '.' as part of an event name. This previously caused rejection by the backend but without a clear error. - Bug Fix: Fixed internal bug causing anti-cheat gameplay data
UnregisterClient
event to not be sent. - Bug Fix: Fixed possible anti-cheat issues if the system clock is updated at just the wrong moment.
- Bug Fix: Fixed anti-cheat client module testing workflow not working correctly and leading to a "connection failed" error.
- Updated Anti-Cheat
ProtectMessage
andUnprotectMessage
APIs so that the final parameterOutBytesWritten
only needs to be a valid pointer to an integer. Previously the integer needed to be initially set to the length of the output buffer. - Renamed anti-cheat
ProtectMessage
andUnprotectMessage
API positional parameters for better clarity and consistency. - Added
DamagePosition
toEOS_AntiCheatCommon_LogPlayerTakeDamageOptions
and deprecatedHitBoneId
This provides more accurate information about hit locations. - Anti-Cheat client modules are now managed at the Deployment level rather than the Sandbox level. This is more consistent with other EOS services. You must be sure to update the
EOS_AntiCheatTools
files when updating your game to this version of the SDK. - The EOS Connect DeviceID auth method is not supported for anti-cheat. A new result code
EOS_AntiCheat_DeviceIdAuthIsNotSupported
is now returned for this case.
Authentication
- New: Added new APIs
EOS_Auth_CopyIdToken
,EOS_Auth_QueryIdToken
, andEOS_Auth_VerifyIdToken
to allow game servers, online backends and other clients to securely verify identities of other Epic account users. Games using the existingEOS_Auth_CopyAuthToken
andEOS_Auth_VerifyAuthToken
APIs should consider switching to use ID tokens instead. - New: Added API support to detect a merged Epic account state for local users. This is relevant for an upcoming Epic Account Services functionality that will allow users to merge their separate Epic accounts into a single Epic account.
Connect
- New: Added new APIs
EOS_Connect_CopyIdToken
andEOS_Connect_VerifyIdToken
to allow game servers, online backends and other clients to securely verify another EOS user's identity. - New: Added
EOS_Connect_CopyIdToken
,EOS_Connect_IdToken_Release
, andEOS_Connect_VerifyIdToken
APIs for the management of Connect ID Tokens. For more information, see the Connect Interface documentation.
ECommerce
- New: Exposed
DecimalPoint
for the provided price inEOS_Ecom_CatalogOffer
structure. For example, DecimalPoint '2' and CurrentPrice64 '12345' would be '123.45'.
Overlay Tech Platform
- Bug Fix: Notification callbacks added by
EOS_UI_AddNotifyDisplaySettingsUpdated
and then removed byEOS_UI_RemoveNotifyDisplaySettingsUpdated
before ticking are never invoked. Previously they would have been invoked once and if the game had freed some dependent state, a crash was possible.
P2P
- It is now possible to get notifications when a connection is established with
EOS_P2P_AddNotifyPeerConnectionEstablished
andEOS_P2P_RemoveNotifyPeerConnectionEstablished
. - It is now possible to clear queued incoming and outgoing packets for/from a given remote user and specific socket with
EOS_P2P_ClearPacketQueue
.
Player Data Storage
- Bug Fix: Fixed an issue where reading files from the local cache of Player Data Storage could be very slow.
- Improved
PlayerDataStorage
logging for many error cases.
Presence
- Bug Fix: Fixed an issue when Presence service would keep trying to auto-update status when connection is lost.
Samples
- Bug Fix: Fixed building Leaderboard sample on Mac / Linux by adding missing
AssetUtils.cpp
toMakefile
.
Sanctions
- Added
TimeExpires
andReferenceId
fields toEOS_Sanctions_PlayerSanction
. This information was already visible in the EOS Developer Portal but previously not available through the SDK API.
Voice
- Exposed
EOS_RTC_SetSetting
andEOS_RTC_SetRoomSetting
APIsDisableEchoCancelation
Disables the use of echo cancellation for the audio channel. DefaultFalse
DisableNoiseSupression
Disables the use of noise suppression for the audio channel. DefaultFalse
DisableAutoGainControl
Disables the use of auto gain control for the audio channel. DefaultFalse
DisableDtx
Global\Per room Allows to disable the use of DTX. DefaultFalse
Mobile
iOS
- Bug Fix: Fixed an issue where an exception could occur on iOS 14 due to invalid characters in the URL scheme.
UPGRADE NOTES
AntiCheat
- When upgrading to SDK 1.14, you must update the files
start_protected_game.exe
,EasyAntiCheat_EOS_Setup.exe
, andanticheat_integritytool.exe
to the latest versions from the bundledEOS_AntiCheatTools
zip file. - Changes in the
start_protected_game.exe
:- The following settings are no longer supported, these were previously defined in the associated
Settings.json
:parameters
: The bootstrapper now forwards all parameters to the game process that were provided to it upon process start, therefore the associated Settings file doesn't offer this functionality.use_cmdline_parameters
: Removed as redundant due to the parameters field being removed.working_directory
: Removed as we're now expecting that the bootstrapper is stored in the game's root directory, this applies to all supported platforms.logo_position
: Removed due to the bootstrapper's new design that limits the positioning.hide_splash_screen
: Removed due to changes in the bootstrapper's internal design.hide_ui_controls
: Removed due to changes in the bootstrapper's internal design.
- The following settings are no longer supported, these were previously defined in the associated
- If you want to activate Wine/Proton support for your Windows game, you must activate a Linux module in the EOS Developer Portal. See the EOS developer documentation for further details.
PROGRAMMING UPGRADE NOTES
AntiCheat
- Usages of
EOS_AntiCheatCommon_LogPlayerTakeDamageOptions
should be updated to set theDamagePosition
field instead ofHitBoneId
. This provides more accurate information about hit locations.
1.13.1 - 2021-july-27
RELEASE NOTES
C# SDK
- Bug Fix: Fixed compatibility issues with C# versions <7.
- Bug Fix: Fixed iOS Config targets.
Lobbies
- Renamed the
EOS_Lobby_LocalRTCOptions
parameterbAudioOutputStartsMuted
tobLocalAudioDeviceInputStartsMuted
to better describe what is muted. - Bug Fix: Removed an erroneous warning during lobby update. The client can possibly be aware of more attributes than the backend while updates are in flight. This was generating false "out of sync" errors.
- Bug Fix: Fixed a crash when the RTC initialization options were not specified on EOS Platform Creation, but Lobbies had the RTC Room feature enabled. In this case, lobby creation will now fail with an
EOS_InvalidRequest result
. - Bug Fix: Fixed an incorrect warning that would always occur when using the Lobbies RTC Room feature.
Player Data Storage
- Added additional logging in some error cases for
EOS_PlayerDataStorage_QueryFile
,EOS_PlayerDataStorage_QueryFileList
, andEOS_PlayerDataStorage_ReadFile
.
PROGRAMMING UPGRADE NOTES
Lobbies
- Usages of the
EOS_Lobby_LocalRTCOptions
parameterbAudioOutputStartsMuted
must be renamedbLocalAudioDeviceInputStartsMuted
.
Console Specific
PlayStation
- New: Set PS5 SDK version to 3.00.00.27
- New: Set the PS4 SDK version to 8.508.001
Nintendo Switch
- Bug Fix: Fixed an issue where P2P could get stuck thinking the network was not available if the network was not available the first time P2P was used. P2P now always correctly resumes when the network becomes available again.
- Bug Fix: Fixed an issue where asynchronous Lobby API calls could take a very long time to timeout when the network is unavailable.
Xbox Series X|S
- Bug Fix: Fixed an RTC audio capture issue on Xbox Series X|S.
1.13 - 2021-jun-21
RELEASE NOTES
New Features:
- Voice (Preview Service): The initial release of our EOS Voice tool as part of Epic Online Services allows your players to talk to their friends or teammates in your game without using a third party solution. See documentation for details.
Anti-Cheat
- Changed Easy Anti-Cheat’s launcher to use a new version relying on SDL instead of Win32.
Authentication
- Bug Fix: Fixed possible crash via the exchange code flow in
EOS_Auth_Login
when additional consent is required. - Bug Fix: Fixed possible crash when using Continuance Token handles in
EOS_Auth_LinkAccount
.
Core
- Bug Fix: Removed
constexpr
specifiers from enumerator class bitwise operator functions that are never constexpr. - Improved validating of invalid UTF8 characters in the
EOS_Platform_Options CacheDirectory
parameter. If invalid characters are found, we now correctly fail to create the platform instance. Additional logging has been added when this occurs.
Lobbies
- New: Added automatic Real Time Communication (RTC) Room support to Lobbies.
- This feature handles automatically creating, joining, and maintaining connections to a dedicated RTC Room for the lobby when enabled. This feature requires enabling the createLobbyConference Voice permission in the EOS developer portal.
- New: Lobby creation now allows for the specification of a "lobby id override".
- The values need to be universally unique within the context of the application.
- Bug Fix: Fixed log message for
EOS_Lobby_RejectInvite
whenInviteId
is null or empty. - Bug Fix: Searching for other users via
EOS_LobbySearch_SetTargetUserId
now respects the max search results value. Previously it was only returning one search result.
Lobbies Sample
- New: Added voice option to lobby sample.
Player Data Storage
- Improved error messages for bad file names and paths.
Title Storage
- Improved error messages for bad file names and paths.
Mobile
iOS
- iOS binaries are now compiled with bitcode support.