Fusion Core Intro
Overview
Fusion Core is the engine-agnostic C++ networking SDK at the heart of Photon Fusion 3.
It provides state replication, remote procedure calls (RPCs) and area-of-interest management through a compact, single-threaded API.
The SDK runs on any platform with a C++20 compiler and integrates with any game engine through a thin binding layer you write.
The same SDK runs in two modes and three topologies, sharing one set of connection, object, RPC and interest-area APIs.
In Shared-Authority mode (SimulationMode::Shared) every client owns and simulates its own objects while the Photon server maintains a stateful cache for automatic late-join synchronization and interest management.
In Client-Server mode (SimulationMode::Authority) a simulation server is authoritative and ObjectOwnerModes::PlayerPredicted objects feed input from a designated predicting player; the SDK reconciles mispredictions via OnPredictionOverride / OnPredictionReset.
A complete integration supports both, so its users can ship either kind of game; the mode is selected per session through room configuration.
See Modes and Topologies for how the modes and topologies work.
Where to Go Next
Documentation Sections
Integration Guides
Practical patterns for building an engine integration.
| Document | Description |
|---|---|
| Quick Start Guide | Minimal integration skeleton: logging, construction, connection, frame loop, object creation, sync, shutdown. Complete working code. |
| Object Sync Patterns | Sync loop, Words buffer layout, type-to-word mapping, float bit-cast, 64-bit splitting, arrays, strings, shadow/dirty detection. |
| Sub-Objects | ObjectChild creation flow (authority and remote), pending queue pattern, dual handle pattern, required objects, string heap delegation. |
| Engine Binding | Object::Engine pointer, bidirectional registry, PackedObjectId, type hash convention, spawnable type registry, spawner/factory pattern. |
Pitfalls
| Document | Description |
|---|---|
| Pitfalls | 18 critical gotchas with wrong/right code examples: ObjectTail writes, iteration order, header inclusion, string leaks, spawn data strings, frame loop order, threading, CRT linkage, multi-map ordering, predicted-input ordering, FusionCAPI event-queue lifetime, MSVC runtime mismatch and more. |
Header-to-Documentation Mapping
| SDK Header | Primary Documentation Pages |
|---|---|
Client.h |
Quick Start Guide, Object Sync Patterns, Sub-Objects, Engine Binding, Pitfalls |
Types.h |
Object Sync Patterns, Sub-Objects, Pitfalls |
RealtimeClient.h |
Quick Start Guide, Pitfalls |
Broadcaster.h |
Quick Start Guide, Pitfalls |
SubscriptionBag.h |
Quick Start Guide, Pitfalls |
Task.h |
Quick Start Guide, Pitfalls |
Result.h |
Quick Start Guide, Pitfalls |
Buffers.h |
Object Sync Patterns |
StringHeap.h |
Object Sync Patterns, Sub-Objects, Pitfalls |
LogOutput.h |
Quick Start Guide |
Recommended Reading Order
For newcomers integrating the Fusion 3 SDK into a new engine:
Quick Start Guide -- End-to-end minimal working example: logging, client construction, connection via RealtimeClient, the frame loop, creating an object, syncing a property and shutdown.
Object Sync Patterns -- Deep dive into the Words buffer: how to map types to words, compute offsets, write/read floats and vectors, handle arrays and manage string properties via the StringHeap.
Pitfalls -- The 18 most common mistakes. Read this before writing production code. Each pitfall includes wrong/right code examples and a clear prevention rule.
Engine Binding -- How to connect SDK objects to engine objects: the bidirectional registry, type hash conventions, spawnable scene registration and the spawner/factory pattern.
Sub-Objects -- Advanced topic: creating child objects, handling the two-step creation flow, the pending queue for out-of-order arrivals, the dual handle pattern for authority checks and required objects.
After completing this sequence you will have a solid foundation for building a complete Fusion integration.
Refer back to individual guides as needed during implementation.