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?

  • family: playable
  • tier: showcase
  • prompt: benchmark
  • v1.0.0
  • status: draft
  • origin: original
  • lane: browser-static-single-file
Candidate brief: visible for review, not open for published runs
# 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

What a qualifying run must produce
PathKindRequired
index.html
Complete self-contained playable game.
htmlyes
README.md
Controls, rules, architecture, and honest verification record.
markdownyes

Verification criteria

Evidence a result must attach
CheckMethodEvidence
offline-boot
The single HTML opens from file:// without console errors, external URLs, or network-capable runtime calls.
automated-scriptlog, screenshot
keyboard-defence-loop
Keyboard-only controls select towers, place on pads, upgrade, start waves, and reset an ended game.
interactive-checktranscript, 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-scriptlog
battlefield-clarity
A rendered play view visibly distinguishes path, enemies, selected build pad, tower ranges or attacks, and HUD.
visual-reviewscreenshot