|
| 1 | +# BUILD PR — Asteroids New Gameplay Slice Completion |
| 2 | + |
| 3 | +## Purpose |
| 4 | +Move `games/asteroids_new` beyond runtime smoke stabilization into a genuinely testable gameplay slice. |
| 5 | +This PR should complete the minimum gameplay loop needed to observe real in-game behavior, not just boot success. |
| 6 | + |
| 7 | +## Exact Target Files |
| 8 | +- `games/asteroids_new/index.js` |
| 9 | +- `games/asteroids_new/game/AsteroidsGameScene.js` |
| 10 | +- `games/asteroids_new/game/AsteroidsSession.js` |
| 11 | +- `games/asteroids_new/game/AsteroidsWorld.js` |
| 12 | +- `games/asteroids_new/entities/Asteroid.js` |
| 13 | +- `games/asteroids_new/entities/Bullet.js` |
| 14 | +- `games/asteroids_new/entities/Ship.js` |
| 15 | +- `games/asteroids_new/entities/Ufo.js` |
| 16 | +- `games/asteroids_new/systems/ShipDebrisSystem.js` |
| 17 | +- `games/asteroids_new/debug/asteroidsShowcaseDebug.js` |
| 18 | + |
| 19 | +## Required Code Changes |
| 20 | +1. Make only the minimum gameplay/runtime fixes required so the current `asteroids_new` lane supports a meaningful playable/smoke-testable slice. |
| 21 | +2. Focus specifically on: |
| 22 | + - entity update loop alignment |
| 23 | + - bullet/asteroid interaction continuity |
| 24 | + - asteroid lifecycle continuity |
| 25 | + - ship/world/session wiring continuity |
| 26 | +3. Remove any now-unused imports created by earlier copy/stabilization work. |
| 27 | +4. Use the existing debug shell only as needed to expose current gameplay behavior clearly during smoke testing. |
| 28 | + |
| 29 | +## Hard Constraints |
| 30 | +- exact files only |
| 31 | +- do not modify any original `games/Asteroids/*` files |
| 32 | +- do not add new files |
| 33 | +- do not widen into assets, platform data, config, levels, or unrelated systems |
| 34 | +- do not redesign gameplay |
| 35 | +- do not perform repo-wide cleanup |
| 36 | +- minimum-fix gameplay slice completion only |
| 37 | + |
| 38 | +## Validation Steps |
| 39 | +- syntax-check all touched `games/asteroids_new` JS files |
| 40 | +- perform runtime/import smoke checks from `games/asteroids_new/index.js` |
| 41 | +- confirm the current gameplay slice can be exercised meaningfully |
| 42 | +- confirm no original `games/Asteroids/*` files changed |
| 43 | + |
| 44 | +## Acceptance Criteria |
| 45 | +- `games/asteroids_new` remains runnable from its own index entry |
| 46 | +- the touched gameplay files parse and resolve together |
| 47 | +- the current vertical slice is meaningfully testable as gameplay, not just boot |
| 48 | +- original Asteroids files remain untouched |
0 commit comments