← Portfolio overviewbudget exhausted

Godot mobile tower defense

Loafer's Bad Yard Day

A deterministic Patio proof became a warm, household-built tower-defense slice with comic framing, original enemies, tactile feedback, and a reviewable evidence trail.

Outcome

Five gates accepted; device gate remains open

This report separates accepted product truth from preserved candidate work. A missing critic or device proof is treated as an open gate, not a semantic technicality.

Before

A functional Patio proof using code-drawn presentation and three basic captures.

After

A five-wave playable with an opening comic, original household towers, readable enemy roles, material art, VFX, audio, touch and accessibility contracts, replay, and a local review room.

Accepted boundary

  • LF-G1 through LF-G4 presentation, narrative, art, VFX, and audio work
  • LF-G6 evidence-led product and development review room
  • Crossbow, real Glue Gun, and Catapult combat roles with victory and defeat routes

Held, candidate, or unstarted

  • LF-G5 mobile behavior is implemented but not promoted without arm64 Simulator evidence
  • Physical iPhone acceptance and broader campaign remain human-gated
  • Four unrelated iOS-lane edits remain quarantined outside the Gauntlet checkpoint

Gate history

Decision timeline

The useful unit is not the turn. It is the gate: a bounded claim, its evidence, and the verdict that controlled promotion.

Opening

Patio contract and isolated presentation rules established.

LF-G2

Comic stakes and first-run story accepted.

LF-G3

Original household apparatus, bug art, VFX, and outcomes accepted.

LF-G4

Tactile original audio and isolation checks accepted.

LF-G5

Touch/accessibility/recovery built; arm64 Simulator runtime unavailable.

LF-G6

Review room accepted after correcting a mislabeled evidence frame.

Wind-down

Run ended at budget_exhausted with device truth preserved.

Existing evidence

Frames from the run.

No images were generated for this report. These are existing repository artifacts with shortened SHA-256 anchors. Candidate frames remain visibly labeled.

Testable now

Reproduce the current truth.

Commands are repository-root commands from the project's canonical debrief. They are shown for technical review, not as a public playable deployment claim.

godot --headless --path runtime/vertical-slice-godot --script res://tests/patio_stage_smoke.gd
godot --headless --path runtime/vertical-slice-godot --script res://tests/patio_retry_soak.gd
godot --headless --path runtime/vertical-slice-godot --script res://tests/presentation_isolation_smoke.gd
godot --headless --path runtime/vertical-slice-godot --script res://tests/patio_audio_isolation_smoke.gd
node --test tools/patio-gauntlet-review/tests/review.test.mjs

Desktop and Web evidence are reproducible. Do not call the mobile gate accepted until the real arm64 Simulator route runs.

5playable waves
8/8LF-G6 focused tests
23/23proxy-IAB matrix
3distinct tower roles

Git anchors

  • Gauntlet checkpoint a6d896c
  • LF-G6 accepted
  • LF-G5 device-gated

Known token floor

4,060,850

Visible goal telemetry at wind-down. Descendant-specific usage and backend-plan accounting were unavailable.

Candid postmortem

Failures that changed the run.

The point of the case study is not that agents wrote code. It is that the system found reasons not to trust its own first answer.

Loops, stalls, and defects

  • Early art direction was too flat before the warm material-world pass.
  • The first audio pass was tonal rather than tactile.
  • An empty Wave 4 frame was mislabeled as a Catapult payoff and rejected by a fresh critic.
  • The available Godot simulator binary could not provide arm64 iOS runtime truth.

What carries forward

  • Evidence captions are product claims and deserve independent criticism.
  • Tool availability must be recorded as evidence, not treated as an entitlement.
  • The largest quality gains came from art, sound, and causal feedback rather than more mechanics.
Exact next safe action

On a compatible Mac/Xcode/Godot arm64 lane, run the existing mobile-accessibility matrix without changing product code. Promote LF-G5 only on real device evidence, then open the next campaign gate.