Xsolla C++ SDK Release Notes#

v5.0.0#

  • Xsolla Backend’s C++ SDK has received a major overhaul as part of this release.

  • It is now possible to build with other versions of Clang utilizing sdk_cpp.

  • Fixed various issues preventing build compilation on Linux.

  • Xsolla Backend SDK for C++ now supports C++20 build systems.

  • Added OAuth2 SDK API support. Documentation will be added in an upcoming release.

  • Breaking Changes:
    • Renamed QuestReward model fields:
      • quantity -> value

      • entityUid -> entity

    • Classes were renamed
      • Message renamed to Mail

      • UserLink renamed to Relationship

      • MessageService renamed to MailService

      • UserLinkService renamed to RelationshipService

    • Introduced concept of Channels, for real-time messaging
      • Content sent on Channels now is referred to as Message

v4.0.1#

  • Added event origin data to all event models

  • Fix for runtime crash when profile data is not set

v4.0.0#

Warning

This release contains breaking API changes due to namespace and user property changes

  • Changed project namespace from AcceleratXR to XsollaBackend

  • User property name changes: firstName -> givenName; lastName -> familyName

  • Updated vcpkg to 2024.03.25

  • Migrated from CMakeSettings to CMakePresets

v3.0.0#

Warning

This release contains breaking API changes for all FindAll and Count functions in Service classes

  • Updates to toolchain support for Unreal 5.0, 5.1

  • Implemented missing functions in ShardService

  • Refactored all FindAll/Count functions to use Variant type instead of strings

v2.16.0#

  • Fixed multiple issues with Agones integration

  • Removed build support for Win32 (x86)

  • Fixed runtime error when null responses are parsed as JSON

  • Added missing cancel token to all create_task calls

  • Added additional variant type checking for common service operations

  • Removed deprecated models/services

  • Fixed return type for SendCode functions

  • Refactored docs

v2.15.0#

  • Added updateData endpoint to SessionService

  • Introduced new IApiServer interface

  • Introduced global network engine interfaces

  • Refactored Timer class

  • Fixing multiple runtime errors with task management

  • Fixed namespace conflicts when integrating to Unreal Engine

  • Fixed additional build issues with Unreal Engine

v2.14.2#

  • Fixed issues with Linux build

  • Fixed issue with agones integration running when not enabled

v2.14.1#

  • Fixing CI/DJ job for x86 builds

v2.14.0#

  • Implemented purchasing system data models and services

  • Various changes/improvements to IWebSocket and related interfaces

  • Implemented websocket++ for push notifications

  • Refactored all enum types

  • Fixed cmake related build issues

  • CoreSDK::Logout now returns an async task

  • Improved CoreSDK cleanup/logout code

  • Fixed issue with Timer incorrectly executing callback on exit

  • Removed all deprecated #ifdef header guards

  • Removed deprecated service manager data models and services

  • Implemented support for Agones health monitoring and status updates

v2.13.1#

  • Auth tokens are now refreshed a little sooner to prevent from making calls with an expired token

v2.13.0#

  • Refactored refresh tokens to comply with account services v1.14.0

  • Linux vcpkg package now only includes relevant linux dependencies

v2.12.2#

  • Fixing compilation issue for Linux

  • Linux package script now only includes .a files

v2.12.1#

  • Removing paths in LeaderboardRecordService configuration

v2.12.0#

  • Adding support for FindNear and FindTop REST API endpoints to LeaderboardRecordService

  • Fixing issues with cmake

v2.11.0#

  • Refactored getters to use templated Object::GetProperty to better handle access edge cases

v2.10.0#

  • Refactored EntityWatchdog to store shared pointers instead of weak pointers

v2.9.1#

  • Refactored all foreach loops in property accessors for better stability/performance

  • Fixed bad reference capture in lambda function

v2.9.0#

  • Updated EULA

  • Fixed issue with bad memory access after session join

v2.8.0#

  • Fixed compilation errors with EntityWatchdog::Unwatch()

  • Updating publish scripts

v2.7.0#

  • Enabled Ninja build for linux

  • Updating scripts to publish to nexus.acceleratxr.com

  • Fixed issue with SessionService::Join() not reporting the correct remote URL

v2.6.0#

API Changes:#

  • ServerInstance and ServerInstanceService are no longer server only classes

v2.5.1#

Bug Fixes:#

  • Fixing incorrect function definitions in ServerInstanceRequest

v2.5.0#

Improvements/Features:#

  • Added new ServerInstanceRequest model class

  • Added Assign() function to ServerInstanceRequest for requesting server instance assignments

v2.4.1#

Bug Fixes:#

  • Fixing bad endpoint paths for PersonaStat/PersonaStatDefinition

v2.4.0#

Improvements/Features:#

  • Added support for multi-factor authentication

  • Refactoring PersonaStat/PersonaStatDefinition to match backend API

  • Added non-const property accessors to Object

  • Added non-const operator accessors to Object

  • Reducing default threadpool size and setting explicit priority of NORMAL

Bug Fixes:#

  • Fixed issue with enum parsing in multiple classes

v2.3.0#

Improvements/Features:#

  • Added new templated override for Object::GetProperty()

  • Added HTTP HEAD request support

  • Added UserService.Exists() function to check if a user exists with a given ID

Bug Fixes:#

  • CORE-189: Fixed bug that prevented SetProperty from working correctly

v2.2.1#

Improvements/Features:#

  • Added unit tests for typical Unreal behavior

Bug Fixes:#

  • Fixed issue with known exceptions being incorrectly wrapped as an unknown exception

  • Fixed issue with FindAll requests looking for the wrong variant type when decoding the response

  • Fixed issue with leaving sessions causing incorrect exception to be thrown

v2.2.0#

Bug Fixes:#

  • Disabling SSL verification, this fixes problems with SSL endpoints

  • Removing unused forward declarations

v2.1.0#

  • Refactored all headers to remove unnecessary third party dependencies to avoid pollution in down-stream applications

  • Copied utility::datetime from cpprestsdk to SDK as xbe::sdk::datetime

  • Fixing issue with headers being incorrectly overridden

  • Refactoring CMakeLists.txt to be more streamlined

v2.0.0#

Improvements/Features:#

  • Refactored IApiClient/ApiClient to provide better abstraction

  • Added IWebSocket for websocket connection abstraction

  • Added IApiClient/IWebSocket implementation for POCO HTTP library

  • Added IApiClient/IWebSocket implementation for libcurl library

  • Added new Variant type for holding arbitrary data values

  • Refactored Object to store a map of Variant values instead of extending the cpprestsdk JSON object

  • Refactored JSON utils and Object class to use rapidjson library

  • Moved all HTTP and websocket code to new xbe::sdk::net namespace

  • Added unit tests for data model serialization to/from JSON

  • Added unit tests for basic CoreSDK functionality

  • Updated Unreal module build file