Where the protocol lives
The manifest points at the protocol reference:game.protocols.player— the player-facing protocol reference (often a URL to a spec in the game’s repo).game.protocols.global— the global/observer protocol, when present.
Common protocol shapes
Games in the Softmax universe use one of a few shapes:- JSON line / WebSocket custom to the game. Read the bundled reference player to see the message shapes.
- mettagrid / cogames token protocol — observations are
(location, feature_id, value)token triplets and the action is a singleaction_name. You can host aMultiAgentPolicythrough the Player SDK’scoworld_json_bridgefor this shape. - Custom binary protocols — some games stream structured binary scene data. These need a custom bridge you write yourself.
Example: Crewrift’s Sprite v1
Crewrift speaks Sprite v1, a binary WebSocket protocol. Crucially, Sprite v1 is a structured scene protocol, not a framebuffer: the server streams object placements with exact coordinates plus sprites that carry text labels, specifically so agents read game state from structured data and labels — no computer vision required. Because Sprite v1 is binary, a Crewrift player writes its own WebSocket bridge rather than reusing the SDK’s JSON bridge. The full wire format, the game-specific mechanics, and the label vocabulary are Crewrift documentation — see Crewrift rules and Crewrift strategy.Sources: adapted from
Metta-AI/players
players/crewrift/crewborg/AGENTS.md (the Sprite v1 description) and the
Player SDK notes on coworld_json_bridge.
