B&W print-friendly diagrams + tinkerpop-0001 + wave-3 proof sections. Squash of 94 local commits onto remote master.
94 lines
3.4 KiB
Text
94 lines
3.4 KiB
Text
digraph mc_gameloop {
|
|
graph [
|
|
bgcolor="white"
|
|
fontname="Helvetica"
|
|
fontsize=10
|
|
rankdir=TB
|
|
pad=0.4
|
|
splines=curved
|
|
nodesep=0.4
|
|
ranksep=0.6
|
|
label="Minecraft Server Tick — Known Slow Paths (20 TPS target)"
|
|
labelloc=t
|
|
labeljust=l
|
|
fontsize=11
|
|
fontcolor="black"
|
|
]
|
|
node [
|
|
fontname="Helvetica"
|
|
fontsize=8
|
|
style=filled
|
|
fillcolor="white"
|
|
color="black"
|
|
penwidth=0.8
|
|
margin="0.12,0.06"
|
|
]
|
|
edge [
|
|
color="black"
|
|
penwidth=0.5
|
|
arrowsize=0.4
|
|
fontname="Helvetica"
|
|
fontsize=7
|
|
fontcolor="black"
|
|
]
|
|
|
|
// Server tick root — double border to show it's the entry point
|
|
tick [label="MinecraftServer.tick()\n50ms budget / tick" shape=box penwidth=1.5]
|
|
|
|
// Major subsystems — normal border
|
|
world [label="ServerLevel.tick()" shape=box]
|
|
chunks [label="ServerChunkCache\n.tick()" shape=box]
|
|
ents [label="Entity tick loop" shape=box]
|
|
blocks [label="Block tick\n(random + scheduled)" shape=box]
|
|
redst [label="Redstone\npropagation" shape=box]
|
|
|
|
tick -> world
|
|
tick -> chunks
|
|
world -> ents
|
|
world -> blocks
|
|
world -> redst
|
|
|
|
// Tag loading (startup/reload) — dashed = not-on-tick-path
|
|
reload [label="TagLoader\n(world load / /reload)" shape=box style="filled,dashed"]
|
|
// Defective node — thick border marks confirmed defect
|
|
ds [label="[!] minecraft-0001\nDependencySorter.isCyclic\nO(E^D) — no visited set\nExponential on diamond deps" shape=box penwidth=2.0 style="filled,dashed"]
|
|
reload -> ds [penwidth=1.5 label="called per edge"]
|
|
|
|
// Piston (block tick path) — thin border = bounded/LOW
|
|
piston [label="PistonStructureResolver\n.resolve()" shape=box]
|
|
ps [label="minecraft-0002\ntoPush.contains()\nO(P\u00b2) bounded<=12" shape=box style="filled,dashed" penwidth=0.5]
|
|
blocks -> piston
|
|
piston -> ps [penwidth=0.5 label="per activation"]
|
|
|
|
// Entity AI — normal
|
|
ai [label="GoalSelector.tick()\nBrain.tick()" shape=box]
|
|
path [label="PathNavigation\nPathFinder" shape=box]
|
|
ents -> ai
|
|
ai -> path
|
|
path_q [label="? scan pending\nA* open set structure" shape=box style="filled,dashed" penwidth=0.5]
|
|
path -> path_q [style=dashed penwidth=0.5 label="under investigation"]
|
|
|
|
// Redstone — medium border = MEDIUM defect
|
|
expredst [label="[!] minecraft-0003\nExperimentalRedstoneWireEvaluator\nDeque.contains() O(N) in BFS\nMEDIUM — flag-gated" shape=box penwidth=1.2 style="filled,dashed"]
|
|
redst -> expredst [penwidth=0.8 label="experimental flag" style=dashed]
|
|
|
|
// DefaultRedstoneWireEvaluator — CLEAN
|
|
defredst [label="DefaultRedstoneWireEvaluator\nCLEAN — separate Set+Deque" shape=box penwidth=0.5]
|
|
redst -> defredst [penwidth=0.5 label="default path"]
|
|
|
|
// Chunk
|
|
chunkmap [label="ChunkMap\ndependency tracking" shape=box]
|
|
chunks -> chunkmap
|
|
|
|
// Legend — shape-based encoding
|
|
subgraph cluster_legend {
|
|
label="Key"
|
|
fontsize=8
|
|
color="black"
|
|
penwidth=0.5
|
|
style=dotted
|
|
l1 [label="[!] thick border = confirmed defect" shape=plaintext fontsize=8 fontcolor="black"]
|
|
l2 [label="thin border = bounded / LOW / CLEAN" shape=plaintext fontsize=8 fontcolor="black"]
|
|
l3 [label="dashed box = deferred / flag-gated / not-on-tick-path" shape=plaintext fontsize=8 fontcolor="black"]
|
|
}
|
|
}
|