34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
# coc-rpg
|
|
|
|
AI-driven single-player, party-based fantasy RPG. Godot 4 client, FastAPI proxy, AI as Dungeon Master.
|
|
|
|
**Read [`CLAUDE.md`](CLAUDE.md) first** — project charter and working agreement. It is the source of truth. If code disagrees with it, the charter wins until the charter is changed.
|
|
|
|
## The one rule
|
|
|
|
> **Code owns state. AI owns text.** (charter §2)
|
|
|
|
## Repo layout
|
|
|
|
```
|
|
/client Godot 4.7 game client (GDScript) — ALL game state, ALL game rules
|
|
/docs Client-specific docs (scenes, input, combat wiring)
|
|
/api FastAPI proxy — auth, metering, prompt routing, logging (charter §4)
|
|
/docs API-specific docs (endpoints, model routing, deploy)
|
|
/prompts Role prompts — source code, versioned, reviewed (charter §5, §16)
|
|
/content Authored game data — quests, NPC knowledge lists, fallback text
|
|
/quests Story skeletons and quest definitions
|
|
/npcs Per-NPC knowledge lists (charter §6 — "the whole design")
|
|
/fallback Authored degraded-DM text for every AI surface (charter §13)
|
|
/docs Cross-cutting docs — roadmap, ADRs, planning affecting both sides
|
|
/adr Architecture Decision Records
|
|
```
|
|
|
|
## The three processes (charter §4)
|
|
|
|
```
|
|
client (GDScript) ──HTTP──▶ api (FastAPI) ──▶ Replicate / Ollama
|
|
```
|
|
|
|
The client holds **no API key, ever**. It knows one base URL and a set of role endpoints. It sends game state, receives text.
|