16 d2 diagrams covering architecture (IPC bridge, system tiers, testability, audio bus), data flow (perception, dialogue, eavesdrop pipelines), entity (knowledge graph, NPC generation, dialogue tags), state (simulation tiers, movement stances, knowledge confidence), and UI (HUD layout, interaction flow, fog layers). PNG output for universal viewer compatibility. Removes test SVG from font debugging. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
109 lines
3.8 KiB
Plaintext
109 lines
3.8 KiB
Plaintext
# Fog System — Five Layers + Entity Rendering in Fog — D-059
|
|
# Shader-based, knowledge-graph-driven. Covers all five fog states
|
|
# and the entity types rendered within fogged areas.
|
|
|
|
vars: {
|
|
color-screen: "#1a1e24"
|
|
color-panel: "#2a3040"
|
|
color-text: "#c8d0e0"
|
|
color-nav: "#c8d8f0"
|
|
color-stroke: "#333340"
|
|
}
|
|
|
|
direction: right
|
|
|
|
kg_read: KnowledgeGraph\n(per character — D-041) {
|
|
shape: cylinder
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
fog_layers: Five Fog Layers {
|
|
style.fill: ${color-screen}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
|
|
l1: Layer 1 — Clear (vision cone)\nSoft gradient edge 6-8 sim tiles\n(= 3-4 visual tiles per D-066)\nNo hard line · Darkwood approach {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
style.bold: true
|
|
}
|
|
l2: Layer 2 — Light Fog (peripheral)\nDesaturated 40-50% · brightness -30%\nAnimated Perlin noise (8-10s cycle)\nD-033 entity colors visible but reduced {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
l3: Layer 3 — Deep Fog (explored)\nNear-monochrome + ~10% zone tint\n(bar=warm dark · hub=cool dark)\nMore pronounced noise (15-20s cycle)\nzone_id from ObserverSnapshot (D-077) {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
l4: Layer 4 — Unexplored (has maps)\nGeometric wireframe outlines\nInsert data aesthetic {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
l5: Layer 5 — Unexplored (no maps)\nSolid near-black\nInformation zero {
|
|
style.fill: ${color-screen}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
fog_entities: Entities in Fog {
|
|
style.fill: ${color-screen}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
sound_ping: Sound Ping\n2-3 concentric expanding rings\n(sonar-style · insert white-blue)\nLoud=3 rings bright · quiet=1 ring faint\nFade over 1.5s {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
}
|
|
recognized: Recognized Entity\nD-033 color glow + silhouette feature\n(e.g. identifying clothing detail)\n0.8s breathing pulse\n+/-0.5 tile position drift {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
}
|
|
unrecognized: Unrecognized Entity\nneutral grey blob\nno silhouette · no identity {
|
|
style.fill: ${color-panel}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
divergence: "Same fog, different information per character\nSmuggler: recognizes dock workers = green icons\nDetective: same entities = grey blobs\n\nFog is not darkness —\nit is the absence of your attention." {
|
|
shape: page
|
|
style.fill: ${color-screen}
|
|
style.stroke: ${color-nav}
|
|
style.font-color: ${color-text}
|
|
style.italic: true
|
|
}
|
|
|
|
perf: Performance Budget\n<1ms/frame total\nVision cone = PointLight2D\nFog = CanvasGroup noise shader (Layer 5)\nSound pings = 0-5 sprites\nEntity ghosts = 0-10 sprites typical {
|
|
shape: package
|
|
style.fill: ${color-screen}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
kg_read -> fog_layers: "determines entity recognition\n(which observer sees which entities)" {
|
|
style.stroke: ${color-nav}
|
|
}
|
|
kg_read -> fog_entities.recognized: "KnowsOf+ → recognized" {
|
|
style.stroke: ${color-nav}
|
|
}
|
|
kg_read -> fog_entities.unrecognized: "Suspects / none → blob" {
|
|
style.stroke: ${color-stroke}
|
|
}
|
|
fog_layers -> fog_entities: "entities rendered within fog state" {
|
|
style.stroke: ${color-stroke}
|
|
}
|
|
fog_layers -> divergence: "same shader, per-character KG" {
|
|
style.stroke: ${color-nav}
|
|
style.stroke-dash: 4
|
|
}
|
|
fog_layers -> perf
|