PlayFab Services SDK for C/C++

The new PlayFab Services SDK for C/C++ is currently available for the following platforms: Win32 (x64 only), Nintendo Switch, Sony PlayStation®, iOS, macOS, Android, Linux, and the Microsoft GDK. Depending on the platform you're targeting, the way you acquire the SDK differs.

Win32, iOS, macOS, Android, Linux

Download from GitHub: PlayFabCSdk Releases. Release binaries and headers are available alongside the SDK source.

GDK

The Microsoft Game Development Kit (GDK) includes the PlayFab Services SDK as an extension library. That means you can include PlayFab in your Xbox and Windows games without another SDK download.

To learn more about the GDK, see the public documentation: GDK documentation homepage.

Nintendo Switch

Before you can access the PlayFab Services SDK for Nintendo Switch, you need to confirm your registered developer status via the PlayFab page in Nintendo's middleware directory. See more information here: Request access.

Once you've been granted access to the Switch SDK, you can download it from the git repo here: PlayFabCSdk.Switch.

Sony PlayStation

Before you can access the PlayFab Services SDK for PlayStation, you need to confirm your registered developer status via the PlayFab page in Sony's middleware directory. See more information here: Request access.

Once you've been granted access to the PlayStation SDK, you can download it from the git repo here: PlayFabCSdk.PS4 and PlayFabCSdk.PS5.

What this SDK includes

The PlayFab Services SDK for C/C++ is for use by game clients on Win32 (x64 only), Nintendo Switch, Sony PlayStation®, iOS, macOS, Android, Linux, and the Microsoft GDK. It includes only the subset of feature areas and service calls appropriate for games running on those platforms. We'll be adding support for more platforms and scenarios over time.

Here are some notable differences when compared to other, more general purpose, PlayFab SDKs:

  • This SDK omits any service calls that require admin or developer-level authentication on all platforms except Windows, where they may be needed for game server scenarios. Specifically, any call that requires a developer secret key or title entity token to authorize isn't available outside of the Windows SDK.
  • There is a limited set of player login methods:
    • PFAuthenticationLoginWithXUserAsync uses an XUserHandle to authenticate the player with PlayFab.
    • PFAuthenticationLoginWithSteamAsync uses a Steam token to authenticate with PlayFab.
    • PFAuthenticationLoginWithCustomIdAsync uses a custom string provided by the developer.
    • PFAuthenticationLoginWithOpenIdConnectAsync allows for a custom, sever-authoritative auth flow that depends on an existing OpenId backend implementation.
    • PFAuthenticationLoginWithNintendoServiceAccountAsync authenticates with PlayFab using the player's Nintendo Service Account.
    • PFAuthenticationLoginWithPSNAsync authenticates with PlayFab using the player's Sony authorization token.
  • This SDK removes some older or underutilized feature areas to reduce overall complexity. These areas include economy v1, player stats and leaderboards, and characters.

Benefits of this SDK

  • Allows titles to control the memory allocations when calling Playfab Services. See Managing Memory Allocations to learn more.
  • Allows titles to gain full control of thread handling when calling Playfab Services. See Making async calls in the PlayFab Services SDK to learn more.
  • Portable C interface that allows maximum compatibility across platforms, compilers, and languages.

Platforms supported by this SDK

This SDK is appropriate for x64 Win32 games and game servers, Nintendo Switch games, Sony PlayStation games, iOS games, Android games, macOS games, Linux games, and games utilizing the GDK on Windows and Xbox.

When not to use this SDK

There are scenarios where this SDK is not appropriate:

  • If your game utilizes a game engine for which there's already an engine-specific PlayFab SDK, that SDK is a better fit: Unreal Engine, Unity3D.

Add this SDK to your project

  • Win32
    • The Win32 version of this SDK is available via GitHub. Follow the instructions here to start making basic calls to PlayFab: Quickstart for Win32.
  • GDK
    • The GDK version of this SDK is a component of the GDK. Follow the instructions here to start making basic calls to PlayFab: Quickstart for GDK.
  • Android
    • The Android version of this SDK is available via GitHub. Follow the instructions here to start making basic calls to PlayFab: Quickstart for Android.
  • iOS
    • The iOS version of this SDK is available via GitHub. Follow the instructions here to start making basic calls to PlayFab: Quickstart for iOS.
  • macOS
    • The macOS version of this SDK is available via GitHub. Follow the instructions here to start making basic calls to PlayFab: Quickstart for macOS.
  • Linux
    • The Linux version of this SDK is available via GitHub. Follow the instructions here to start making basic calls to PlayFab: Quickstart for Linux.
  • Sony Playstation
  • Nintendo Switch

Reference

API reference documentation

"PlayStation" is a registered trademark or trademark of Sony Interactive Entertainment Inc.

"PS4" is a registered trademark or trademark of Sony Interactive Entertainment Inc.

"PS5" is a registered trademark or trademark of Sony Interactive Entertainment Inc.