oneshotlm
Compare all models on this prompt →

Top-down alien shooter · claude-opus-4.8

Using the pre-provided phaser.min.js (global Phaser), build a top-down alien shooter: move with WASD, aim and fire at waves of advancing aliens, with health, score, and increasing difficulty. Use ONLY procedurally generated graphics, no external image or audio assets.

⛨ sandboxed Open in new tab ↗
transcript · 10 messages
user

Using the pre-provided phaser.min.js (global Phaser), build a top-down alien shooter: move with WASD, aim and fire at waves of advancing aliens, with health, score, and increasing difficulty. Use ONLY procedurally generated graphics, no external image or audio assets.

assistant
thinking
I'm setting up a Phaser game in a single HTML file and need to verify the Phaser library is available.
bash {"command":"ls -la; head -c 200 phaser.min.js"}
toolResult

total 2116 drwxrwxrwx 3 node node 96 Jul 8 03:01 . drwxr-xr-x 1 root root 4096 Jul 8 03:01 .. -rw-r--r-- 1 node node 1181917 Jul 8 03:01 phaser.min.js !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("Phaser",[],e):"object"==typeof exports?exports.Phaser=e():t.Phaser=e()

assistant
thinking
Now I'm going to start building out the game.
write index.html (10801 bytes)
toolResult

Successfully wrote 10801 bytes to index.html

assistant
bash {"command":"cd /workspace && node -e \"const fs=require('fs');const h=fs.readFileSync('index.html','utf8');const m=h.match(/<script>([\\s\\S
toolResult

scripts: 1 OK

assistant
thinking
The regex caught the inline script but missed the src attribute one. Let me verify the JavaScript syntax is correct.
bash {"command":"cd /workspace && node -e \"\nconst fs=require('fs');const h=fs.readFileSync('index.html','utf8');\nconst js=h.split('<script>')[
toolResult

JS syntax OK

assistant

Done. `index.html` is a fully self-contained top-down alien shooter. **Features:** - **Movement:** WASD with momentum (acceleration + drag) - **Aim & fire:** mouse aims the player; click/hold to shoot bullets toward the cursor - **Health & score:** HP bar (color-shifts as it drops), live score counter - **Waves & difficulty:** each wave spawns more, faster, tougher aliens; three alien types (bigger = more HP + score), tankier enemies and quicker spawns as waves climb - **Game feel:** procedural muzzle flash, particle explosions, camera shake/flash, twinkling starfield, wave banners, and an R-to-restart game-over screen **All graphics procedural:** player, three alien variants, bullets, sparks, and stars are drawn at runtime via Phaser `Graphics` → `generateTexture`. No external images, audio, or network requests — only the local `phaser.min.js`. JS passes a syntax check and the file loads Phaser with a plain `<script src="phaser.min.js">`.

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelclaude-opus-4.8
vendorAnthropic · Claude
harnesspi-agent
generated2026-07-08

EVALUATION

3/5 partial

Top-down alien shooter renders with waves and score, but player dies quickly and game-over screen persists through later inputs.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion0.4%
on click1.5%
on drag2.2%
on wheel4.1%
on enter + space0.0%
on arrow keys0.0%
on w/a/s/d0.0%
frame spread15.2 / 255
console errors0
js errors none

METRICS

runtime78.4s
tokens in18k
tokens out6.3k
cached12k
cost / run$0.2538