Skip to content

fix(gdd): preserve ordered 3D objectives - #52

Closed
wh000wh000 wants to merge 17 commits into
leigest519:mainfrom
wh000wh000:fix/threed-v1-6-objective-semantics
Closed

fix(gdd): preserve ordered 3D objectives#52
wh000wh000 wants to merge 17 commits into
leigest519:mainfrom
wh000wh000:fix/threed-v1-6-objective-semantics

Conversation

@wh000wh000

Copy link
Copy Markdown

Summary

A real threed_basic production changed the explicit mechanic “light three lamps in sequence” into “any order” solely to match the unordered scaffold loop. This adds a 3D-only GDD fidelity rule: public API restrictions do not forbid minimal private GameScene state for requested mechanics.

Depends on the preceding threed_basic series, most recently #51.

Check Result
Fresh merge SHA fe50c6705be3ea6dbe904b97dd5ac3c33d998b0c
Core build/typecheck PASS
Core tests 3167 passed, 2 skipped
Core3d build PASS
Phaser prompt path Exact empty threed-only instruction; no change
Frozen files 3 text/source files, 29 additions / 1 deletion
Resource policy No binary, Base64/Data URL, node_modules, dist, or credential changes

Fork review and merge evidence: wh000wh000#6.

蝉息 and others added 17 commits August 4, 2026 17:17
Add the frozen classifier/GDD contract for a minimal three.js archetype while preserving every existing Phaser route. Includes regression fixtures for explicit 3D, 2D platformer, and 2D top-down prompts.
Provide the core3d skeleton, threed_basic gameplay layer, pinned npm lockfile, and builder-facing manuals. The template keeps DOM lifecycle screens and the three-key ESC fallback while limiting assets to the existing image pipeline.
feat(3d): add threed_basic v1 production path
Keep the player on authored floor patches and outside explicit static obstacle circles without introducing a physics dependency. Substepped resolution prevents high-delta tunnelling and the self-check covers road, obstacle, and slide behavior.
Teach the builder to preserve the pure XZ resolver, explicit collision radii, and v1 no-physics boundary so generated games consume the new capability instead of bypassing it.
feat(templates): add threed_basic manual collision
The three.js renderer sizes from its container and never consumes the inherited 2D reference dimensions. Removing the unused leaves gives both standalone core3d and threed_basic a zero-dead-config baseline.
Generated v1.1 code duplicated fog, pickup, and count values. Make the builder keep one canonical path per runtime value, remove superseded aliases, and record the leaf-to-consumer map in GDD completion notes.
The universal GDD reminder contradicted threed_basic zero-dead-config rules by forbidding deletion of inherited fields. Keep the Phaser reminder unchanged while requiring consumed, single-source leaves for 3D.
fix(templates): enforce consumed 3D config
A generated v1.3 game shipped teleport and time mutation hooks solely to make verification easy. Freeze the existing probe surface and require completion evidence through real browser input so acceptance measures gameplay instead of a debug backdoor.
…bridge

docs(templates): keep 3D smoke bridge read-only
A real v1.4 game showed repeated Escape events can toggle pause multiple times and end screens can resume gameplay. Ignore keyboard repeats and lock the runtime after completion or failure.
Real-browser review found the core3d shell requests an undeclared favicon. Ship a tiny standalone SVG and reference it relatively, keeping binary data out of editable HTML.
fix(templates): stabilize 3D browser shell
The star-lamp maze GDD weakened an explicit sequential objective into unordered collection to match the scaffold. Add a threed_basic-only fidelity rule so private GameScene state may implement the requested mechanic without widening the public API or changing Phaser prompts.
Document that ordered objectives remain ordered and should use minimal private GameScene state instead of being reinterpreted as the scaffold's unordered pickup loop.
@wh000wh000

Copy link
Copy Markdown
Author

Superseded by #57, which rebases the complete threed_basic v1 milestone onto current origin/main and excludes unrelated fork-only changes.

@wh000wh000 wh000wh000 closed this Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant