Twinned from https://github.com/cfsh/ninefold/issues/740 by tools/beads/import_github.py's reconcile pass.
Piece 15 of design 005's work breakdown (§8), under #686. Covers S18, settling Q4.
Trivial and independent of every other piece, which is why §8 says to land it early: *"every game built before it is a game that has to be retrofitted."*
@aedanpope, design 005 Q4, verbatim:
> New games should be at least have one scene, and worth recommending 'build it as several scenes, one per surface'
A recommendation, not a gate — enforcing multi-scene games with a presubmit lane was Q4 alt c and was declined; a game that ignores it simply runs all its probes.
[A1](https://github.com/cfsh/ninefold/pull/697) is explicit that the probe-selection argument for S18 is contingent: if the engine is ever patched to emit what a probe actually touched, the scene stops needing to be the unit of selection and that justification evaporates. So the note argues from the engine, and marks the selection benefit as a bonus rather than a reason.
The worked example is already in the tree. games/blockbrains/board.tscn + Board.cs is one 485-line surface, loaded once as a PackedScene and instanced per player — which is why four-player Blockbrains is not four copies of a board.
The counter-example is too, and it is the biggest game we have. Tonapse is 13,054 lines behind one .tscn — home screen, song grid, piano roll, sound editor and every modal instantiated into one tree at startup. Free on day one; a retrofit now.
Two smaller facts measured while writing it, both worth knowing:
.tscn in the repo instances another. Every scene file has exactly one ext_resource (its own script). Blockbrains composes from code (GD.Load<PackedScene>), not from the editor. Both work; the code route is the one with a running example.A test pins the two structural facts the prose cites — Blockbrains composing a scene, Tonapse not — and deliberately not the line counts, which move on any ordinary edit and would make the guard cry wolf. ⚠️ A red on the Tonapse half means Tonapse was decomposed, which is the change the note asks for: the fix is to rewrite the counter-example, and the failure message says so.
None.
No comments.