SDK Download

Download

Downloads

The SDK package is all you need to build against Realtime Core. The Photon Realtime Headers package is optional: it carries the C++ API of the Photon Realtime libraries the SDK already ships (Common-cpp, Photon-cpp, LoadBalancing-cpp, Chat-cpp, PhotonVoice-cpp), for code written against the Photon Realtime SDK while you port it over, and is meant to sit beside the SDK package.

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK 6.0.0 Preview Build 347Release Notes
VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Legacy Realtime Headers 6.0.0 Preview Build 347Release Notes

Realtime Core has replaced the old Legacy Realtime C++ SDK. If you want to update a project that uses the Legacy Realtime C++ SDK then you have to download Realtime Core which contains the binaries for Legacy Realtime C++ as well as the Legacy Realtime C++ Headers.

Console Downloads

Console platforms require appropriate developer program access and SDK licenses. Check Consoles Overview to see how to gain access.

Playstation 5

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Playstation 5, SDK 13.000) 6.0.0 Preview Build 347Release Notes
6.0.0 Preview9月 23, 2026Realtime Core SDK (Playstation 5, SDK 12.000) 6.0.0 Preview Build 347Release Notes
6.0.0 Preview9月 23, 2026Realtime Core SDK (Playstation 5, SDK 11.000) 6.0.0 Preview Build 347Release Notes

Playstation 4

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Playstation 4, SDK 12.500) 6.0.0 Preview Build 347Release Notes

Switch 2

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Switch 2) 6.0.0 Preview Build 347Release Notes

Switch 1

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Switch 1) 6.0.0 Preview Build 347Release Notes

Xbox X|S

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Xbox Scarlett) 6.0.0 Preview Build 347Release Notes

Xbox One

VersionRelease DateDownload
6.0.0 Preview9月 23, 2026Realtime Core SDK (Xbox One) 6.0.0 Preview Build 347Release Notes

Supported Platforms and Toolchains

Realtime Core ships prebuilt libraries for the platforms below.

Sizes are the added size of a release build linked into an application, measured with Realtime Core 1.0.0.162

Platform Architecture Toolchain Static Libs C API
Windows x86_64 (/MD) MSVC 19.38 2.29 MB 2.30 MB (shared)
Windows x86_64 (/MT) MSVC 19.38 2.39 MB 2.52 MB (shared)
MacOS universal (arm64, x86_64) AppleClang 17.0 11.88 MB 11.82 MB (shared)
Linux x86_64 GCC 11.4 6.78 MB 7.43 MB (shared)
iOS arm64 AppleClang 17.0 5.03 MB 4.88 MB (static)
Android arm64-v8a NDK 25 44.97 MB 42.88 MB (shared)
Android x86_64 NDK 25 43.59 MB 41.76 MB (shared)
Web (WebAssembly/Emscripten) wasm Emscripten 4.0.20 1.47 MB 1.45 MB (static)
PlayStation 4 1 SDK 12.500 7.21 MB 7.05 MB (static)
PlayStation 5 1 SDK 11.000 6.41 MB 6.32 MB (static)
PlayStation 5 1 SDK 12.000 6.39 MB 6.32 MB (static)
Xbox One 1 MSVC 19.38, GDK 250405 2.38 MB 2.39 MB (shared)
Xbox Series X|S 1 MSVC 19.38, GDK 250405 2.38 MB 2.39 MB (shared)
Nintendo Switch 1 NDK 21.4.3 1.27 MB 1.26 MB (static)
Nintendo Switch 2 1 NDK 21.4.3 1.26 MB 1.26 MB (static)

1 Console platforms require developer program access. See Consoles Overview for details.

Building against the SDK needs a C++20 compiler, and CMake 3.20 or newer for the CMake package.

Connecting requires a Photon account and an App Id created in the Photon Dashboard.

SDK Contents

The package is a single self-contained RealtimeCore/ directory, with the license, the third-party notices and a readme beside it. Public headers are namespaced by library, and every library, including the Photon Realtime libraries Realtime Core builds on, lives under RealtimeCore/lib/<platform>/<arch>/.

Path Description
RealtimeCore/Common/*.h The public headers of the common library.
RealtimeCore/Matchmaking/*.h The public headers of the matchmaking library.
RealtimeCore/CAPI/RealtimeCAPI.h The declarations of the flat C API.
RealtimeCore/lib/<platform>/<arch>/ The Realtime Core libraries for your platform and architecture, the Photon Realtime libraries they build on (Common-cpp, Photon-cpp, LoadBalancing-cpp), the Photon Chat and Voice libraries (Chat-cpp, PhotonVoice-cpp, opus_egpv) and, on Android and Apple platforms, the prebuilt third-party archives Photon-cpp needs.
RealtimeCore/cmake/ The CMake package for find_package(RealtimeCore).
LICENSE.txt, THIRD_PARTY_NOTICES.txt, README.md The license, the third-party notices and a readme covering the setup on this page.

None of the Photon Realtime headers ship in this package, since no Realtime Core header includes one. To call those libraries directly, take the Photon Realtime Headers download.

Libraries

Realtime Core is two static libraries.

Library Contents
common Logging, Result and Error, Task and coroutine helpers, the broadcaster and subscription primitives, and the string and span compatibility shims.
matchmaking RealtimeClient and the matchmaking layer: connecting, region selection, creating and joining rooms, room and player views, custom properties, events and network statistics.

The C API is a third, optional library. c_api is a shared library on Windows, macOS, Linux, Android and Xbox, and a static library on iOS, tvOS, visionOS, Web, PlayStation and Nintendo Switch. It ships beside the static libraries under RealtimeCore/lib/<platform>/<arch>/.

Library filenames record the build they came from as <library>_<platform>_<arch>[_<toolset>]_<config>[_<runtime>][_<variant>]. A release build for Windows x64 against the static runtime produces common_windows_x86_64_release_mt.lib and matchmaking_windows_x86_64_release_mt.lib. <toolset> (vc14 to vc17) is present only in builds pinned to one MSVC toolset, and <variant> only on platforms that ship several builds per configuration.

<runtime> is present on the MSVC builds and must match your own build: _mt for the static runtime (/MT), _md for the dynamic runtime (/MD), _mtd for the static debug runtime (/MTd). No /MDd build ships: the _md libraries are built against /MD in Debug as well as Release, so link them with /MD in both.

With CMake

cmake

find_package(RealtimeCore REQUIRED PATHS <package root> CMAKE_FIND_ROOT_PATH_BOTH)
target_link_libraries(app PRIVATE RealtimeCore::Matchmaking)

<package root> is the directory that contains RealtimeCore/. The package defines three imported targets:

Target Contents
RealtimeCore::Matchmaking The C++ API. Carries the include path, RealtimeCore::Common, the Photon Realtime libraries in link order, the platform system libraries and the C20 requirement.
RealtimeCore::Common The common library, with the include path and the C20 requirement.
RealtimeCore::CAPI The C API, in place of the C++ one. Where c_api is a static library, it also carries RealtimeCore::Matchmaking and defines REALTIME_CAPI_STATIC.

CMAKE_FIND_ROOT_PATH_BOTH is needed when cross-compiling: the package root is a host path, and the Android, Apple and Emscripten toolchains otherwise search only the SDK sysroot. On a native build it changes nothing.

On Windows, pin the MSVC runtime before find_package. CMake defaults to /MDd in Debug, which the package does not ship, so an unpinned project fails to configure:

cmake

set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")  # or MultiThreaded, MultiThreadedDebug

A package can hold several platforms, architectures, configurations and runtimes side by side, and find_package picks the variant matching your project from CMAKE_SYSTEM_NAME, the target architecture, CMAKE_MSVC_RUNTIME_LIBRARY and the MSVC toolset. Where it cannot tell, set the selection before find_package:

Variable Value
RealtimeCore_PLATFORM The platform token as in lib/<platform>/: windows, linux, macos, ios, tvos, visionos, android or wasm.
RealtimeCore_ARCH The architecture token as in lib/<platform>/<arch>/.
RealtimeCore_MSVC_RUNTIME mt, md or mtd.
RealtimeCore_TOOLSET vc14, vc15, vc16 or vc17.
RealtimeCore_WASM_VARIANT The Web variant, e.g. sidemodule_longjmp-wasm.

Console builds are not derivable from CMake's own variables, so they set RealtimeCore_PLATFORM and RealtimeCore_ARCH themselves. A console package documents its tokens in RealtimeCore/cmake/platforms/. A choice that matches nothing is a configure error listing what the package holds.

Without CMake

Add the package root to your include path and RealtimeCore/lib/<platform>/<arch>/ to your library path, then link, in this order:

matchmaking  common  LoadBalancing-cpp  Photon-cpp  Common-cpp

Keep that order: GNU ld resolves an archive only against symbols still undefined when it reaches it.

The libraries carry no usage requirements of their own, so name the system libraries too:

Platform System libraries
Windows, Xbox winhttp, Bcrypt, ws2_32, winmm
Apple the CoreFoundation, Foundation, CFNetwork and Security frameworks, -lobjc
Linux, Android -lpthread

On Android and Apple platforms, Photon-cpp also needs the prebuilt crypto archive shipped in the same directory, and on Android ssl and websockets too, linked after Common-cpp in the order websockets, ssl, crypto. They keep their upstream file names, e.g. libcrypto_release_android_arm64-v8a.a.

For the C API, include RealtimeCore/CAPI/RealtimeCAPI.h and link c_api. Where it is a shared library, it is the only Realtime Core library you name. Where it is a static library, link it ahead of the libraries above and define REALTIME_CAPI_STATIC when compiling against the header.

Include Paths

Add the package root, the directory that contains RealtimeCore/, to your include paths. It is the only include path Realtime Core needs, and the CMake targets carry it.

Headers are namespaced by library, so include them by their full path:

C++
C

C++

#include "RealtimeCore/Matchmaking/RealtimeClient.h"
#include "RealtimeCore/Common/Logger.h"

C

/* One header carries the whole SDK Bindings*/
#include "RealtimeCore/CAPI/RealtimeCAPI.h"

The namespaced layout keeps the header names from colliding with your own headers, and with the headers of the Photon Realtime Headers download, several of which share a filename with a Realtime Core header.

Next Steps

Create an App Id in the Photon Dashboard, then follow the Quick Start Guide to connect your first client.

Last updated on

Back to top