Game engines
PlayerThree's host is a Node/TypeScript program. A game server written in Godot, Unity, Unreal, C++, C#, Go or
another language runs it next to the server as a separate local process: the sidecar host. The game server keeps
the simulation and the clock. The sidecar runs a normal PlayerThreeHost and serves MCP, OAuth, guards, seats,
mandates, presence, policies and sessions.
game server ──stdio or Unix socket, NDJSON──▶ playerthree-sidecar ──MCP──▶ agents
simulation, adapter, bots, clock PlayerThreeHostThe two processes exchange newline-delimited JSON over the sidecar's stdin/stdout or an owner-only Unix socket, never a network interface. The game server sends its manifest as plain JSON, answers the adapter and bot calls one at a time, and advances the match tick by tick. The protocol is SPEC §20.8; the sidecar host page summarises it.
Engine SDKs
Each SDK wraps the protocol for its engine and ships the same Tug of War sample: two teams, one puller role, a
rope from −10 to 10 and pull intents. An MCP agent takes the north seat and plays against the built-in bot on
south.
| SDK | Language | Status |
|---|---|---|
| Godot | GDScript addon for Godot 4.5+ | Headless Godot 4.7.2 on Linux passes conformance. macOS and Windows are untested. |
| Unity and .NET | C# (netstandard2.1) core and a Unity package | The .NET core passes conformance. The Unity package wrapper is not yet compiled in Unity. |
| Unreal and C++ | C++17 core and an Unreal plugin | The C++17 core passes conformance. The Unreal plugin is not yet compiled in Unreal. |
Another language needs no SDK: a server that reads and writes JSON lines on a child process's pipes can speak the protocol directly.
Conformance
packages/sidecar/conformance holds the Tug of War manifest, a recorded
transcript, a mock engine in plain Node and the conformance runner. The runner is the real sidecar plus checks. The
game server spawns it in place of the sidecar over stdio, or the runner spawns the server on a socket:
node packages/sidecar/conformance/run.ts --stdio
node packages/sidecar/conformance/run.ts --socket -- <server command…>It seats an MCP agent, plays the match to its end, sends error-case calls and calls at the line-size limit, and compares the exchange with the transcript. It prints each check and exits 0 on a pass.
Everything is pre-release and runs from a checkout of the repository. Nothing is on npm, the Godot Asset Library, the Unity Asset Store or the Unreal Marketplace yet.
