EOSCORE 1.9.2.4

GENERAL

  • Updated to EOS SDK version 1.15, make sure you read the changes before updating the plugin
  • There are a lot of changes to the SDK in this version, beware when updating that it may introduce issues.
  • Always make a backup of your current project before updating!

SDK Version 1.15

June, 2022

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: 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,
  • New: Replaced the client-side EOS_AntiCheatClient_PollStatus with a callback function which you can access through EOS_AntiCheatClient_AddNotifyClientIntegrityViolated.
  • Bug Fix: Fixed an issue with AntiCheatServer that players could use to cheat by avoiding detection.
  • 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 2048×2048.
  • 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.
  • Improvements: Better error logging for anti-cheat gameplay data features.
  • Improvements: The anti-cheat bootstrapper no longer caches its resources onto a player’s machine’s hard disk.
  • Improvements: 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.
  • Improvements: The anti-cheat integrity tool now has more usage samples. You can see them by running anticheat_integritytool.exe --help.
  • Improvements: Better error logging for anti-cheat peer-to-peer mode.
  • 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.
  • DeprecationEOS_AntiCheatClient_RegisterPeerOptions AccountID is now deprecated. PeerProductUserId replaces it.
Authentication
  • New (Breaking Change): On Windows, the EOS_LCT_AccountPortal and EOS_LCT_ExternalAuth login types now require the EOS redistributable installed with your game.
  • 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.
  • 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 after EOS_Platform_Create`.
  • Bug Fix: Renamed EOS_EResult::EOS_Auth_PersistentAuth_AccountNotActive to EOS_EResult::EOS_Auth_AccountNotActive. This removes Persistent 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 and EOS_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, and EOS_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 and EOS_Lobby_RemoveNotifyLobbyInviteRejected.
  • New: Added EOS_CustomInvites_AddNotifyRejected and EOS_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 after EOS_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 FixFixed EOS_UserInfo_CopyUserInfoOptions to use the correct API version type EOS_USERINFO_COPYUSERINFO_API_LATEST.
  • Improvements: Changed the Visual Studio Debug and Release project configuration build defaults to Debug_SDL and Release_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_PauseSocialOverlaywhich pauses the Social Overlay and EOS_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 and EOS_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 the EOS_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 to EOS_UserInfo and EOS_UserInfo_ExternalUserInfo. This contains the sanitized display name when your game is running on platforms that have sanitization support.
Voice
  • New: Added bParticipantInBlocklist field to EOS_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.
  • Deprecation: Deprecated LocalUserId and LobbyId in the EOS_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 and EOS_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 to EOS_RTCPS_Joined and their bParticipantInBlocklist is initially set to true before updating to their real block status.
  • The LocalUserId and LobbyId fields of EOS_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 current EOS_HPlatform network status value.
Steam
  • New: When running on a platform that supports native sanitization, the DisplayName field in EOS_UserInfo and EOS_UserInfo_ExternalUserInfo now has a DisplayNameSanitized 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 in EOS_Switch_InitializeOptions is now deprecated and replaced by the new EOS_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.