Java Swing does not reliably pick up desktop display scaling on every
Linux session (tiny text on HiDPI laptops). Detect the display scale from
the default GraphicsConfiguration transform (falling back to screen DPI)
and multiply all font sizes by it, plus the window size. Add live zoom via
Ctrl +/-/0 as a guaranteed manual override.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Semantic output model (Style/Span/StyledText) + RoomView/Hud views,
GameIO extended additively (write(String) stays as default), ConsoleIO
(ANSI + box-drawing, tiered glyph modes) and SwingIO (region layout,
JTextPane, bundled font) renderers, command + TestIO migration. Map,
menu, save, music explicitly deferred to later sub-projects.
Also: capture "don't overwhelm / distribute info across regions" and
"B baseline + ASCII for big moments" decisions in the backlog.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- decisions: standard collections only, libraries allowed
- main menu + settings + saved-games list
- save/load system
- GUI music: per-room via YAML, external folder, compressed + streamed
- game core: "restore the power" main goal, 5-piece mechanic spine,
quest chain routing the player room-by-room, condensed by design
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Living backlog of ideas to take the game beyond the required minimum:
richer presentation, nerd-font strategy, map, quest system, ~60-min
content expansion. No design committed yet.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>