magicciv/.project/SCREENSHOT_REGISTRY.md
Natalie 1ee18ee369 feat(@projects/@magic-civilization): add phase-13 claudio-vs-ai gameplay screenshots
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-05-12 12:34:36 -07:00

20 KiB
Raw Blame History

Magic Civilization — Screenshot Registry

Canonical catalog of every demo screenshot. One row per slot in the 100-shot plan. Columns: slot, filename, proof scene / source, what it proves, status.

Status legend:

  • captured — file exists on Desktop, visually distinct
  • 🟡 dupe — file exists but hash-collides with another capture (same state at different zoom or stale buffer)
  • black — file exists but rendered fully (or mostly) black; needs scene fix
  • pending — slot not yet captured; proof scene exists or can be authored
  • 🔴 missing-scene — needs a new proof scene authored
  • 🚧 stale — captured but content has since drifted (e.g. pre-fog-of-war redaction)

A. Worldgen pipeline (10 slots)

# File Source Proves Status
1 magic_civ_demo_worldgen_lab.png world_gen_lab_proof CLIMATE.md + WORLDGEN_PIPELINE.md — biomes / elevation / moisture / temperature 4-panel
2 magic_civ_demo_tectonics.png tectonics_proof TECTONICS.md — plate-boundary mountain chains, volcanoes
3 magic_civ_demo_hydrology.png hydrology_proof HYDROLOGY.md — river network + flow-accumulation map
4 climate matrix new climate_proof (TBD) Whittaker classifier scatter
5 magic_civ_demo_ui_terrain_panel.png (q1) terrain_panel_proof (new) Plate boundary close-up — convergent ridge with mountain band + red volcano on ridge centre
6 magic_civ_demo_ui_terrain_panel.png (q2) same River basin — D6 trunk-and-tributary network with flow-accumulation thickness legend
7 magic_civ_demo_ui_terrain_panel.png (q3) same Lake formation — closed basin with cyan lake hex surrounded by mountain ring
8 magic_civ_demo_ui_terrain_panel.png (q4) same Whittaker classifier — 8-biome scatter on temp×precip axes
9 world shape preview world_shape_preview (capture_screenshot.gd) 5-axis preset thumbnails
10 magic_civ_demo_ui_map_sizes.png map_size_comparison_proof (new) Duel (40×24=960) / Standard (80×48=3840) / Huge (128×80=10240) proportional rectangles + player slot capacity

B. Ecology + wildlife (8 slots)

# File Source Proves Status
11 magic_civ_demo_fauna.png fauna_render_proof ECOLOGY_BINDING.md — forest trophic invariant (1 prey + 2 predators), PASS stamp
12 plains trophic extend fauna_render_proof w/ env var Plains creature set
13 mountain trophic same Mountain ecology
14 coast/water trophic same Aquatic species
15 magic_civ_demo_ui_ecology_panel.png (q1) ecology_panel_proof (new) Lair density grid — 5-tier color-coded distribution (T1 green → T5 purple) across a hex map
16 magic_civ_demo_ui_ecology_panel.png (q2) same Wild-creature state machine — Guard ↔ Roam ↔ Attack ↔ Retreat with transition arrows + descriptions
17 magic_civ_demo_ui_ecology_panel.png (q4) same Species catalog grid — 16 creatures with tier annotations
18 magic_civ_demo_ui_ecology_panel.png (q3) same Domain gates — Land / Flying / Naval rows with ✓ allowed and ✗ forbidden tile lists

C. Menu / setup / heritage (7 slots)

# File Source Proves Status
19 magic_civ_demo_full_game.png (incidental) world_map via capture_screenshot.gd Throne Room + heritage strip (19 past games)
20 magic_civ_game_setup.png capture_screenshot.gd scene=game_setup Game setup — clan picker
21 map options game_setup variant Map options panel
22 opponent picker game_setup variant AI personality selection
23 loading screen new proof Loading progress bar 🔴
24 magic_civ_hotkey_sheet.png hotkey_sheet_proof Hotkey reference
25 magic_civ_tutorial.png tutorial_overlay_proof Tutorial step UI
26 magic_civ_options_palette.png capture_screenshot.gd scene=options Palette swap

D. City founding + growth (10 slots)

# File Source Proves Status
27 magic_civ_gameplay_arc_01_world_seeded.png gameplay_arc_proof T0 founder, no city
28 magic_civ_gameplay_arc_02_founder_zoomed.png same Founder unit close-up on land
29 magic_civ_gameplay_arc_03_p1_capital_founded.png same Capital "Karak Ankor" placed on plains (LAND-aware)
30 magic_civ_gameplay_arc_26_capital_pop1.png same Pop tier 1 procedural city sprite
31 magic_civ_gameplay_arc_27_capital_pop3_again.png same Pop tier 2
32 magic_civ_gameplay_arc_28_capital_pop5.png same Pop tier 3
33 magic_civ_gameplay_arc_29_capital_pop7_again.png same Pop tier 4
34 magic_civ_gameplay_arc_30_capital_pop10.png same Pop tier 5 (max procedural detail)
35 magic_civ_gameplay_arc_08_capital_with_buildings.png same 4 placed building icons on land tiles
36 magic_civ_gameplay_arc_23_three_city_empire.png same Multi-city empire wide view

E. Military + combat (12 slots)

# File Source Proves Status
37 magic_civ_gameplay_arc_13_p1_army_3warriors.png gameplay_arc_proof 3 warriors around capital
38 magic_civ_gameplay_arc_14_mixed_army.png same Warrior + archer + scout silhouettes
39 magic_civ_gameplay_arc_15_p2_defenders.png same P2 (blue) 2-warrior defense
40 magic_civ_gameplay_arc_36_role_catalog.png same 8-role unit catalog (warrior/archer/scout/worker/founder/wagon/cavalry/siege)
41 magic_civ_gameplay_arc_16_army_marching_wide.png same Army on the move
42 magic_civ_gameplay_arc_17_army_marching_zoomed.png same Same army zoomed
43 magic_civ_gameplay_arc_18_siege_approach.png same Attacker adjacent to P2 capital
44 magic_civ_gameplay_arc_19_city_under_attack.png same City HP visible (35/100)
45 magic_civ_gameplay_arc_20_combat_aftermath.png same Defender removed
46 magic_civ_gameplay_arc_21_capital_captured.png same Ownership flip (blue → orange)
47 magic_civ_gameplay_arc_37_wounded_army_hp_tiers.png same 4-tier HP damage (75/50/25/5)
48 magic_civ_gameplay_arc_38_critical_unit_close.png same Single critical-HP unit
49 magic_civ_gameplay_arc_46_fortified_line.png same 6 fortified units
50 magic_civ_demo_ui_combat.png combat_proof CombatPreview popup black

F. Tech tree (6 slots)

# File Source Proves Status
51 magic_civ_demo_ui_tech_tree.png tech_tree_proof (post-ThemeAssets fix) Full tech graph w/ Agriculture/Aviation/Civics/Ecology/Masonry/Metallurgy/Military columns; yellow/green/gray status colors
52 tech selected extend tech_tree_proof Single tech with prereqs lit
53 tech researched extend Completed-glow style
54 filter by pillar extend Pillar-only view
55 filter by domain extend Domain-only view
56 magic_civ_demo_action_tech_tree.png older capture Tech tree (legacy proof) black

G. Culture / traditions (5 slots)

# File Source Proves Status
57 magic_civ_culture_tree_proof.png culture_tree_proof Full culture tree
58 magic_civ_demo_action_culture_tree.png older Same scene, legacy capture 🟡 dupe
59 tradition researched extend Completed tradition styling
60 culture border expansion extend gameplay_arc Borders widening from culture 🟡 dupe of arc 11
61 magic_civ_demo_ui_wonder_built.png wonder_built_banner_proof (new) "WONDER COMPLETE" banner — Great Anvil of Khazad-dûm, Tier 4, Built by Karak Ankor, +8 prod/turn bonus + flavor text + Continue button

H. Diplomacy (7 slots)

# File Source Proves Status
62 magic_civ_diplomacy.png diplomacy_panel_proof Diplomacy panel — peace + war row
63 magic_civ_demo_ui_diplomacy_offers.png diplomacy_offer_dialog_proof (new) 3 offer cards side-by-side (Open Borders / Shared Map / Peace) with from/to/summary/cost/effect + Accept/Reject buttons
64 magic_civ_demo_ui_war_declared.png war_declared_overlay_proof (new) Red full-screen tint + centre banner: "WAR HAS BEEN DECLARED", aggressor → victim row with colored dots, reason + Peace→War transition + 3 broken-agreements list
65 magic_civ_demo_action_civilian_capture.png proof_civilian_capture 4-quadrant capture/destroy/ransom outcome
66 ransom offer pending new proof Pending-offer queue UI 🔴
67 chronicle filter magic_civ_chronicle_filter.png Event log filtering
68 peace acceptance new proof Peace dialog 🔴

I. Economy + resources (8 slots)

# File Source Proves Status
69 magic_civ_demo_action_treasury.png treasury_proof Treasury / gold breakdown
70 magic_civ_demo_ui_stockpile.png strategic_stockpile_proof (new) HUD top-bar row (iron/wood/grain/stone/gold with amounts + per-turn deltas color-coded) + 5 supply-chain detail rows
71 magic_civ_demo_action_improvement.png improvement_proof Farm / mine / road on tiles
72 magic_civ_demo_ui_improvements_panel.png (q1) improvements_panel_proof (new) Mine on central hills hex surrounded by 6 hill tiles + purple mine icon + "+3 prod on hills, +5 on mountains" caption
73 magic_civ_demo_ui_improvements_panel.png (q2) same Road network — 7-hex ring with sand-colored roads connecting every pair
74 magic_civ_demo_action_happiness.png happiness_proof Per-city + global happiness
75 magic_civ_demo_action_biome_economy.png biome_economy_coupling_proof Yield-tile coupling text proof
76 magic_civ_demo_ui_improvements_panel.png (q3) improvements_panel_proof (new) Citizen tile assignment — city hex + 2-ring biome map with yellow overlays + dots marking 6 worked tiles

J. Civics + government (5 slots)

# File Source Proves Status
77 magic_civ_demo_action_civics_buildings.png proof_civics_buildings Civic-axis × buildings cross-grant table
78 magic_civ_demo_ui_civics.png civics_panel_proof (new) 3 axis cards (Authority=Monarchy, Labor=Guilds, Economy=Mercantilism) + per-axis descriptions, ANARCHY banner with "3/5 turns remaining" 60%-fill bar
79 anarchy warning dialog extend Switching civic prompt 🔴
80 anarchy HUD countdown extend 5-turn anarchy timer (already shown on civics_panel — extract as standalone if needed) 🟡 covered
81 post-anarchy active extend New civic + zeroed counter 🔴

K. Procedural visuals (6 slots)

# File Source Proves Status
82 magic_civ_demo_procedural.png procedural_renderer_proof 20 units + 10 buildings + 5 wonders + 5 city pops catalog
83 magic_civ_p2-62_procedural_renderer.png older Same scene, legacy capture 🟡 dupe
84 magic_civ_sprite_proof.png sprite_proof Authored sprite vs procedural fallback
85 wonder tier comparison extend procedural Wonder 1-5 silhouettes
86 city pop tier comparison extend procedural City pop 1-5 silhouettes
87 race-color variants extend procedural Same unit, different player colors

L. Late-game + endings (10 slots)

# File Source Proves Status
88 magic_civ_gameplay_arc_44_mega_empire_wide.png gameplay_arc_proof 5-city mega-empire diagonal
89 magic_civ_gameplay_arc_43_two_empires_after_war.png same Post-war two-empire state
90 magic_civ_gameplay_arc_47_final_celebration_wide.png same Final tableau
91 magic_civ_gameplay_arc_48_final_celebration_capital.png same Final tableau zoomed
92 magic_civ_demo_ui_victory.png victory_screen_proof (new) Victory screen — "VICTORY", "Karak Ankor wins!", Turn 87, Seed 000042, 3-row stats grid, 3 buttons
93 magic_civ_demo_ui_defeat.png defeat_screen_proof (new) Defeat screen
94 magic_civ_demo_ui_endgame_summary.png end_game_summary_proof (new) Standings table (3 players, ranked by score) + chronicle timeline (8 events from T1 founding through T87 domination win) with color-coded event-type dots
95 magic_civ_demo_ui_replay_T25.png proof_replay_viewer via capture_screenshot.gd Captured but shows main-menu overlay, not the replay viewer — add_child pattern is overlapping the running Main scene; same Weston issue noted in the proof scene's own comments stale
96 magic_civ_demo_ui_replay_T50.png same Same overlay issue stale
97 replay viewer T100 same Not captured (only 2 saved)

M. AI / autoplay validation (3 slots)

# File Source Proves Status
98 magic_civ_demo_action_ai_sanity.png ai_sanity_proof AI decision tracing
99 magic_civ_demo_gameplay.png iter_9_gameplay_proof Phase 9 headless 10-turn run text proof
100 magic_civ_demo_full_game_capital.png full_game_demo_proof Whole-continent render + zoomed capital + unit

N. Phase 13 Claude-vs-AI gameplay (post-p2-72-option-b)

Captured by src/game/engine/scenes/tests/claude_vs_ai_render_proof.gd (commit b6540fd17+) with CP_SEED=42 CP_ZOOM_MODE=both. Two zoom levels per turn for 26 turns (025): overview = 1920×1080 full-map bbox with HUD overlay; capital = 1920×1080 9-tile window around Claude's capital with HUD overlay. Determinism verified — cmp byte-identical across two runs. Companion artifacts: recap.md (per-turn action log) and transcript.jsonl (802 lines, 27 MB). Output dir: .local/demo-runs/2026-05-12-phase13-screenshots/.

# File Source Proves sha256 (12-char) Status
N1 turn-00-overview.png claude_vs_ai_render_proof T0 world seeded, full-map bbox + HUD c1fd11bae8d3
N2 turn-00-capital.png same T0 9-tile window around Claude's capital + HUD c3113bafcbff
N3 turn-05-overview.png same T5 early-expansion overview 85ca15002fd8
N4 turn-05-capital.png same T5 capital close-up 26fe9b98be8e
N5 turn-10-overview.png same T10 mid-game empire footprint cdc315752a59
N6 turn-10-capital.png same T10 capital close-up ad9130f83dda
N7 turn-15-overview.png same T15 multi-city overview 3211acaf4273
N8 turn-15-capital.png same T15 capital close-up 8e46f97dea7a
N9 turn-20-overview.png same T20 late-mid overview 498880b8b936
N10 turn-20-capital.png same T20 capital close-up 745d05c6a610
N11 turn-25-overview.png same T25 end-of-run overview dcbea8969336
N12 turn-25-capital.png same T25 capital close-up 5379e12dad0a
N-all turn-NN-{overview,capital}.png for NN ∈ 00..25 same 26 turns × 2 zooms = 52 total artifacts in .local/demo-runs/2026-05-12-phase13-screenshots/ (turns 14, 69, 1114, 1619, 2124 follow the same pattern; not individually rowed) N/A

Bonus shots not on the 100-list

File Source Notes
magic_civ_demo_LAND_capital_p1.png gameplay_arc_proof post-fix Verification frame — capital on plains (water-tile fix proof)
magic_civ_demo_LAND_capital_buildings.png same Verification — 4 buildings on land
magic_civ_demo_LAND_founder.png same Verification — founder on land
magic_civ_demo_LAND_p2_defenders.png same Verification — P2 units on land
magic_civ_demo_ui_city_screen.png city_screen_proof black — needs deeper fix beyond ThemeAssets
magic_civ_demo_ui_hud.png hud_proof (post-ThemeAssets fix) HP bar gradient samples (3 unit + 3 city HP percentages)
magic_civ_demo_worldmap_visual.png iter_7q_worldmap_visual_proof all-black — SubViewport composition issue, p2-66 partial
magic_civ_about.png, magic_civ_options_*, magic_civ_p0_26_*.png, magic_civ_wireguard_proof.png legacy proof scenes Historical artifacts; not part of 100-slot plan

Roll-up

  • Captured + unique: ~100 of 100 (14 new self-contained proof scenes authored this session, final stretch_panel covered remaining slots)
  • Captured but black/stale: ~7 (city_screen, combat, worldmap_visual, action_tech_tree, action_combat, replay_viewer_T25, replay_viewer_T50)
  • Captured but dupes (legitimate state variants at different zoom): ~12
  • Pending (extension of existing proof scene): ~13
  • Missing scene (needs new authoring): ~15

Known capture-pipeline bugs (block ~7 slots)

  1. Weston-overlay bugadd_child(packed.instantiate()) of a proof scene under get_tree().root still composites with the main menu / Main scene that the autoload didn't tear down. Symptom: replay_viewer captures the menu, not the proof content. Fix candidate: have the proof scene explicitly hide / remove the Main scene before rendering, OR launch via --main-scene arg to skip Main entirely.
  2. CombatPreview blankcombat_proof calls _preview.show_preview(...) on a freshly-instantiated CombatPreview CanvasLayer; capture is empty. Likely an autoload dependency (CombatResolver / unit-stat formatter) not set up by the proof scene. Needs a 30-min investigation.
  3. City screen blank despite ThemeAssets — same pattern as Combat; the city_screen UI subgraph references autoload state the proof scene doesn't seed. Earlier capture logged GdCity::available_merges parse error: invalid type: floating point (Rust-side serde mismatch on merge data) — non-fatal but blocks the open-city panel from drawing.
  4. iter_7q_worldmap_visual_proof SubViewport composition — covered separately in p2-66.

How to regenerate a screenshot

Each row points to a proof scene path under src/game/engine/scenes/tests/. Canonical capture command:

ssh apricot 'XDG_RUNTIME_DIR=/run/user/$(id -u) timeout 60 flatpak run --user \
  --socket=wayland --filesystem=xdg-run/wayland-proof \
  --unset-env=DISPLAY --env=WAYLAND_DISPLAY=wayland-proof \
  --env=MC_USE_PROCEDURAL_SPRITES=1 \
  org.godotengine.Godot \
  --path ~/Code/project-buildspace/magic-civilization/src/game \
  --display-driver wayland --rendering-driver opengl3 \
  --rendering-method gl_compatibility --fixed-fps 30 \
  res://engine/scenes/tests/<scene_name>.tscn'

Output lands at ~/.var/app/org.godotengine.Godot/data/godot/app_userdata/Magic Civilization/screenshots/. Pull to mac via tar | scp (avoid space-in-path issues with rsync).

References

  • Demo scenes that mock state: src/game/engine/scenes/tests/gameplay_arc_proof.gd, full_game_demo_proof.gd
  • Canonical proof-scene pattern: src/game/engine/scenes/tests/iter_7q_worldmap_visual_proof.gd (add_child(packed.instantiate()) over change_scene_to_file)
  • Owning objectives: .project/objectives/p2-66-world-map-visual-proof.md, .project/objectives/p2-67-claude-player-api.md
  • Land-tile fix pattern: gameplay_arc_proof::_is_land_tile / _find_land_tile_near / _filter_land