CrowdyCPP SDK
CrowdyCPP is the official portable C++ SDK for Crowded Kingdoms: github.com/CrowdedKingdoms/CrowdyCPP. It gives native games typed clients for authentication, the Management API and Game API GraphQL surfaces, and — unlike the browser-first CrowdyJS SDK — a native UDP replication client that speaks the Replication API wire protocol directly to the replication servers.
The transport stance
The single most important thing to understand about CrowdyCPP:
Replication is always native UDP, direct to the replication server.
CrowdyJS routes realtime traffic through the Game API's GraphQL UDP proxy because browsers cannot open raw UDP sockets. CrowdyCPP has no such constraint: it opens a UDP socket and implements the wire formats and HMAC scheme natively, with zero-copy binary framing and no GraphQL proxy in the hot path. There is no proxy mode in CrowdyCPP — if your client runs in a browser, use CrowdyJS instead.
Everything else mirrors CrowdyJS: the same domains, the same two-token model, and the same error codes, so the platform docs and examples translate directly between the two SDKs. See Compatibility and parity for the coverage guarantees.
Design pillars
- Portable. Standard C++20 and CMake on Linux, Windows, and macOS. No engine types, no framework assumptions.
- Zero-copy, zero-allocation hot path. After connect, the steady-state replication path performs no heap allocation (pooled datagram buffers), no copies on parse (payloads are spans into the receive buffer until you copy them), and no exceptions.
- Pluggable platform interfaces. Every platform dependency — HTTP, crypto, clock, logging, allocation — sits behind a small interface you can replace with your own implementation.
- Engine-wrappable. Usable directly by a native game, and equally designed to be wrapped by engine-specific SDKs such as the official Crowdy Unreal SDK. See Engine integration.
How to read this section
Work through it in order the first time:
- Installation — clone, build, and consume the library from CMake.
- Quick start — sign in, mint an app token, connect, and walk an actor around.
- Replication client — the native UDP connection: assignment, signed sends, verified receives, lifecycle.
- World session — SDK-managed game state: your actor's send loop, the remote-actor registry, the chunk cache, inboxes.
- Game Kit — blueprint builders and runtime kits for inventory, economy, combat, and the other genre layers.
- Engine integration — wrapping CrowdyCPP in Unreal and other engines.
- Compatibility and parity — server compatibility notes, CrowdyJS parity, and versioning.