Blog

Latest news and updates from the PlayFab developers

by Paul Gilmore 2016-11-21

Windows SDK Update Blog

There are a few known issues with our WindowsSDK.

We are building a replacement, which will try to address many of these issues. See our Github page for a sneak preview of this replacement [UPDATE: Repo and link removed after launch].

Improved Features

  • Support for Visual Studio 2015
    • We hope to continue supporting vs2013, but this is still in-progress
  • Changing from Static Libraries to Dynamic Libraries
    • Better project structure (The old one was a C# style project converted directly to C++, where the new one should be a more normal C++ style)
  • Updating our dependencies
    • Removing pre-built static libraries to ZLib, RapidJson, CURL, and OpenSSL
    • Adding CppRestSdk
    • CppRestSdk uses Nuget instead of prebuilt libs, so it’s not pre-packaged with the SDK
  • Cloud Script
    • Formerly, results returned from Cloud Script were very restricted
    • CppRestSdk lets us return arbitrary json blobs, which means you can now get your Cloud Script results
  • Error reporting
    • The new version will have better error reporting and details for API calls that failed
  • Threading
    • The new SDK has two threading modes, and utilizes the Microsoft task framework
    • The first is the same existing SDK: API calls are threaded, but callbacks must be triggered from your own main-loop
    • The new option is 100% threaded, including the callbacks, so only use this if you understand how to do this safely

Upgrade Guide

We’ll publish a separate upgrade guide, but in short, upgrading will not be trivial.

Some early details:

  • PlayFab_Api, PlayFabSettings, and other classes have been changed from all-static to a singleton instance created within the PlayFab DLL, with an accessor to get that instance.
  • Certain values and options in the old SDK have been changed or removed
    • Compression options have been removed (they didn’t work anyway)
    • Some internal elements have been made private (You shouldn’t need them, but you may have been accessing them)
    • Some Optional_ typedef’s have been removed
    • Revised base-class structure for all PlayFab model classes
  • We’ve replaced our Json library, so any direct use of RapidJson needs to be converted to web::json::value
  • CppRestSdk requires the use of wide-character unicode strings
    • Most of our APIs and data-models still use std::string, but some of our more persistent fields, such as developerSecretKey and titleId require wide strings
    • There are string conversion utilities provided in the SDK to help with this
  • Project output files (libs and dlls)
    • Our project output files are still too large for GitHub, so we will be dropping these entirely. You will now need to build the PlayFab WindowsSdk project first, before linking to your own.

Transition and Communication

We will have a short period where both the old 0.x WindowsSdk, and the new 1.x WindowsSdk will be available.

Any discussion, feedback, or requests should be directed to our community support page.