HardYards/DESIGN.md
m3ultra 06404d3505 Add side-systems to design doc + playable sail-storm prototype
Prototype: spring-mass sail, quadratic wind with gust telegraphs and a
mid-storm wind change, per-corner hardware ratings with weakest-link
cascade failures, garden coverage scoring, and a runnable repair loop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 20:55:31 +10:00

22 KiB
Raw Permalink Blame History

SHADES — design brainstorm

You run a small landscaping outfit. Every callout is a different site, a different client, and a different fight with geometry, water, and weather. Shade sails, retaining walls, drainage — build it right, because the season will test it.


The core insight

Real landscape engineering is already a game system. Almost nothing has to be invented — it just has to be surfaced:

  • A sail's strength comes from its geometry, not its material. Tension, twist, anchor angles.
  • Every corner is a chain of components (ring → shackle → turnbuckle → pad eye → anchor), and the chain fails at its weakest link.
  • Water always wins eventually. Retaining walls aren't pushed over by soil — they're pushed over by the water trapped behind them. Drainage is the invisible half of every job.
  • The two things a sail must do — cast shade and survive wind — are in direct opposition. Big, flat, low = great shade, death in a storm. Small, twisted, steep = storm-proof, patchy shade.

You're never building the right thing; you're building the least wrong thing for the weather that's coming — on this site, in this season, on this client's budget.


The frame: a landscaper service

You're a one-person (later small-crew) landscaping business. Work arrives as callouts — each one a hand-designed or generated site with existing conditions, a client brief, a budget, and a forecast window. This is the level-select structure, and it generates variety for free:

Job types:

  • Shade install (summer bread-and-butter) — pure geometry puzzle: sun path, anchor options, client constraints ("nothing attached to the house", "must clear the pool fence").
  • Storm-proofing — a storm is 36 hours out; harden an existing site. Often someone else's bad work: the cowboy-job level type, where half the puzzle is finding what's about to fail.
  • Drainage fix — client's yard flooded last month. Read the terrain, find where the water wants to go, build it a path: grading, swales, French drains, ag pipe, catch basins.
  • Retaining wall — build or rebuild. Boulder, sleeper, or block; and every wall job is secretly also a drainage job.
  • Emergency callout — mid-storm, right now, double rates. The chaos levels. Someone's sail is flogging itself to death over their glasshouse.
  • Warranty calloutyour own past work failed. Unpaid. See Reputation, below.

Reputation & warranty — the consequence loop. Your finished work persists and gets weather-tested after you leave. Skimp on a shackle or skip the weep holes to pad your margin, and next storm you're driving back to do a free repair in the rain while your rating drops. Quality vs profit is the economy's real tension — not "can you afford good hardware" but "can you afford to find out you needed it."

Economy: earnings buy gear tiers (hardware, fabrics, drainage pipe, wall block), tools (a petrol auger vs a hand shovel is a life-changing upgrade when digging is time-boxed; laser level; power winch), truck/trailer upgrades (carry more per site trip — feeds the limited-hands mechanic), forecast subscriptions (radar!), and eventually an apprentice — a second pair of hands (AI helper, or the co-op slot).


Threat spectrum — not every level is a violent storm

Weather is a spectrum from slow pressure to acute chaos, and the game's rhythm comes from mixing them:

Threat Tempo What it tests
Heatwave / extreme UV slow burn, days shade coverage over time — the sun moves, your shadow map must track it
Steady rain slow, cumulative drainage capacity, ponding, saturated-ground anchor strength
Wind event acute, hours rigging quality, tension choices, weakest links
Thunderstorm acute + chaotic everything at once: gusts, dump rain, debris
Hail sharp burst coverage gaps + fabric choice
Frost / cold snap slow footings (frost heave), plant protection, brittle old fittings

Heatwaves are real levels, not downtime. UV index climbs, unshaded plants scorch by the hour, café customers won't sit in sun, and the shadow puzzle is dynamic because the sun arcs across the sky — a sail that covers the seedlings at 10am covers the fence at 3pm. Heat also affects you: work slows in the midday blaze, you need water breaks, and the smart landscaper works dawn and dusk. Slow-pressure levels are where the geometry brain gets to shine — and they make the storm levels land harder by contrast.


Core loop (per callout)

  1. The brief — client wants X, budget Y, forecast Z. Site inspection: walk it, probe soil, check trees, find the existing sins (crumbling wall, buried downspout that drains toward the house).
  2. Plan & build (timed) — the tower-defense build phase. Everything costs your time and your legs: trips to the trailer, digging, cure times, ladder work. Choose what to do well and what to gamble on.
  3. Weather test — sometimes you're on-site when it hits (storm defense: repairs, releases, chaos), sometimes it happens after you leave and you get the phone call.
  4. Aftermath — payment, reputation delta, warranty exposure, shop, next callout.

Geometry mechanics (the planning game)

Triangles vs quads — a real distinction, for free

  • A triangle through 3 points is always a flat plane. Cheap, easy, can't be twisted — so it ponds water unless pitched steeply, and presents a flat face to wind.
  • A quad with 4 anchors can be twisted into a hypar (raise two opposite corners, drop the other two). Hypars shed wind and water dramatically better. The 4th anchor point means something.

Anchor angle = force multiplication

Force on each anchor depends on the angle the sail's edges make at the corner. Pull two edges nearly parallel and the corner load multiplies. Show it with live force arrows during planning — the player learns vector decomposition without ever hearing the words.

Tension is a dial, not a checkbox

  • Drum tight: no flapping, but gusts transmit as shock loads straight into the anchors. Rigid systems break suddenly.
  • Loose: soaks up gusts, but flogs — continuous fatigue damage, and flapping slowly unscrews unmoused shackle pins (real).
  • Right answer depends on the forecast. There is no globally correct setting.

Height, pitch, and runoff

  • Low sails = better shade angle, more wind load.
  • One corner low = you choose where the rain goes. Sail runoff is an input to the site's drainage plan — dump onto the gravel swale you built, not the client's veggie bed. Sails and drainage are one system.

Layering and wind shadow

Sails shield each other. A cheap sacrificial windbreak sail on the windward edge drops the load on everything behind it — defense in depth, literal tower-defense lanes for wind.


The water layer: terrain, drainage, and earthworks

Rain doesn't disappear when it misses your sails — it lands on a heightmap and flows downhill. This is the second big system, and it's what makes the landscaper frame more than a reskin.

Surface flow

Coarse-grid flow sim over the terrain: water runs, gathers in low spots, pools, and erodes. Pooling drowns plants, floods the paved area the client paid for, undermines footings, and turns soil to the weak saturated state that lets posts pull out mid-storm. During heavy rain you can see the water finding every mistake in your grading.

Your drainage toolkit

  • Grading / re-sloping — the shovel-and-time solution; move the problem, don't fight it
  • Swales — shallow gravel channels; cheap, capacity-limited, visible
  • French drains / ag pipe — buried perforated pipe in gravel; expensive, digging time, but invisible and high-capacity. Where does the pipe discharge? Daylight it downslope, or you've just moved the flood
  • Catch basins & grates — point capture for hard surfaces and sail runoff
  • Rain garden / soakage pit — capacity buffer; overflows in the big one if undersized

Maintenance mechanic: drains clog. Autumn leaves are the classic — a perfect French drain full of leaf litter is a decorative trench. Return-visit upkeep jobs, and a reason grated inlets and cleanouts are premium parts.

Retaining walls — geometry meets hydrostatics

Boulder and block walls are the earthwork sibling of shade sails: pure applied geometry with legible failure.

  • Boulder walls: biggest stones on the bottom, batter (lean the wall back into the slope), interlock. Stacking is a physical placement puzzle — your chaos engine already knows how to make a bad wall fall over.
  • Timber sleeper walls: cheap, fast, and they rot — a wall you built in year one is a warranty callout in year three.
  • Block/masonry: strong, expensive, unforgiving of bad footings.
  • The killer is water, not soil. Rain saturates the backfill, hydrostatic pressure builds, and the wall bulges → weeps mud → blows out. Telegraphed by cracks and creaks, survivable if you run out and relieve it. Prevention is drainage: gravel backfill, ag pipe behind the base, weep holes. A wall without weep holes is a dam that doesn't know it yet.
  • Surcharge: weight above the wall (parked trailer, boulder pile, the shed the client wants "right at the edge") multiplies the load. Another live-force-arrow teaching moment.
  • Wall failure mid-storm = boulders and a mudslide entering the debris system. The chaos layers compound: wall fails → mud flow undermines a sail post → sail goes → sail wraps the neighbor's fence.

Anchors (the tower slots)

Trees — free, tall, already there. But they move: sway adds dynamic load spikes, branch strength is uncertain (inspection = intel), and big storms shed limbs that become debris. Rigid-strapping to a big tree snaps turnbuckles like wishbones; the counter is a spring/shock absorber component. Tree roots also invade drainage pipes over seasons — the systems touch.

Buildings — rigid and reliable, but only at real structural points. The fascia board is a lie: holds until the first real gust, then rips off taking the gutter with it (collateral cost + new flying debris you created). Strong points are scarce and fixed.

Posts you place — full freedom, full cost. Footing quality (dirt < gravel < concrete), concrete cure time (a post poured 2 hours before landfall is coming out of the ground), digging time, and correct practice is to rake the post away from the load. Saturated soil weakens footings mid-storm — a post in wet ground pulls out slowly, with creaking: an audible warning you can run toward. Good site drainage literally makes your anchors stronger.

Plus guy lines and screw-in ground anchors as the cheap patch layer.


Every corner is a chain: sail ring → shackle → turnbuckle → chain/wire → pad eye → anchor. Each component has a working load limit and a failure mode:

Component Cheap version fails by Notes
Shackle pin unscrews (if not moused), then shears flogging accelerates unscrewing
Turnbuckle thread strips, or bends then snaps also your tension adjuster — dual use
Wire rope frays first (visible warning), then parts inspect for fray = free intel
Chain honest — holds to rating, breaks clean heavy to carry
Carabiner fast to clip, weak, gate flutters open the "I ran out of time" option
Sail ring / stitching corner rips out of fabric worst outcome — ruins the sail

Design rule: the failure chain must be legible. One corner lets go → sail flogs → load on remaining corners roughly triples → cascade → the loose sail is a 30 m² kite hunting the rest of your work. Every disaster should replay in the player's head as "…the shackle. I knew about the shackle."

Budget tension: good hardware everywhere is unaffordable. You will field one dodgy corner — the game is choosing which one, and where the blast radius is smallest.


Storm phase (the chaos engine)

Wind

Base vector + gust spectrum. Gust fronts are readable — a wave of motion crosses the grass and trees a beat before it hits your sails. Lulls are repair windows. Direction can veer mid-storm ("southerly change at 2am") — the rig that was perfect for a westerly is now loaded backwards.

Rain → ponding and flow

Flat sails collect water; water is heavy; the belly collects more (positive feedback) until sudden dump, tear, or corner failure. Counter: run out and poke the pond with a broom — the funniest correct mechanic in the game. Meanwhile every drop that lands is running through your drainage plan, and heavy rain finds what you skimped on.

Hail

Punishes coverage gaps directly, loads sails, punctures cheap fabric. Fabric choice is a forecast bet:

  • Shade cloth (porous): wind blows partly through — much lower load. Useless against rain.
  • Waterproof membrane: stops rain and hail, takes full wind load, ponds if flat.

Debris

Branches, wheelie bins, the neighbor's trampoline (arrives in act two of any big storm), mud and boulders from a failed wall, and worst of all: anything of yours that failed earlier. Pre-emptable in prep — strap the bins, ask about the trampoline. Reward players who defend against the map, not just the weather.

You, the small person

Weather affects you: gusts shove you, rain slows you, heat exhausts you, ladder work at height in wind is genuinely tense, and standing under a failing sail is a bad place to stand.

Tools (limited hands — choose a loadout): wrench (tension/hardware), broom (ponding), patch kit (stop tears before they run), shovel (emergency drainage relief — cut a channel, relieve a wall), knife (cut a sail loose — lose the sail, save the anchors), quick-release corner (installed in prep: deliberately depower a sail mid-storm). The signature decision under load: release, cut, or ride it out.


Site features & side-systems — the yard is a puzzle box

Every callout site is assembled from features that each carry a mechanic. The more of these on one site, the more the systems collide:

Lawn mowing — filler income between big jobs, and a reveal mechanic: long grass hides sprinkler heads, buried pipe, stakes, and rocks. Mow blind and you eat blade damage — or worse, the mower throws a stone, and if there's a glasshouse in range you just bought new panels. Mowed ground also shows the terrain's true fall lines (drainage intel), and stripes are their own reward.

Leaf blowing — the autumn side-game, and secretly a wind-geometry tutorial: blowing against the breeze is comedy, working with it is technique. Leaves clog drain inlets, gutters, and pools; piles you don't bag in time get re-scattered by the next gust. Clearing the inlets before the rain arrives is a real defense action, not chores.

Tree pruning — the order puzzle. Branches have weight, lean, and a fall arc you can read. Every cut re-balances the limb and the tree, so sequence matters: right order drops limbs into the clear zone (or exactly where you wanted a log); wrong order puts one through the glasshouse, the fence, or your own sail. Rope-assisted directional felling for the big stuff. Strategic layer: pruning reduces the tree's wind load and storm-debris risk, but a removed branch is an anchor point lost forever — and sometimes the right cut unlocks something: a new anchor line, morning sun onto a shaded bed, clearance for the sail you couldn't fit before.

Glasshouses — the maximum-fragility asset. Hail apocalypse, mower ejecta, branch drops, debris. Jobs: hail nets and mesh sails rigged over glass, where your own failure is the worst debris of all. Highest pay on the board, highest collateral. Achievement: Don't Throw Stones.

Wet concrete — pours are timed commitments. Fresh slab must be kept clear of rain, hail, leaves, the client's dog, and your own feet until cured — rig a sail over the pour, plan your walking routes, and check the forecast before you commit, because a ruined slab is a jackhammer day. Pour-deadline vs incoming-weather is a beautiful pressure decision.

Trampolines — secure the client's (tie-down kit, sandbags) or it will be the storm's opening projectile. Fun-over-realism option: a bounce route to a high anchor you can't reach by ladder.

Swimming pools — a constraint bundle: pool-fence compliance restricts where posts can legally go, chlorinated air corrodes cheap hardware faster, drainage must never discharge into the pool, leaves in the water make the client cold-call you, and falling in mid-storm dumps your carried tools.

Granny flat — a second roofline changes everything: more building anchor edges, shade-walkway jobs between the buildings, and the alley between house and flat funnels wind (venturi acceleration — locally faster wind in the gap, real and mechanically juicy). Plus an occupant NPC: granny brings lemonade during heatwaves.


Four seasons — the campaign clock

The year is the campaign structure. Each season biases the callout mix AND changes the physics:

Summer — heatwaves and UV jobs; shade is the product. Sun is high (short shadows — different coverage geometry). Soil is baked hard: digging is slow, but anchors hold well. Afternoon thunderstorms: short, violent, hail-prone. Peak earning season.

Autumn — the maintenance season. Leaves clog drains (upkeep callouts), steady soaking rains test every drainage job you did in summer, first big blows arrive. The season your warranty exposure comes due.

Winter — low sun means long shadows and a flipped brief: clients now want sun let through — removable/seasonal sails, and the deciduous-tree trick (nature's seasonal shade sail: leaves in summer, bare in winter — passive solar design as a mechanic). Frost heave attacks shallow footings, saturated ground is at its weakest, old fittings go brittle. Fewer jobs, harder conditions, plan-heavy.

Spring — everything grows: trees thicken (stronger anchors, more wind area), roots invade pipes, grass hides yesterday's problems. Wind season, hail season, mud season. New-build jobs surge.

The seasonal sun angle is the quiet unifier: a sail installed for the summer sun is wrong by winter, so seasonal-adjustment callouts are a natural job type, and players internalize real passive-solar thinking without a tutorial.


Score & economy

Earn per callout: brief fulfilled (shade-hours delivered, dry floor area, wall holds), speed bonus, weathered-the-event bonus, emergency rates. Lose: destroyed hardware, torn sails, collateral (your flying sail through their window, ripped guttering, flooded neighbor), warranty callouts (unpaid work), reputation. Spend: hardware tiers, fabrics, drainage stock, wall materials, power tools, truck/trailer capacity, forecast upgrades, the apprentice.


Modes

Campaign: four seasons, escalating regions — suburbs → hills (retaining wall country) → coast (salt corrosion, sea wind) → cyclone-region town. Storm season (roguelite): fixed budget, procedural callout + forecast sequence, survive the year solvent. Sandbox: unlimited budget, storm designer sliders, break things for fun — the chaos physics carries this mode by itself. Maybe: async multiplayer — weather a storm on a site another player built; their corner-cutting is your emergency callout.


Feel & tone

  • Cozy-with-teeth. Heatwave days are gentle and puzzly; storms are loud, dark, genuinely stressful. The contrast is the hook — Overcooked pacing swings, Besiege structural failure.
  • Failure is spectacular and funny, never bugged-feeling. A cascading sail failure is a firework you paid for.
  • Sound does heavy lifting: rope creak, fabric flog, the tink…tink… of a shackle pin backing out, water starting to trickle behind a wall, the ripping note of a tear starting to run. Players learn to defend by ear.
  • Real units (kN on load meters, real WLL ratings, actual fall ratios on drains) — the Kerbal trick. People should leave this game able to rig a real sail and drain a real yard.

Prototype scope (find the fun fast)

The landscaper service is the campaign wrapper — the prototype is still one yard and one storm:

  1. Top-down or ¾ 2.5D single yard. One building edge, two trees, placeable posts.
  2. Sail = spring-mass grid (even 4×4 nodes) with wind vector + gust noise per node. Tension = spring stiffness. This alone gives flapping, bellying, believable corner loads.
  3. Corner loads vs component ratings → weakest-link failure → freed sail keeps simulating (chaos for free).
  4. One protected thing, one storm with a gust track, one walking character with a wrench.
  5. The test: does watching a load meter climb on a corner you know is under-shackled, while you sprint across the yard in the rain, feel great?

Then the second prototype spike is water: heightmap + coarse flow sim + one swale tool + one wall that can blow out. If both spikes are fun, the callout structure just multiplexes them.

Engine thought: Godot fits (cheap iteration, exports everywhere); spring-mass sails and grid flow are simple enough to hand-roll anywhere — even a web prototype proves the loop.


Open questions

  • Camera: plan in top-down, weather the storm in ¾? (Current lean: yes.)
  • Player damage: knockdown + lost time, never death — keep the stakes on the work.
  • How simulated is water? Coarse grid flow is probably enough; full shallow-water sim is a trap.
  • Night storms: lightning-flash-only visibility as a late-game modifier; lightning makes tall posts scary.
  • Client personalities as soft constraints ("I don't care what it costs" vs "cheapest option, and I'll sue") — cheap flavor, real puzzle variation.