Challenge 05 · playable-browser-game
Signal Siege — keyboard tower defence
Can an agent ship a deterministic tower-defence loop with keyboard-only placement, distinct tactical roles, and a bounded set of defensible waves?
# Signal Siege — one-shot browser game brief
Create **Signal Siege**, a complete tower-defence game in a single self-contained `index.html`, with a short `README.md`. It must work offline when opened from `file://` in current desktop Chrome, Firefox, Safari, or Edge. No frameworks, packages, build output, network requests, imports, external images, or external fonts. All visuals and audio must be inline/generated.
## Game contract
A hostile signal moves along a clearly drawn fixed path toward a core. The player earns credits by stopping waves and spends them to place or upgrade relay towers. The result must be a finished, replayable defence loop—not a static mockup.
## Required loop and keyboard controls
- Draw a legible map, path, core health, credits, wave number, selected tower, and wave status. Enemy movement and projectile travel must be visibly continuous.
- Include three distinct original tower roles: a fast low-damage pulse, a slower high-damage beam, and a slowing jammer. Each must have clear range/target feedback and a restrained upgrade path (at least one upgrade per role).
- Supply at least five deterministic waves, including a fast enemy, a durable enemy, and a mixed final wave. The core loses health for leaks; victory after the final wave and defeat at zero core health must both be explicit end states with restart.
- **Keyboard-only play is mandatory:** Tab/Shift+Tab reaches every interactive control; Enter/Space activates selection; arrow keys move a placement cursor over valid build pads; 1/2/3 select tower type; U upgrades the selected tower; N starts the next wave; R resets. Mouse support may be added but is not required.
- Towers may only be built on marked pads; placements need clear success/failure feedback. The game must be beatable with a sensible small build plan, but must not auto-play.
## Boundaries and quality
Use fixed wave data and deterministic targeting tie-breaks. Prevent obvious repeated-click exploits, invalid placements, negative credits, duplicated wave starts, and timers continuing after end state. Build a dark signal-console visual system with original shapes and color cues. At 390 px wide, preserve controls and avoid horizontal page scrolling.
## Read-only verification snapshot
Expose `window.__oneshotSnapshot()` for browser automation. It returns a fresh JSON-serializable object with `schema: "oneshot.playable/v1"` plus phase, wave number/status, credits, core health, selected tower type, placement cursor, and compact arrays for placed towers and active enemies. It accepts no arguments, must not mutate the game, and must not return live internal objects or expose control methods. Document the fields in `README.md`; this diagnostic surface supplements, rather than replaces, an actual keyboard playthrough.
## Evidence required in README
1. Offline/static evidence: `file://` boot with no network-capable code or console errors.
2. Deterministic evidence: enumerate five waves and each tower's damage/range/cost/upgrade values, then confirm snapshot output agrees with visible build and active-wave states.
3. Manual interactive evidence: a keyboard-only run that builds, upgrades, starts waves, and reaches either a documented win plan or a defensible loss.
4. Visual evidence: a screenshot or honest visual inspection note showing map/path, a selected pad, active enemies, and HUD.
Work autonomously; test and repair within this run. Deliver only `index.html` and `README.md`, with no fabricated evidence claims.
Prompt SHA-256:be9e035387ae2dc537adec3537f551f8…3211141c· file prompt.md · one initial brief, no human follow-up. This draft may change before activation; calibration evidence does not make it open for new runs.
Provenance & licensing
- Attribution
- Challenge authored for the OneShot library.
- License
- MIT MIT (this repository) · license link
- Notes
- Draft challenge authored for OneShot. No copied prompt prose or material interaction clone was found, but its title collides with existing public projects; it remains closed pending a rename and final originality review.
Benchmark focus
- Family
- playable
- Complexity tier
- showcase
- Prompt profile
- benchmark
- Question
- Can an agent ship a deterministic tower-defence loop with keyboard-only placement, distinct tactical roles, and a bounded set of defensible waves?
- Capability dimensions
- planning
- implementation
- interaction-design
- algorithmic-reasoning
- verification
- accessibility
- offline-delivery
Capability profile
- Environment
- Autonomous coding agent with file and shell access; output must run offline from file:// in current desktop Chrome, Firefox, Safari, or Edge.
- Skills
- html5
- css
- vanilla-javascript
- game-design
- accessibility
- testing
- Tools
- file-read-write
- shell
- browser-or-dom-testing
- Constraints
- Single self-contained index.html plus README.md; no build step, framework, or external asset.
- No runtime network access.
- Keyboard-complete play is required.
Budget
- Wall clock
- 150 minutes
- Output files
- at most 2
- Network
- docs-only
- Notes
- A bounded one-brief game build; internal testing and repairs are expected.
One-shot policy
- Human follow-up
- none
- Internal iteration
- allowed
- Notes
- One initial brief; the executor may test and repair within the same autonomous run.
Expected artifacts
| Path | Kind | Required |
|---|---|---|
index.htmlComplete self-contained playable game. | html | yes |
README.mdControls, rules, architecture, and honest verification record. | markdown | yes |
Verification criteria
| Check | Method | Evidence |
|---|---|---|
| offline-boot The single HTML opens from file:// without console errors, external URLs, or network-capable runtime calls. | automated-script | log, screenshot |
| keyboard-defence-loop Keyboard-only controls select towers, place on pads, upgrade, start waves, and reset an ended game. | interactive-check | transcript, screenshot |
| deterministic-wave-data Five fixed waves and tower values are documented; the read-only snapshot agrees with visible build and active-wave states. | automated-script | log |
| battlefield-clarity A rendered play view visibly distinguishes path, enemies, selected build pad, tower ranges or attacks, and HUD. | visual-review | screenshot |