Systems Architecture
Fate's Edge is a system of systems: a tabletop ruleset, an LLM-driven Game Master built on top of it, a real-time transport fabric connecting a dozen client surfaces to that GM, and an optional voice pipeline layered on top of all of it.
The full write-up lives in fates-edge-docs/ARCHITECTURE.md (companion to fates-edge-ai-gm-bot's DESIGN.md) โ this page is the map, not the territory.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Layer 4 โ Voice: Chatterbox (TTS) โ voice-adapter โ RVC (optional) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 3 โ Clients: web ยท desktop ยท terminal ยท Discord ยท Roll20 ยท โ
โ Foundry ยท Python CLI/GUI โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 2 โ Transport: socket server (Socket.IO + plain WS, rooms) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 1 โ AI GM Bot: driver-agnostic LLM orchestration, tag DSL, โ
โ adventure state machine โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Layer 0 โ Rules Engine: d10 pool, Outcome Matrix, Position, SB, โ
โ Boons, Obligation, Timers โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Layer 0 is a formal system the game defines and the software encodes. Layer 1 is the only layer that talks to an LLM at all โ everything from Layer 2 down has no idea an AI is involved. A human GM running the same socket server, web client, and voice pipeline gets identical infrastructure. That separation is deliberate, and it's why every layer above Layer 0 is genuinely optional.
Layer 0 โ Rules Engine
A deterministic d10 pool system: Outcome Matrix, Position, Stress/Boons, Obligation, and Timers. No hidden GM logic, no opaque heuristics โ anything the AI GM decides, a human GM (or a script) could decide the same way from the same visible state.
Layer 1 โ AI GM Bot
Driver-agnostic LLM orchestration over an adventure state machine, communicating exclusively through the tag-based GM protocol below. Swapping LLM providers, or removing the AI entirely, doesn't touch layers 2โ4.
Tag DSL / GM Protocol
Every GM action โ scene transitions, skill check outcomes, state changes โ is expressed as a small, typed, test-covered directive rather than free-form text. This is the highest-leverage place to contribute if you want to extend what the GM (human or AI) can express. See Ways to Contribute.
Layer 2 โ Transport
A socket server (Socket.IO plus plain WebSocket, room-based) that gives every client surface โ web, desktop, terminal, Discord, Roll20, Foundry, Python โ identical real-time event access to a session, regardless of which GM (human or AI) is running it.
Layer 3 โ Clients
Web client, desktop client, terminal (ANSI) client, and bridges into Discord, Roll20, Foundry, and a Python CLI/GUI. Each one only needs to speak the room protocol from Layer 2.
Layer 4 โ Voice Stack
Chatterbox (TTS) โ voice-adapter โ RVC (voice cloning), fully optional and toggleable independently of everything else.
Repositories
- fates-edge-ai-gm-bot โ rules engine, AI GM, tag protocol, transport layer
- fates-edge-apps โ web client, terminal client, voice tools, utilities
- fates-edge-docs โ rulebook, SRD, Art Bible, worldbook, architecture doc