Skip to content

Commit 7910d93

Browse files
author
DavidQ
committed
Complete the minimum gameplay slice in asteroids_new so the parallel lane is meaningfully testable, not just bootable.
1 parent 7595b53 commit 7910d93

9 files changed

Lines changed: 97 additions & 96 deletions

docs/dev/CODEX_COMMANDS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ MODEL: GPT-5.4-codex
22
REASONING: high
33

44
COMMAND:
5-
Execute exactly docs/pr/BUILD_PR_GAMES_97A_ASTEROIDS_NEW_RUNTIME_SMOKE_STABILIZATION.md.
5+
Execute exactly docs/pr/BUILD_PR_GAMES_98A_ASTEROIDS_NEW_GAMEPLAY_SLICE_COMPLETION.md.
66
Modify only the exact target files listed in the PR doc.
77
Do not expand scope.
88
Package the delta zip to:
9-
<project folder>/tmp/BUILD_PR_GAMES_97A_ASTEROIDS_NEW_RUNTIME_SMOKE_STABILIZATION_delta.zip
9+
<project folder>/tmp/BUILD_PR_GAMES_98A_ASTEROIDS_NEW_GAMEPLAY_SLICE_COMPLETION_delta.zip

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Stabilize asteroids_new runtime boot so the parallel lane becomes smoke-testable from its own index entry.
1+
Complete the minimum gameplay slice in asteroids_new so the parallel lane is meaningfully testable, not just bootable.

docs/dev/NEXT_COMMAND.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
After commit, either add the next gameplay-critical slice in one testable chunk or run a stronger runtime validation pass before widening further.
1+
After commit, report visible gameplay behavior and decide whether the next slice should be scoring/audio/input polish or one targeted stabilization PR.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
- move asteroids_new from copied structure to smoke-testable runtime lane
2-
- allow only minimum runtime/import/path fixes across the existing parallel files
3-
- keep original Asteroids untouched
1+
- advance asteroids_new from smoke-stable boot to a meaningfully testable gameplay slice
2+
- keep scope limited to current runtime/gameplay files already in the parallel lane
3+
- preserve original Asteroids files untouched

docs/dev/reports/file_tree.txt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
1-
docs/pr/BUILD_PR_GAMES_97A_ASTEROIDS_NEW_RUNTIME_SMOKE_STABILIZATION.md
1+
docs/pr/BUILD_PR_GAMES_98A_ASTEROIDS_NEW_GAMEPLAY_SLICE_COMPLETION.md
22
docs/dev/codex_commands.md
33
docs/dev/commit_comment.txt
44
docs/dev/next_command.txt
55
docs/dev/reports/file_tree.txt
66
docs/dev/reports/change_summary.txt
77
docs/dev/reports/validation_checklist.txt
88
games/asteroids_new/index.js
9-
games/asteroids_new/flow/attract.js
10-
games/asteroids_new/flow/intro.js
11-
games/asteroids_new/game/AsteroidsAttractAdapter.js
129
games/asteroids_new/game/AsteroidsGameScene.js
1310
games/asteroids_new/game/AsteroidsSession.js
1411
games/asteroids_new/game/AsteroidsWorld.js
15-
games/asteroids_new/debug/asteroidsShowcaseDebug.js
1612
games/asteroids_new/entities/Asteroid.js
1713
games/asteroids_new/entities/Bullet.js
1814
games/asteroids_new/entities/Ship.js
1915
games/asteroids_new/entities/Ufo.js
20-
games/asteroids_new/systems/AsteroidsAudio.js
21-
games/asteroids_new/systems/AsteroidsHighScoreService.js
22-
games/asteroids_new/systems/AsteroidsInitialsEntry.js
23-
games/asteroids_new/systems/HighScoreStore.js
2416
games/asteroids_new/systems/ShipDebrisSystem.js
25-
games/asteroids_new/utils/math.js
17+
games/asteroids_new/debug/asteroidsShowcaseDebug.js
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
- single PR purpose only
22
- exact target files only
33
- no original Asteroids file changes
4-
- minimum-fix stabilization only
5-
- asteroids_new index is used as the smoke-test entry point
6-
- touched asteroids_new files parse and resolve together
4+
- no new files
5+
- no assets/platform/config/levels widening
6+
- asteroids_new remains runnable from its own index entry
7+
- gameplay slice is meaningfully testable
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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

games/asteroids_new/game/AsteroidsGameScene.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ David Quesenberry
55
AsteroidsGameScene.js
66
*/
77
import { AttractModeController, Scene } from '../../../src/engine/scenes/index.js';
8-
import { Theme, ThemeTokens } from '../../../src/engine/theme/index.js';
98
import { ParticleSystem } from '../../../src/engine/fx/index.js';
109
import AsteroidsSession from './AsteroidsSession.js';
1110
import AsteroidsWorld from './AsteroidsWorld.js';
@@ -15,7 +14,6 @@ import AsteroidsAttractAdapter from './AsteroidsAttractAdapter.js';
1514
import AsteroidsHighScoreService from '../systems/AsteroidsHighScoreService.js';
1615
import AsteroidsInitialsEntry from '../systems/AsteroidsInitialsEntry.js';
1716

18-
const theme = new Theme(ThemeTokens);
1917
const HUD_FONT = '"Vector Battle", monospace';
2018
const SCORE_ONE_X = 136;
2119
const HIGH_SCORE_X = 480;

games/asteroids_new/tree.txt

Lines changed: 36 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -5,76 +5,45 @@ C:.
55
� tree.txt
66
77
+---assets
8-
� � .gitkeep
9-
� � Asteroids Deluxe.png
10-
� � asteroids-bezel.png
11-
� � bangLarge.wav
12-
� � bangMedium.wav
13-
� � bangSmall.wav
14-
� � beat1.wav
15-
� � beat2.wav
16-
� � extraShip.wav
17-
� � fire.wav
18-
� � preview.png
19-
� � saucerBig.wav
20-
� � saucerSmall.wav
21-
� � thrust.wav
22-
� � vector_battle.ttf
23-
� �
24-
� +---assets
25-
� Asteroids Deluxe.png
26-
� asteroids-bezel.png
27-
� bangLarge.wav
28-
� bangMedium.wav
29-
� bangSmall.wav
30-
� beat1.wav
31-
� beat2.wav
32-
� extraShip.wav
33-
� fire.wav
34-
� preview.png
35-
� saucerBig.wav
36-
� saucerSmall.wav
37-
� thrust.wav
38-
� vector_battle.ttf
39-
8+
� .gitkeep
9+
� Asteroids Deluxe.png
10+
� asteroids-bezel.png
11+
� bangLarge.wav
12+
� bangMedium.wav
13+
� bangSmall.wav
14+
� beat1.wav
15+
� beat2.wav
16+
� extraShip.wav
17+
� fire.wav
18+
� preview.png
19+
� saucerBig.wav
20+
� saucerSmall.wav
21+
� thrust.wav
22+
� vector_battle.ttf
23+
4024
+---config
4125
� .gitkeep
4226
4327
+---debug
44-
� � asteroidsShowcaseDebug.js
45-
� �
46-
� +---debug
47-
� asteroidsShowcaseDebug.js
48-
28+
� asteroidsShowcaseDebug.js
29+
4930
+---entities
50-
� � .gitkeep
51-
� � Asteroid.js
52-
� � Bullet.js
53-
� � Ship.js
54-
� � Ufo.js
55-
� �
56-
� +---entities
57-
� Asteroid.js
58-
� Bullet.js
59-
� Ship.js
60-
� Ufo.js
61-
31+
� .gitkeep
32+
� Asteroid.js
33+
� Bullet.js
34+
� Ship.js
35+
� Ufo.js
36+
6237
+---flow
6338
� attract.js
6439
� intro.js
6540
6641
+---game
67-
� � AsteroidsAttractAdapter.js
68-
� � AsteroidsGameScene.js
69-
� � AsteroidsSession.js
70-
� � AsteroidsWorld.js
71-
� �
72-
� +---game
73-
� AsteroidsAttractAdapter.js
74-
� AsteroidsGameScene.js
75-
� AsteroidsSession.js
76-
� AsteroidsWorld.js
77-
42+
� AsteroidsAttractAdapter.js
43+
� AsteroidsGameScene.js
44+
� AsteroidsSession.js
45+
� AsteroidsWorld.js
46+
7847
+---levels
7948
� .gitkeep
8049
@@ -104,20 +73,13 @@ C:.
10473
� asteroids-title.vector.json
10574
10675
+---systems
107-
� � .gitkeep
108-
� � AsteroidsAudio.js
109-
� � AsteroidsHighScoreService.js
110-
� � AsteroidsInitialsEntry.js
111-
� � HighScoreStore.js
112-
� � ShipDebrisSystem.js
113-
� �
114-
� +---systems
115-
� AsteroidsAudio.js
116-
� AsteroidsHighScoreService.js
117-
� AsteroidsInitialsEntry.js
118-
� HighScoreStore.js
119-
� ShipDebrisSystem.js
120-
76+
� .gitkeep
77+
� AsteroidsAudio.js
78+
� AsteroidsHighScoreService.js
79+
� AsteroidsInitialsEntry.js
80+
� HighScoreStore.js
81+
� ShipDebrisSystem.js
82+
12183
+---ui
12284
� .gitkeep
12385

0 commit comments

Comments
 (0)