General
- Changed CommandLine argument from AUTH_ID to AUTH_LOGIN due to Epic Launcher using AUTH_LOGIN and not AUTH_ID
- New function: “Listen for EOS Messages” this will enable you to get EOS SDK callbacks in blueprints!
- Updated to EOS SDK Version 1.8.0
Android
- Fixed authentication on Android using local device id
Auth Interface
- New function: “Auth Link Account”
Connect Interface
- New function: “Unlink Account“
- New function: “Transfer Device Id Account“
UserInfo Interface
- New function: “Query User Info by External Account“
EOS SDK 1.8.0 Changelog
NEW FEATURES
- Title Storage: Allows downloading of read-only game data previously uploaded and configured with the Dev Portal. This game data is title-wide and shared in common across all players. See documentation for details.
- Console Account Linking: All console platforms have a way to associate native tokens and login to Epic Account Services via EOS_Auth_Login. See Authentication section below.
Achievements
- EOS_Achievements_QueryDefinitionsOptions deprecated the member variables EpicUserId, HiddenAchievementIds and HiddenAchievementsCount.
- Bug Fix: Achievement localization logic has been simplified to reduce the likelihood of an empty string. The logic is now simply “if the client receives the requested localization text then return it; otherwise return the default text.”
Authentication
- New: Added support for external auth using EOS_Auth_Login and linking Epic accounts with external accounts on console. When an external account is not linked, EOS_Auth_LinkAccount can now be used to continue the login flow and link the accounts.
- New: Account id length definition for EOS_EpicAccountId has been changed to 32 bytes. This data should never be larger than 128 bits, but continue to treat the data type as opaque. It is not guaranteed to be a UUID or any particular structure.
- New: Add support for returning a Verification URI to EOS_Auth_Login callers when the backend returns an EOS_EResult equal to EOS_Auth_AccountFeatureRestricted.
- New: Added EOS_AS_FriendsManagement to the EOS_EAuthScopeFlags enum. This scope is restricted to Epic first party products, and attempting to use it will result in authentication failures.
- New: Added EOS_UserInfo_QueryUserInfoByExternalAccount to support querying for Epic Account user info using external account details.
- Removed public define EOS_CONTINUANCETOKEN_MAX_LENGTH for EOS_ContinuanceToken_ToString and changed this function so that it can be called once with its OutBuffer set to NULL to return the required buffer size.
- Bug Fix: Fixed bug where the VerificationURIComplete parameter of the auth callback was not returning a valid string. This was fixed in 1.6.2 and regressed in 1.7.x.
Connect
- New: Added EOS_Connect_TransferDeviceIdAccount API. This function allows transferring local game progression created using Device ID in the scenario where the destination keychain already has an existing product user that needs to be replaced with the local game progression.
- New: Added EOS_Connect_UnlinkAccount API. This function allows the application to recover the local user from situations where they accidentally create a new product user while having already used the application on another platform. This unlinking effectively resets the user flow, allowing the local user to re-enter the first time game experience flow.
- EOS_Connect_CreateDeviceId will now return an error result if attempted to be used by a dedicated server.
Core
- A small comment quality and improvement pass was made over the entire API to provide better documentation as well as improvements to our online API reference
- Added additional logging during initialization to warn that EOS_XXXX_InitializeOptions isn’t set on platforms that expect them to be.
- Bug Fix: Fixed off by one issue with EOS_EpicAccountId_ToString and EOS_ProductUsertId_ToString in buffer length calculations
- Bug Fix: Fix duplicate definition of FIOSAsyncTask when the SDK is used with UE4 on iOS and macOS
- Bug Fix: Mac can now correctly determine if it was launched by the Epic Games Launcher.
ECommerce
- Bug Fix: Improved logic for determining if local Ecom data is stale. This is to resolve some false negatives caused by clock skew between the server and the client.
Friends
- New: Add support for caching and notifying about Friend invites when the EOS_AS_FriendsManagement scope is enabled.
Leaderboards
- Bug Fix: Fixed issue with EOS_Leaderboards_QueryLeaderboardUserScores calling callbacks multiple times when querying with a large number of users or stats.
Lobbies
- Bug Fix: Fixed the accuracy of the AvailableSlots variable on the EOS_LobbyDetails_Info data structure. It should now always be correct.
Mobile
- Bug Fix: Mobile Auth Login – URLs are now properly encoded, when additional scopes are requested.
P2P
- P2P functionality will now lazily initialize when first accessed instead of when EOS_Platform_Create is called to reduce resource usage for applications that do not require P2P.
Samples
- Changed config name for Steam version of AuthAndFriends project (“Steam_” instead of “_Steam”) so default is non-Steam config.
- Added support for continuing login with an external account using EOS_Auth_LinkAccount with a continuation token. When a login attempt results in EOS_InvalidUser the continuation token can be used immediately to continue the login flow or at a later time to when the application is ready.
- Bug Fix: Fixed Steam App Ticket string buffer size, it depends on Steam App Ticket size instead of having a hard limit of 256.
- Bug Fix: Fixed a bug where the sample needs to wait for the lobby leave to complete before continuing the lobby join. Otherwise the sample would just fail to join and not be in any lobby. This occurs when trying to join a lobby associated with the Social Overlay while in a lobby associated with the Social Overlay.
- Bug Fix: Fixed CMakeLists file for AuthAndFriends for Mac / Linux
- Bug Fix: Fixed login in C# sample if persistent auth fails
Session Based Matchmaking
- Added the ability to set the session ID at creation time. This will allow developers to use EOS_SessionSearch_Find and EOS_SessionSearch_SetSessionId with a session ID structure of your choosing. Sessions don’t need to be public with your own special attribute to find them for private sessions.
- WARNING – this value must be globally unique throughout your application’s ecosystem, failure to do so will return EOS_Sessions_SessionAlreadyExists.
- Bug Fix: Session interface now allows EOS_SessionSearch_SetTargetUserId for any target user ID as long as they are already registered with the session and the session is advertised publicly.
Social Overlay
- Bug Fix: The Social Overlay could have entered a state at initialization where the application which uses achievements would not have them available. This would happen if the access to the achievements service had a momentary blip. The SDK will now recover from this and retry.
- Bug Fix: Fixed a bug where a new user may never get the Social Overlay. The Social Overlay will now reinitialize after the association of the Product User ID and the Epic Account ID has been established.
- Bug Fix: Fixed a bug where the use of Achievements without Stats would disable the Achievements feature in the Social Overlay.
- Bug Fix: Fixed a bug which could cause some users to never have access to the Social Overlay on their first login to the product.
Stats
- Updated all EOS Stats options structs to always require a TargetUserId value. For all network operations a LocalUserId value will also be required. This is a change to conform existing SDK options patterns.
UserInfo
- Added EOS_UserInfo_QueryUserInfoByExternalAccount to allow querying for user info using an external account ID and external account type.
- Bug Fix: EOS_UserInfo_QueryUserInfo has additional checks for invalid (null) target user IDs. It was previously possible to send a request devoid of any IDs and get an unexpected error from the backend. This is now prevented by the client API.
PROGRAMMING UPGRADE NOTES
Session Based Matchmaking
- Bug Fix: Added EOS_CO_ONEOF and EOS_CO_NOTONEOF enumerations to the search criteria, but these enumerations are not available for public use at this time.
Stats
- EOS_Stats_IngestStatOptions now requires both LocalUserId and TargetUserId. The TargetUserId must always be valid. When ingesting from a client these must be the same value. When ingesting from a dedicated server then LocalUserId will be ignored and should be null.
- EOS_Stats_QueryStatsOptions now requires both LocalUserId and TargetUserId. The TargetUserId must always be valid. When querying from a client the LocalUserId must be set to a user which is locally connected. When querying from a dedicated server then LocalUserId will be ignored and should be null.
IMPORTANT NOTES
- Android may have browser issues in SDK if there are multiple account/profile contexts.