ludic/changes/ui-preview.md
Orkuncakilkaya 49b5e80af5 ludic ui-preview: ludic.ui components previewed for a studio over stdio (R5)
A prebuilt tool, bin/ludic-ui-preview (built by ludic-dev build, shipped beside ludic-lsp, run as
`ludic ui-preview [--font DIR]`): ludic.ui with a backend that records every draw call as a line,
and mock component classes the studio describes (load / model / calls). frame t runs ui_show at
interface time t; text is measured on the CPU with the game's font.json metrics; locale goes
through ludic.i18n; tree / box / rules inspect the frame. No game code, no GPU, no network. The wire
protocol is frozen as tools/ui-preview/protocol-v1.md; smoke.txt is a transcript to run.

ludic.ui gains, all additive: UiClass.make_of, UiBackend.said / emitted, UiRule.text / at (with
comment line breaks kept so rule lines count true, and a class's styles read under its .lss path),
and ui_root, ui_find, ui_rules_of, ui_rule_value, ui_building, ui_class, ui_class_load,
ui_file_forget, ui_errors_clear; ui_nine_cuts_into exported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 19:53:26 +03:00

1.2 KiB

bump: minor type: feature ludic ui-preview: a game's ludic.ui components previewed for a studio, over stdio. A new prebuilt tool (bin/ludic-ui-preview, built by ludic-dev build and shipped beside ludic-lsp) that is ludic.ui with a backend that records every draw call as a line of text, and component classes the studio describes: their template and styles (load, unsaved text welcome), their model (model), their functions' answers (calls). frame t runs ludic.ui's own frame - build, cascade, layout, input, draw - at interface time t and writes the draw list, then what happened (template errors with file and line, calls, sets, emits, sounds); text is measured with the game's font.json metrics on the CPU, translated through ludic.i18n with locale, and tree / box / rules inspect the frame, rules with the file and line they were written on. No game code, no GPU, no network. The wire protocol is frozen as tools/ui-preview/protocol-v1.md. ludic.ui gains what it needs, all additive: UiClass.make_of, UiBackend.said / emitted, UiRule.text / at, and ui_root, ui_find, ui_rules_of, ui_class, ui_class_load, ui_file_forget, ui_errors_clear, ui_building.