GPT 6 FIELDGUIDE

GPT 6 game prototyping: build the first playable loop

Use a constrained loop, explicit state, and a short review path before adding content or polish.

GPT 6 game prototyping around one playable loop

This GPT 6 game prototyping example asks GPT-6 Astra at medium reasoning effort in Codex to build Catch the Stars: a small browser game with original shapes and no external dependencies. The September 7, 2026 experiment preserves the first source snapshot and the check record. Load the demo when you want to play; the example remains within this page rather than creating a separate indexable game route.

The input is a rule contract, not a request for an expansive game. Arrow keys and visible touch buttons move a basket. Catching a star adds one point, the player starts with three lives, the third miss ends the game, and ten points wins. The game must stop changing score and lives after either terminal state.

What the artifact must make visible

Score, lives and status are real text alongside the named canvas. That gives the player information outside the drawn scene and makes the values directly inspectable. The downloadable source exposes the game rules and control logic; the first-output snapshot gives the comparison a fixed starting point.

Restart is the most demanding part of this small contract. It must clear score, restore three lives, reset objects and timers, release held input and leave only one animation loop. A new-looking screen is insufficient if an older loop still changes the state in the background.

Read browser evidence alongside state tests

Deterministic checks can place a star at a known position and step the engine to examine a catch, miss or terminal transition. Those checks are useful because waiting for random events can hide a defect. They are test-only mechanisms and should remain separate from ordinary gameplay.

Real browser controls answer another question: whether a player can actually move, use the visible buttons and restart the running interface. Desktop and mobile viewport checks also expose controls that leave the screen or a canvas that overflows its container. Screenshots of start, scoring, loss and win help explain the states, but do not prove the transitions between them.

The first browser assertion expected a miss before the falling star had crossed the bottom boundary: it expected two lives but observed three. Extending the test wait by 200 milliseconds corrected the timing assumption. The game implementation remained byte-identical to its first snapshot; the failure and harness diff are retained.

The final record reports nine passing engine tests and 14 browser checks across 1440 × 900 and 390 × 844. Keyboard and mobile touch move the basket; release and touch cancellation clear input. Both terminal states freeze correctly, and repeated restarts clear state without duplicating the animation loop. Restart returns to Ready; Start begins the next round. A separate integration run on this article passed 16 checks, including loading the game on demand, both control methods, scoring, both terminal states and repeated restarts. The original prototype captures and the article integration records are preserved separately.

Official context and a useful next slice

OpenAI’s Playco account, rechecked September 7, reports three themed prototypes from one grey-box foundation and 50% fewer manual fixes than its previous model. One cyberpunk version still needed a performance fix. Those are Playco-reported outcomes, not a speed or quality benchmark for Catch the Stars.

After inspecting the loop, change one rule at a time and repeat the terminal-state and restart checks. A short play session can reveal unclear feedback, but it does not establish long-term enjoyment or target-device performance. The frontend QA example demonstrates a related failure-and-repair record. Use the practical guide to preserve your input and revisions, or compare all four examples before choosing a first task.

Play Catch the Stars

An original browser prototype. Catch ten stars to win; three misses end the game. No account or game network requests.

Download the source ZIP · HTML, CSS and JavaScript. Open the HTML locally after unzipping.

Build and test Catch the Stars

Codex · GPT-6 Astra · medium reasoning ·

Task
Build a playable Catch the Stars browser prototype with original simple shapes, HTML, CSS and JavaScript. No external dependencies, accounts or network calls.

Controls and rules
Arrow keys and visible touch buttons move the basket. Catching a star adds one point. Start with three lives. Missing the third star ends the game. Reaching ten points wins. Ended games must stop scoring and losing lives. Restart must fully reset score, lives, objects, timers and input state without starting duplicate animation loops.

Output
Playable prototype, downloadable source, first-output snapshot, any correction diff, and screenshots of start, scoring, loss and win states. Integrate only through a click-to-load component in the existing game-prototyping page; no new indexable demo route.

Checks
Test keyboard and touch, third-miss game over, ten-point win, terminal states, full restart and repeated restart. Test desktop and mobile screen sizes. Use deterministic engine tests where appropriate plus actual browser controls. Separate test-only stepping from ordinary gameplay. Give the canvas an accessible name and expose score/lives/status as real text.
  • Nine engine checks and fourteen browser checks cover movement, touch release/cancellation, catching, three misses, ten-point win, terminal states and repeated restart.
  • The first browser assertion checked a missed star slightly before it landed; increasing the test wait resolved that timing error. The product source did not change.
  • Screenshots use the actual game with a test-only clock and fixed random positions. The downloadable game uses normal browser time and random positions.
  • Only the test wait and test coverage changed. The first and final game implementation match.
  • Restart returns to Ready with three lives and zero score; press Start to begin the next round.
Original output

Catch the Stars — actual prototype result

Implemented an original, dependency-free Catch the Stars game with arrow-key and visible touch controls, three lives, ten-point win, terminal-state freezing, and full restart to Ready. Start begins a fresh round after Restart. The canvas has an accessible name; score, lives, and status are real HTML text. Game code is imported only after clicking Load playable prototype.

Integration

Import src/components/GameDemo.astro and render <GameDemo /> once within the existing game-prototyping article. No props and no new canonical route. Parent owns article integration and its final page checks.

Download: /resources/v04/game-prototyping/catch-the-stars-source.zip. The ZIP contains offline HTML with original shapes/CSS/JavaScript and a README. The downloadable HTML is not exposed as an indexable standalone site route. The same engine and client generate the download and temporary browser-test page.

First result and corrections

The first implementation is preserved in first-output/. All four initial implementation/test files remain byte-identical. Engine tests passed on the first run (9/9). The first browser invocation could not bind localhost in the sandbox; an authorized escalation enabled testing. The first browser assertion expected a miss at 3.1 seconds, before the first star had crossed the bottom boundary. The harness wait was extended by 200ms; no game implementation change was needed. browser-failure.json preserves that failure and correction.diff records the harness adjustment and later added right-touch/cancellation/reset checks.

Validation

  • Nine deterministic engine tests pass: initial state, movement bounds, scoring, ten-point win, third-miss loss, both terminal states, immediate terminal cutoff, deterministic spawning, and fresh objects.
  • Fourteen browser checks pass across 1440×900 and 390×844. Actual keyboard controls move both directions. Actual mobile touch holds move left/right; release and touch cancellation clear input. Both viewports reach score, win, and loss states. Six repeated restarts and a restart while a key is held preserve only one animation chain and clear score, lives, objects, timer, and input.
  • Terminal games have zero pending animation frames and cannot continue scoring or losing lives.
  • Targeted TypeScript compilation passes.
  • Eight actual initial/score/loss/win captures are saved under public/resources/v04/game-prototyping/; metadata is in media.json. All eight were visually inspected for readable text, complete controls, and clipping.

The browser harness uses an external test-only controlled clock and centered random star positions, without injecting score/life/game state. Those controls are absent from ordinary gameplay and the source ZIP. Screenshots cover the temporary extracted prototype; final article integration remains a parent check. Browser and temporary server were closed after testing.

GPT 6 game prototyping example: Catch the Stars desktop canvas ready with zero points and three lives.
Actual desktop browser capture (1440 × 900); initial. Deterministic test-only clock and centered star positions; no game-state injection.
GPT 6 game prototyping example: Catch the Stars desktop game after one catch, with one point and three lives.
Actual desktop browser capture (1440 × 900); score. Deterministic test-only clock and centered star positions; no game-state injection.
Catch the Stars desktop victory screen from the GPT 6 game prototyping example, showing ten points above the basket.
Actual desktop browser capture (1440 × 900); win. Deterministic test-only clock and centered star positions; no game-state injection.
GPT 6 game prototyping example: Catch the Stars desktop game-over screen after three missed stars.
Actual desktop browser capture (1440 × 900); loss. Deterministic test-only clock and centered star positions; no game-state injection.
Catch the Stars mobile start screen in the GPT 6 game prototyping example, with a basket and Left and Right touch controls.
Actual mobile browser capture (390 × 844); initial. Deterministic test-only clock and centered star positions; no game-state injection.
GPT 6 game prototyping example: Catch the Stars mobile canvas with falling stars, one point and three lives.
Actual mobile browser capture (390 × 844); score. Deterministic test-only clock and centered star positions; no game-state injection.
GPT 6 game prototyping example: Catch the Stars mobile victory state showing ten points and a Restart button.
Actual mobile browser capture (390 × 844); win. Deterministic test-only clock and centered star positions; no game-state injection.
GPT 6 game prototyping example: Catch the Stars mobile game-over screen with zero lives and the focused canvas.
Actual mobile browser capture (390 × 844); loss. Deterministic test-only clock and centered star positions; no game-state injection.