Skip to content

feat(templates): add threed_basic manual collision - #48

Closed
wh000wh000 wants to merge 5 commits into
leigest519:mainfrom
wh000wh000:feat/threed-v1-1-manual-collision
Closed

feat(templates): add threed_basic manual collision#48
wh000wh000 wants to merge 5 commits into
leigest519:mainfrom
wh000wh000:feat/threed-v1-1-manual-collision

Conversation

@wh000wh000

@wh000wh000 wh000wh000 commented Aug 4, 2026

Copy link
Copy Markdown

threed_basic v1.1

Upstream note: this is stacked on #47 because the upstream v1.0 base is still awaiting maintainer merge. Review the v1.1 delta as 3c0143b..3a0b59a.

Field Evidence
Version v1.1 manual static collision
Hypothesis A pure XZ resolver plus declarative radii is enough to keep primitive-based games on authored roads and prevent obstacle tunnelling without adding physics
Problem source v1.0 generated games had no shared road or obstacle collision authority
Root cause The archetype exposed visual floor and obstacle data but no player radius, obstacle radius, or shared movement resolver
Modified module Frozen archetype template and threed_basic builder manuals only
Not modified 2D Phaser templates, control plane, workspace, engine/store, MCP mounting, asset generation pipeline
Representative game aurora-circuit-3d-v1-1, game 80300b3d322a0abd, one POST, done/ok
Build packages/core PASS; core3d standalone PASS; representative game PASS
Tests packages/core 150 files, 3163 passed, 2 skipped; collision self-check PASS
Smoke WebGL context PASS; non-black canvas PASS; console/page/request errors 0; ESC pause/resume PASS
Playthrough Real keyboard input collected 7/7 and reached TRAIL COMPLETE
2D regression neon-flotilla Phaser smoke PASS
Protocol and MCP protocol 6/6 consistent; MCP selftest PASS
Fork merge and fresh main fork PR #2 merged as fb526de; fresh detached main repeated core build, 150/3163 tests, standalone core3d build/smoke, synthesized archetype build/self-check
Assets Existing image-only pipeline; 3 generated images; displaySize declarations retained; no model or physics asset
Performance Representative bundle 505.08 kB minified, 128.12 kB gzip; current linear collision scan is bounded to authored 8-16 objects
Risk Full-circle containment requires overlapping floor patches wide enough for the player diameter; builder docs now state the contract
Rollback Revert the two commits in this PR
ADR candidate ADR-010 manual collision contract is recorded in the governance repository change package
Evidence smoke shots: /tmp/aurora-v1-1-smoke.NZrnSD; victory: /tmp/aurora-v1-1-win.png; machine line: opengame-server/tests/e2e/report.jsonl g19a

Frozen-layer delta

File Change
agent-test/templates/modules/threed_basic/src/CollisionResolver.ts New pure substepped road and obstacle resolver
agent-test/templates/modules/threed_basic/src/GameScene.ts Route all XZ movement through the resolver
agent-test/templates/modules/threed_basic/src/SceneMap.ts Add player spawn and explicit obstacle radii
agent-test/templates/modules/threed_basic/src/gameConfig.json Add consumed player collision radius and remove superseded clamps
agent-test/templates/modules/threed_basic/tests/collision-selfcheck.ts Minimal edge, tunnelling, and slide check
agent-test/docs/modules/threed_basic/design_rules.md Collision design boundary
agent-test/docs/modules/threed_basic/template_api.md Resolver and SceneMap contract
agent-test/docs/modules/threed_basic/threed_basic.md Builder execution and troubleshooting guidance

Production findings carried forward

Finding Classification Next version
Four generated config leaves have no runtime consumer Template/protocol consistency v1.2
v2-accept reports nested 3D asset-pack keys as missing although runtime consumes them Acceptance parser v1.3

No P0 or P1 remains in the v1.1 collision increment.

蝉息 and others added 5 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.
@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