Skip to content

Rebuild the showcase level in metres - #1360

Merged
saworbit merged 1 commit into
mainfrom
fix/showcase-metres
Oct 20, 2026
Merged

saworbit merged 1 commit into
mainfrom
fix/showcase-metres

Conversation

@saworbit

Copy link
Copy Markdown
Owner

Summary

tools/build_showcase_scene.gd laid the hall out on the Quake-family grid (HALF_W 24, HALF_D 32, WALL_H 26) and stacked 0.7 m dais risers, which HFTraversalCheck refuses against the player's 0.4 m step. The constants are now metres on a 0.25 m grid: a 12 by 16 m hall, 6 m walls, 0.5 m wall and floor thickness, 2 m sills, 5 m heads, 4 m door, 3.5 m gallery, three 0.25 m risers to the dais, 2 m towers 7.5 m tall. The colonnade, gallery, window bays, dais, towers and the four stages are unchanged in shape.

One correction beyond the issue: faces project their texture in world space since #652, so uv1_scale is repeats per metre, not per face; the old per-face counts would have tiled a dozen times a metre on the small hall (rendered and seen). One repeat a metre reproduces the committed look, and the per-entry uv column is gone.

tests/test_showcase_level_check.gd loads the showcase and its three stages with the real LevelRoot, runs validate_level(false) and asserts no issues, that the level fits 16 by 10 by 20 m with the floor top at y 0, and that every dais step rises within the player's step height. On the old scenes it fails with the exact "Stairs from DaisStep0 to DaisStep2 rise 0.70 m" finding.

Cameras in tools/capture_showcase.gd and the docs capture's probe and editor cameras are scaled with the level; the workshop staging constants that sit on the starter ground are left alone. The three stills and the 21 editor shots are retaken from this branch and committed.

Before / After Behavior

  • Before: Run Check on the showcase reported its own stairs, and the README hero showed a hall sixteen player heights tall.
  • After: Run Check on the showcase reports nothing, and every image from the level shows it at the User Guide's scale.

Related Issue

Fixes #1331

Checks

  • test_showcase_level_check 4/4 (3/4 fail on the old scenes), test_traversal_validate 54/54, test_hflevel, test_reference_cleanup, test_hf_validation, test_suite_integrity
  • Stills rendered with tools/capture_showcase.gd and the editor shots with tools/capture_ui.py, both from this branch, and looked at: hero down the colonnade to the dais, overview clearing the towers, gallery framed
  • CI's gdformat and gdlint commands pass; check_script_warnings.py clean; samples/hf_demo_empty.tscn and every .hflevel untouched
  • A fragment in changelog.d/, no edit to CHANGELOG.md

The hall was laid out on the old Quake-family grid, 48 by 64 m with 26 m
walls, and Run Check named its own dais steps as too steep. It is now a 12
by 16 m hall with 6 m walls on a 0.25 m grid, three 0.25 m risers to the
dais, and every part in proportion, with the same colonnade, gallery,
window bays and towers and the same four stages. Textures repeat once a
metre, since faces project in world space (#652). A test loads the showcase
and its stages and asserts Run Check reports nothing. The cameras in the
stills capture and the docs capture follow the scale, and every image from
the level is retaken.
@saworbit
saworbit enabled auto-merge (squash) October 20, 2026 23:02
@github-actions github-actions Bot added area: docs README, guides, spec, roadmap, changelog area: ci Workflows, contributor tooling, dependency pins tests The GUT suite and its fixtures labels Oct 20, 2026
@saworbit
saworbit merged commit cbc5657 into main Oct 20, 2026
11 checks passed
@saworbit
saworbit deleted the fix/showcase-metres branch October 20, 2026 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci Workflows, contributor tooling, dependency pins area: docs README, guides, spec, roadmap, changelog tests The GUT suite and its fixtures

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Docs] Rebuild the showcase level in metres so it passes the level check

1 participant