Game
HUD & UI: an almost empty screenUI
What's on the screen. An almost empty HUD with a place for everything (you, the world, the job, your hands, the voices), the prompt by the dot, one line for news, subtitles, and the screens E opens, with the morning paper and grandma's phone and answering machine first.
You look at the lawn, not at the HUD. Most of the time the screen holds a faint dot and nothing else: the mower tells you how it's doing, the sky tells you the time of day, the family tells you what to do. Things appear when they matter and fade when they don't, each always in the same place. And when E opens something, it looks like the thing you opened: the morning paper is newsprint, grandma's answering machine has a green LCD and a cassette.
The player's view
Waking up. The screen is the room: a faint dot in the middle and, small in the top-left corner, "Tue 7:02" with a little sun. Nothing else. You look at the bedroom door and "E Open" sits next to the dot, a keycap and a verb. You walk down the hall past the phone; the answering machine's red light blinks. You'll get to it.
The paper. It's on the doormat, as grandma's note promised. E, and the camera dips to your hands holding The Daily Clipping: a newsprint front page with today's date, a headline about a pigeon, a grainy photo of the street, "Around the Lane" gossip ("A certain lawn at No. 24 is becoming a talking point") and the weather. Esc puts it down; it waits on the kitchen table for the rest of the day.
The answering machine. E on it: the LCD says 2, the first message plays with a beep. Dad, from the airport. His words run along the bottom of the screen with his name in front, and they stay on a little card for that message, so you can read them again. The next one is a stranger: "Hi, this is Mrs. Parker at No. 25, Edna gave me your number..." Under her card, Call back.
The call. The camera tilts to the handset in your hand, cord and all. Mrs. Parker's name card says "Particular", and she says it too: "I like it just right. I'll be checking." Three answer cards: "Sure, $40.", "Could you do $44?", "$50 and it's a deal." You pick the middle one and your sibling says it out loud. "Oh... all right, dear." Booked: a line slides in at the top, "Mrs. Parker: Thursday, $44", and grandma's calendar has a new handwritten line. Your brother, standing by the stairs, heard the whole thing on the speaker, subtitles and all.
Mowing. Mrs. Parker's lawn. At the start a small card unfolds under the top of the screen: her name, "Particular", the lawn to mow. It folds into a thin progress bar as you start the engine. Pull the cord: "Pull! (2/3)" sits in the bottom-right corner, where everything about your hands lives, and fades once the engine catches. Click the blade lever up: "5 cm" appears there while you hold the lever, then fades. The rest you hear and feel: the engine bogging in thick grass, the bag's flap closing as it fills. At 96% the bar says "3 patches left" and the missed bits shimmer gold on the lawn. Stand still a moment with the engine off and the job card unfolds again; walk on and it folds.
Getting paid. You knock, she comes out, looks, and says "That'll do nicely." A comic "+$44" pops out of her hand, and under the clock, for a few seconds, the company's money ticks up to $212.
With your brother. He's at the back of the lawn. You hear him mutter "Ugh, a dandelion the size of a tree" and his line shows at the bottom with his name in his colour. When he empties the bag, your prompt on the same mower says "Sam's emptying it" in grey. When he picks up the phone at home, a line tells you "Sam picked up: Grandma", and if you're close enough, you hear her and read her.
Gauges. In the settings, Gauges brings back the dials for players who want them: load, speed and bag bars in the hands corner, the fuel and condition rings, an arrow to the nearest missed patch.
Ideas
UI1: one HUD, almost empty
One HUD for every place: the house, the street, the store and every garden (today the hub's walking HUD in
GarageUI and the job's HUD.uxml are two). Each kind of information has one home on the screen and nothing else
goes there. Nothing is on screen unless it matters now.
- You (the centre)The dot, the hold ring and the prompt (UI2). Always there, faint.
- The world (top left)The day and time, the weather, and the money when it changes (UI3).
- The job (top centre)The job card and the progress bar (UI4), and under them the news line (UI6).
- Your hands (bottom right)The belt, the mower line, the key hints, and with Gauges the bars and rings (UI5).
- The voices (bottom centre)Subtitles and captions (UI7).
- Shown when it matters: every element has a reason to appear (it changed, it's low, you asked) and fades
fadeOutafter the reason is gone. The dot, the clock line and the progress bar in a job are the only things that stay. - The look: Fredoka on its own, no panels: cream text (
hudText) with a soft blue-grey outline and shadow (hudOutline), never black, so it reads on sky, grass and the night grade (DY3). Warnings in warm amber, damage in a soft tomato red; nothing flashes or blinks on the HUD (the world blinks: the answering machine's light, the missed patches' shimmer). Things slide and fade infadeIn; nothing pops in hard except the comic pops (UI6). - The top-right corner stays free for the save's polaroid (MN2), the only thing that ever goes there.
- Leaves the HUD: the company name and logo, the net worth line, the "[Tab] Menu" hint, the job's elapsed and par timer (dev builds keep it in the sandbox), the client's nametag and mood word, the wallet's "this job ~$N", the leftover arrow (Gauges only), the centre "pop" messages (into the news line).
- Scale: the HUD follows the panel's 1080p reference (as built); the UI scale setting is MN10's.
- Dev builds: the sandbox panel (F1, SB1) and dev readouts (J3) are never part of the HUD and never ship.
Needs: - · Done when: the house, the street and a garden show the same HUD in the same places; walking around the house shows only the dot and the clock line; every element listed as leaving is gone from the default HUD; each remaining element appears for its reason and fades after it.
UI2: the dot and the prompt
The look of PL3's dot, ring, outline and prompt, which PL3 left to this spec. The rules (what E picks, press or hold, greyed reasons) are PL3's.
- The dot:
dotSizeacross, cream with the outline, atdotIdleopacity;dotTargetwhile something is targeted. - The prompt,
promptGapright of the dot, on one line: a keycap then a verb and its object:[E] Talk to Mrs. Higgins,Hold [E] Empty the bag. The object's name is how the HUD names people now that nametags are gone.- Keycaps are drawn, not typed: a little rounded key with its letter for the keyboard and mouse ("E", "Tab", a mouse with its left button filled), a round button in its colour for the pad (A green, B red, X blue, Y yellow). They follow the device you touched last (PL5); PL9 adds the PlayStation and Steam Deck families.
- A hold says "Hold" before the keycap; its ring fills around the dot (
ringSize), and drains as PL3 says. With holds as presses (PL6), "Hold [E]" becomes "[E]", then "[E] again to confirm" for endings. - Greyed: the whole prompt at
greyAlpha, no keycap, the reason as the verb: "The bag's empty", "Sam's emptying it", "Ask Sam to start". A refusal from the host (CO13) greys the prompt the same way, never a pop-up. - Two actions (press and hold on the same thing, PL3): both on one line,
[E] Skills · Hold [E] Train.
- The outline: a warm
outlineColorrim ofoutlineWidth, never white; on a greyed target, the same rim, dimmer. - Other keys in a prompt: when the thing in your hands has a key of its own that matters right now (the cord's R when the engine is off and you're on the bar), it shows in the hands corner (UI5), not next to the dot.
Needs: PL3, PL5 · Done when: every prompt in the house, the street and a garden uses the keycap, verb and object line; switching from the keyboard to the pad swaps every keycap at once; a greyed prompt shows its reason and no keycap; a hold's ring fills and drains around the dot.
UI3: the clock and the money
The top-left corner: the world and the company, small.
- The clock line, always there in the MVP (the watch and the cuckoo come with DY4): the day's short name and the
time,
Tue 9:41, and today's weather as an icon (as built; WE2 adds the period and the next one, DY4 the 17:00 warning). The time showsminute % 1440(DY1). In a job the lawn's wet % follows it while the grass is wet (MO8a's "wet % by the clock"). - Brighter on the hour: the line sits at
clockAlphaand brightens for a moment when the hour turns, so you notice 12:00 without watching it. - The money: never on screen by itself. When the company's money changes (pay at the door, EC8; a bill; a purchase)
a second line slides in under the clock,
$168 → $212, counts up, holdsmoneyShowand slides away. It's the company's money until wallets (EC2) bring your pocket, which then shows the same way. - Pausing (Esc, MN8) shows the clock line and the money together, for a player who wants to check.
Needs: DY1 · Done when: the clock line shows the day, time and weather everywhere and follows the host's
clock on a guest; a pay at the door slides the money line in on both machines and away after moneyShow; at rest the
corner holds the clock line only.
UI4: the job at the top
The top centre, in a job only.
- The job card: the client's name, their expectation word (Easy-going, Neat, Particular, Perfectionist: J3), and
the tasks (as built, with ✓ when done). It unfolds when the job starts and when a task is done, and whenever you
stand still with no engine running for
cardIdle; it folds as soon as you move or an engine starts. No mood word, no score: the client's face and lines say how it's going (J3 keeps the score hidden). - The progress bar (kept by MO8a): a thin bar for the task of the thing in your hands, with the client's target as a notch; it shows while you hold that task's tool, and stays thin.
- The last patches: from
leftoverFromthe bar adds "3 patches left"; the missed cells shimmer gold on the lawn (built). The arrow to the nearest one is Gauges only. - Missing a tool: a task whose tool you didn't bring says so on the card ("No trimmer"), as built.
- Finishing: the F key's prompt (PL5) shows on the card's last line when every required task is done.
- Gauges adds the score needle against their expectation (the Relaxed preset's needle, J3).
- With J10: standing still unfolds the card into the full job sheet (J10's sheet in your hand); no key of its own, since Tab is the next tool in a garden (PL5).
Needs: UI1 · Done when: a job starts with the card unfolded, folds when the engine starts, unfolds when you
stand still with the engine off; the progress bar shows the target notch; "patches left" appears from leftoverFrom;
no mood word or score shows without Gauges.
UI5: your hands
The bottom-right corner: everything about what you hold, and the keys it uses. MO8a decides which mower states the default HUD shows; this is where and how.
- The belt (PL4): the slots slide in when you switch (1-6, Tab, Q, the D-pad) and for
beltShowafter, the one in hand raised; a slot a sibling holds shows their initial in their colour ("Sam has the trimmer" is the greyed prompt, PL4). Away from a job the belt is empty and never shows. - The mower line, one short line above the belt for the mower's moment, shown while it's true and
lineHoldafter: starting ("Prime it (0/3)", "Pull! (2/3)", the engine catching), the blade lever while you move it ("5 cm", MO5; per-wheel: "Front-left 4 cm · deck 5/6 cm, tilted", MO5d), fuel low (an icon that stays while it's low), scalping (the line in red). Everything else MO8a gives to sound, sight and the hands. - Key hints: the keys of the thing you just took, on one line ("[R] Pull the cord · Wheel / [ ] Blade height ·
Hold [E] Empty"). They show the first
hintTimestimes you take it, and again when you've had it in hand forhintStuckwithout using it. Hints teach keys, never what to do (TU8: that's always a person or a note). Every key that works is named (PL5). - Gauges (MO8a, the setting in MN9's Game tab): the LOAD, speed and BAG bars always shown above the belt, the fuel and condition rings beside them, the worn-part chips, and the leftover arrow and score needle in the job's place (UI4). Switching it changes nothing else (DF1).
Needs: UI1, MO8a, PL4 · Done when: with the default HUD a whole mow shows only the start line, the lever label while it moves, the low-fuel icon and the hints the first times; with Gauges on, the bars and rings stay up; a slot held by a sibling shows their initial.
UI6: the news line and the pops
One place for news, under the job at the top centre. It replaces the job's banner, the hub's two toasts and the centre pop.
- A line with a small icon: "Mrs. Parker: Thursday, $44", "Sam picked up: Grandma", "Kevin dropped out" (CO10),
"Sam walked off the job" (CO11), a nearby sibling's read note (TU2). It shows for
newsShow, at mostnewsMaxat once, newer ones pushing older ones up; a queue keeps the rest. - Kinds: news (cream), a sibling's doing (their name in their colour), a warning (amber: "The bag's full", when
the bag's flap and the sound haven't been enough for
warnAfter). - What never goes there: refusals (the prompt says why, PL3), lessons (TU8), saves (the polaroid, MN2), and anything that needs a click. Nothing on the HUD ever stops the game or asks for a click.
- The pops: the comic labels that jump out of the world and fade (built,
WorldPops): money at the moment it changes hands ("+$44" from the client's hand at the door, EC8) and mishaps ("OOPS" on a broken pot, "CLANK" on a stone hit if captions are off). Silly, short, never more thanpopsMaxat once, never for anything else.
Needs: UI1 · Done when: in the house and in a garden every message the game sends arrives on the one news line (no toast, banner or centre pop left); a booking, a sibling's pick-up and a drop-out each show there on both machines; the door's pay pops "+$" from the client's hand.
UI7: subtitles and captions
Every voice is subtitled and every important sound captioned (SN1), on one strip at the bottom centre, for the intro, the phone, clients, the family and the siblings alike.
- A subtitle: the speaker's name in their colour, then the line, at most
subMaxLineslines ofsubLineChars, on screen at leastsubMin. A voice through a phone or the machine gets a small phone icon before the name. Siblings' names use their own colour (the same one as their initial on the belt). - Who sees what: you see the lines of voices you can hear: within
subRangeof you and not behind a closed door (SN1's path). A call on the speaker is heard, and read, by every sibling near the phone; the one holding the handset hears both sides. - Off-screen speakers: a small chevron at the strip's edge on the speaker's side ("Mrs. Higgins >"), for anyone outside your view.
- Captions are SN1's (the text and direction come from the sound list: "[CLANK, left]", "[phone ringing, inside]"): they use the same strip, in brackets, in italic, under the subtitles.
- Your sibling's mutters: the ego quips (
EgoQuips, today a thought bubble fromThoughts) become lines your sibling says under their breath, in their voice (SI2), subtitled like any line, at most one everyquipGapunless a moment forces it (as built). The MVP keeps the bestquipLines(one to three per moment), voiced in every sibling voice; the other lines wait for later. The thought bubble goes. - Speech bubbles go: clients' lines (today a bubble over the head, or a subtitle when off screen) are subtitles like everyone else's, and voiced.
- The intro: its letterbox subtitles (
HubStory) are the same strip, raised above the letterbox. - Settings (MN9's Game tab): Subtitles (on by default) and Captions (on by default); each player's own.
Needs: SN1 · Done when: every voiced line in the MVP shows as a subtitle with its speaker's name, including the siblings' mutters; on two instances, a call on the speaker is subtitled for the sibling near the phone and not for one in the garden; a client off to the left gets the chevron; turning Subtitles off hides them and leaves the captions.
UI8: the screens E opens
What every station's screen shares: the paper, the phone, grandma's calendar and notes, the computer, the bench, the fridge (MN4). Each screen looks like its object; these rules are the same for all of them.
- Opening: E on the thing (PL3). The camera blends to it (PL2's shots) or dips to your hands for things you hold (the paper, a note, a receipt); the screen fades in as the camera arrives.
- The look follows the object (no text on props: the screen carries it):
| Object | Paper and ink | Font |
|---|---|---|
| The Daily Clipping, the receipt | newsprint, black ink, a grainy photo | Old Standard TT |
| Grandma's notes, calendar, book | pink and lined paper, her pink pen | Patrick Hand |
| The answering machine | beige plastic, a green LCD | VT323 for the LCD, Nunito for the cards |
| The old PC | the beige OS | VT323 |
| Game screens (pause, settings, the fridge) | cream cards | Fredoka titles, Nunito text |
- One at a time, with a way back: a screen opened from a screen (the calendar's "Go to work" opens the jobs list; the machine's Call back opens the call) goes back one step on close, as built.
- Closing: Esc, E (on paper things), B or Start; Esc always closes or steps back before it would pause (UI15). A close hint at the bottom says how in the object's words: "[Esc] Put the paper down", "[Esc] Hang up". The E that closed a screen never also re-opens it (as built).
- The cursor: free and visible while a screen is open, locked and hidden as soon as it closes. A pad drives every screen with focus later (PL9).
- The HUD: hidden behind a screen, except the news line and the subtitles, which keep coming.
- Time: solo, a screen pauses the clock (DY1, the paper, the phone, the calendar, the computer); online nothing pauses, and nothing about a screen says so (MN8 says it once).
- Seen by the others: your sibling sees you with the paper up in both hands, the handset at your ear, sitting at
the computer (a
NetPoseflag, like carrying). You can't miss that your brother is reading the funnies instead of loading the car.
Needs: PL3 · Done when: the paper, the machine, the call, the calendar and a note all open with E, close with Esc and their own hint, give the cursor back to the game when closed, and pause solo only; on two instances, the other player sees the paper in your hands and the handset at your ear.
UI9: The Daily Clipping
The morning paper: something to read with the first coffee, and the street talking back to you. In the MVP it carries news, not client ads (J3).
- Arrival: on the doormat at 7:00 (DY1; grandma's note says so, TU2). E picks it up and opens it; closed, it lies on the kitchen table for the rest of the day (E reads it again). Yesterday's goes in the recycling. One paper a day for the company: every sibling can read it, at the same time, on their own screen.
- One front page, in this order:
- The masthead: The Daily Clipping, "All the news that's fit to mulch", the date, "Vol. 71 · No." the day, 25¢.
- The headline and its photo: one a day. Story days have their own: the morning after grandma's lawn ("Lawn
at No. 24 'less of a jungle', say neighbors"), the morning after Chad's scene ("Red sports car seen doing 9 mph
on Primrose Lane, filming"), the MVP's last morning (Chad's video goes viral, ST10). Other days pick from a pool
of silly local news (a pigeon on the parks committee, a record zucchini, the bus that won't turn around), seeded
by day (
State.seed, SD4), never the same twice in a game. The photo is an in-engine shot of the place the story is about, printed with a halftone newsprint filter: no drawn art needed. - Around the Lane: three short gossip items. One follows grandma's lawn (TU5's street standing: neat, shaggy, jungle each have their lines: "A certain lawn at No. 24 is becoming a talking point"), one the street's people (the cast, CH2), one a joke.
- The weather: today and tomorrow as icons and a word each, in °F, from the weather as built (WE4's 3-day box comes with the forecast).
- The little ads: three or four silly ones from a hand-written pool ("LOST: Gerald. Pigeon. Answers to nothing."). No numbers to call, no clients (J3); J4 and the later channels bring real ads (UI11).
- Words: every headline and item is hand-written in a pool (
ClientTextstoday), American English, short.paperPoolitems per kind for the MVP's days, no repeats in a game.
Needs: UI8, DY1 · Done when: each morning of the MVP's days has a new paper on the mat at 7:00, the same on both machines; the three story mornings print their own headline and photo; Around the Lane changes when grandma's lawn goes from neat to a jungle; the built paper's classified ads and their Call button are gone.
UI10: grandma's phone and answering machine
The corded phone on the hall table and the answering machine beside it: in the MVP, the only way the world talks to you at a distance (TU3, J3). The behaviour (who calls, when, what they say, the haggling odds) is TU3's, J2's and J3's; this is the two screens and how they feel.
The ringing
- The phone rings out loud through the house and the front yard (SN1, with its caption)
ringCounttimes on every machine (TU3). At the phone:[E] Answer. Nothing on the HUD: you hear it, or read its caption. - Unanswered, it's a message. The machine's red light blinks while it holds a new one: you notice it walking by.
The machine
- Its screen: the beige machine from above, its LCD showing the count of new messages, and the tape: one card per message, oldest first, each with who (the name they gave: "Mrs. Parker, No. 25"; else "Someone"), when ("Tue 10:42") and a dot while it's new.
- Playing: opening the machine plays the new ones in order, each with its beep, the voice (with the phone filter) and its subtitles; the card fills with the words as they're said and keeps them. [Space] skips to the next.
- On each card: Play again; Call back when the caller wants something (a job request); Erase. A request's card also says how long it waits ("Wants it by Friday").
- Heard by all: a message played by one sibling is heard for the company (
MarkReadCommand, as built); a sibling near the machine hears it on the speaker with subtitles.
The call
- The handset in your hand: the camera tilts to the phone, the handset at your ear, the cord swinging.
- The caller's card: their name, how they know you ("Edna gave me your number"), and their expectation word (J3). People you've met get a small drawn portrait; strangers a silhouette with a question mark.
- Their lines are subtitles (UI7), with the phone filter on the voice.
- Your answers: up to four cards, each a line your sibling will say, with the price in it: "Sure, $40.", "Could you do $44?", "$50 and it's a deal.", "Sorry, we're full this week." (J3's +10% and +25%). Picking one, your sibling says it out loud (SI2's voice), the caller answers. Story calls (grandma, J2's lesson) have their own cards, or none when you only listen.
- The end: a deal goes on grandma's calendar in her handwriting (TU2) and on the news line ("Mrs. Parker: Thursday, $44"); a refusal ends with their line and the click (J3: refused = they hang up). [Esc] Hang up at any point: hanging up before a deal declines it politely.
- One handset: whoever picked it up holds the call. At the phone, the others' prompt says "Sam's on the phone", they hear both sides on the speaker and read the subtitles, and the news line tells everyone further away "Sam picked up: Mrs. Parker". The deal is the holder's (actor recorded).
Needs: UI7, UI8, TU3 · Done when: a call that rings out lands on the machine, whose light blinks on both machines; opening the machine plays the new messages with subtitles and keeps their words on cards; Call back opens the call with the caller's card and answer cards, a deal lands on grandma's calendar and the news line; in 2-player co-op one sibling holds the handset while the other hears both sides on the speaker and can't answer.
UI11: the paper grows
The paper as the game grows: your own ad (J4), the classifieds that bring small clients and used mowers (EC6, WK3, MO10), the 3-day weather box (WE4), front pages about your work (GA8) and the town's news (Old Walt's letter, WK4; storms, WE1), a second page you turn, and a comic strip of the street.
UI12: the call grows
J7's price and day on the answer cards, live client calls at home and the race against rivals (J6), calling anyone from grandma's book (CH12) by number, phoning ahead when you're late (J10), and grandma on the phone any time you want her ("Is that you, sweetie? I'm watching my program").
UI13: a phone of your own
The screen for J25's phone: first a cheap flip phone (calls and voicemails on the go, a green screen), later a smartphone with apps: the book (CH12), the bank and your pocket (EC2), the camera (J14), the day plan (J10), the weather (WE4). The same cards and subtitles as the house phone, smaller and in your hand.
UI14: a clean screen
One key hides the whole HUD, prompts included, for screenshots and trailers; again to bring it back. A photo mode (free camera, no HUD, the sun moved) could grow from it.
UI15: Esc is the only menu
In the MVP the house has no menu of its own: the things in it are the way in. Today Tab (View on a pad) opens
GarageUI's side menu with four tabs, Jobs, Van, Workshop and Shop, from anywhere in the house; that shortcut goes,
and with a mower-only MVP two of its tabs go with it.
| Today's tab | In the MVP |
|---|---|
| Jobs | A list, opened from grandma's calendar ("Go to work", TU2): today's and the booked jobs, where and when, and how you get there ("Walk to Mrs. Parker's gate", "Take the car: the keys are on the hook"). No Go button: a walked job starts at the knock (TU7), a driven one at the car's door with the keys (CO11). No tools check: the car loads itself. "[Esc] Back to the calendar". |
| Van | No screen. A driven job takes the mower and its fuel can along by itself; you roll the mower out at the curb (TU7). The loading puzzle (a grid footprint per tool, a bigger van as an upgrade) comes back with more tools (waiting in Leftovers from the old plans). |
| Workshop | The workbench in the garage (MO4), with UI8's rules: "[Esc] Step away from the bench". |
| Shop | None. Grandma's garage shelf has the fuel and oil the mower needs. Buying comes back with the hardware store and GreenGear on the computer (UI16). |
- Tab and View do nothing in the house, the street and the store. In a garden Tab is the next tool (PL5), as before. The "[Tab] Menu" hint leaves the HUD (UI1).
- Esc (Start on a pad) closes the open screen first, one step at a time (UI8); with nothing open it opens the pause menu (MN8), everywhere outside a cinematic: the game's only menu.
- For now: once the siblings own a phone (UI13, J25), its apps bring shortcuts back (the calendar's day plan, the book, the bank, the shop), on the phone in your hand rather than a menu over the house.
- Never stuck: whatever the MVP needs from the old tabs has its thing in the house from the first morning.
Needs: UI8 · Done when: in the house, the street and the store, Tab and View open nothing; the jobs list opens from grandma's calendar, shows how to reach each job and starts none; a driven job arrives with the mower and the fuel can without a loading screen; the bench opens from the workbench; no shop screen is reachable; Esc closes an open screen and pauses only with nothing open; in a garden Tab still switches tools.
UI16: the computer's apps
Grandma's old beige PC and what runs on it, beyond the apps other specs own (Cloud Nine, WE4; the company page, TU5; the ledger, EC1). It boots slowly, retro (VT323); the desktop PC upgrade is instant and modern. Apps waiting for a spec: Nest & Rest (bases to rent, EC5), Starzly reviews written from what happened (flowers mown, stripes, tips), and GreenGear's catalogue (supplies, tools, vans, things for the house, paint, the painter). GreenGear is cheap and delivers overnight (you order stock in the evening); the hardware store is instant, far and dearer. The MVP has no shop (UI15).
Tuning
| Name | Value | Idea | What it does / why |
|---|---|---|---|
fadeIn / fadeOut | 0.25 s / 0.6 s | UI1 | how things arrive and leave; soft, never hard |
hudText / hudOutline | warm cream / blue-grey, ~2 px | UI1 | readable on grass, sky and the night grade, never black |
dotSize | 6 px at 1080p | UI2 | as built |
dotIdle / dotTarget | 40% / 90% opacity | UI2 | faint at rest, clear with a target |
promptGap | 18 px | UI2 | the prompt starts right of the dot |
ringSize | 28 px across | UI2 | the hold ring around the dot |
greyAlpha | 55% | UI2 | a greyed prompt stays readable |
outlineColor / outlineWidth | warm sun yellow / 2 px | UI2 | PL3's outline, never white |
clockAlpha | 75%, 100% for 3 s on the hour | UI3 | present, quiet |
moneyShow | 4 s after counting up | UI3 | long enough to read the new total |
cardIdle | 2 s still, engines off | UI4 | the job card unfolds by itself |
leftoverFrom | 95% of the task | UI4 | when "patches left" appears |
beltShow | 2.5 s after a switch | UI5 | |
lineHold | 2 s after the state ends | UI5 | the mower line's fade |
hintTimes | the first 3 times you take a thing | UI5 | then hints stop |
hintStuck | 30 s in hand, unused | UI5 | the hint comes back |
newsShow | 4 s | UI6 | one news line |
newsMax | 2 lines at once | UI6 | the rest wait in the queue |
warnAfter | 10 s | UI6 | a warning only after the world's own signs had their chance |
popsMax | 3 at once | UI6 | |
subMaxLines / subLineChars | 2 lines / 42 characters | UI7 | the usual subtitle limits |
subMin | 1.5 s | UI7 | the shortest a subtitle stays |
subRange | 12 m, and the same room or outside together | UI7 | voices you can hear |
quipGap | 22 s | UI7 | the shortest gap between two of your sibling's mutters (as built) |
quipLines | ~30 of the ~106 built lines | UI7 | about 240 clips across SI2's eight voices, instead of ~850 |
ringCount | 8 rings (TU3) | UI10 | |
paperPool | 12 headlines, 30 Around the Lane items, 20 little ads | UI9 | enough for the MVP's days without repeats |
Co-op
- State: the HUD, the prompts, the subtitles and every screen are each machine's own: nothing on the screen is
company state. What they show comes from company state (the clock, the money, messages heard, bookings) or from
events. New company state: the handset's holder (a player id, 0 = on the hook), set by
AnswerCallCommand/CallBackCommand(the actor) and cleared byHangUpCommandor when the holder drops (CO10). Nothing else. - Owner: the handset is shared (the company's phone); settings (Subtitles, Captions, Gauges) are each player's (PL6, MN9), never synced.
- Who decides: anyone may pick up or call back; the host checks the handset is on the hook (the first request
wins, the other's prompt greys "Sam's on the phone"). The answer cards are the holder's commands
(
RespondToRequestCommand, as built). - Randomness: the paper's picks are seeded by
State.seedand the day (SD4's salt), so both machines print the same paper; nothing else on screen is random. - Channels: company state for the handset, messages and bookings;
HubEventsfor a call's lines on the speaker, "Sam picked up: Grandma", a note read nearby (as built);NetPoseflags for reading, on the phone, at the computer (UI8);GardenEventsfor the job's news lines. - Packets: subtitles travel as line ids, not text.
- Late joiners: get the messages' state with the company; a call already in progress is joined on the speaker from the next line; today's paper is printed from the seed.
- Drops: a holder who drops hangs up; a request mid-haggle stays on the machine as "Call back" (nothing lost).
- Secrets: none on screen; every sibling can read every message.
- Checks: every Done when above runs on two instances, the guest's log at
mismatches=0.
Tech
What's there today
- One theme: all runtime UI is UI Toolkit with one panel settings asset (
UI/GameMowerPanelSettings.asset, 1080p reference, match 0.5) and one theme (UI/Theme/GameMowerTheme.tss→Common.uss: colour variables, panels, buttons, bars); fonts as classes (.font-title,.font-body,.font-retro,.font-hand,.font-paper) withUiFontsadding a symbol fallback at runtime. All the fonts are SIL OFL. - Ego quips (
EgoQuipsperEgoMoment): home mornings, bills, chores, the board, sleep, the store, arriving at a job (small, rich, dad's, Chad's), clogs, a full bag, flowers, rocks, refuelling, rain, a perfect lawn, the pay. - Two HUDs: the job's
HUD.uxml+HudController.cs(job card, clock line, timer, tasks, progress, leftover finder, wallet, rings, chips, mower line, LOAD/SPEED/BAG/LINE bars, hotbar, prompt, banner, centre pop, nametag and speech bubble, control hints, overlays) and the hub's walking HUD inGarageUI.cs(company line, status line, net worth, crosshair, prompt, "[Tab] Menu", toast).Thoughts.csdraws its own bubble document;WorldPops.csthe comic pops. - Screens:
HubUI(one screen at a time by an enum, rebuilt in code, back step on close),HubPaperPhone(the paper with classifieds and Call, the machine with its LCD and "To call" list, the call as chat bubbles with book / haggle / decline),HubCalendar,HubNote,HubDoorNote,HubComputer,BenchPanel,HubStory(the intro's letterbox subtitles). Opened throughGarageWalker+GarageStationkinds. - Prompts: two builders (
PlayerInteraction.Resolvein gardens,GarageWalkerin the hub), text keys fromGameInputlabels; PL3 makes them oneInteractablepicker.
What changes
- One
Hud(a UIDocument present in every scene) with the five places as regions (UI1), fed by the scene's controllers;GarageUI's walking HUD and the job HUD's own bits move into it. Each element has a "why" (a condition) and a fade, so the default is empty. HudNews(UI6): one queue for every message (MissionController.Say/Notify,GarageUI.ShowToast,HubUI.ShowToast, theHubEventstoasts), with kinds; the old calls forward to it.Subtitles(UI7): one strip;Voice.Sayand the scene voices post line ids with a speaker and a position; the strip filters bysubRangeand room (SN1's path); captions post through the same strip from SN1's sound list.Thoughtsand the speech bubble retire.Keycap(UI2): a small element drawing a key or a pad button from aGameInputaction, swapped on device change.- Screens keep
HubUI's pattern; UI8's rules (close hint, cursor, HUD hiding, solo pause, pose flag) move into one base so each screen gets them free. - No house menu (UI15):
GarageWalkerstops openingGarageUI's menu on Tab / Esc / Start (OpenMenu(ui.CurrentTab)); Esc with nothing open goes to the pause menu (MN8). The Jobs tab becomes the calendar's jobs list (OpenJobs) without its Go button and tools check; the Workshop tab becomes the bench's screen (StationKind.Workshop). The Van and Shop tabs, their stations and the computer's Shop app are hidden in the MVP (the code stays for later); a driven job loads the mower and the can by itself. The tab bar goes. - The paper's photos (UI9): a camera placed per headline renders the place (the street, No. 24's lawn) and a halftone newsprint filter prints it; story mornings get a staged shot once (Chad's car on the street, the siblings in front of grandma's house for ST10).
- The paper (UI9):
DailyPaperin Sim builds the day's front page from the seed, the day and story marks (StoryIds), so the content is deterministic and testable;HubPaperPhonedraws it. Text pools inClientTexts. - The phone (UI10): the handset's holder in company state with its three commands; the machine's tape and the
call screen redrawn from
HubPaperPhone's. - Save: the handset's holder is never saved (on the hook at load). The paper isn't saved: it's rebuilt from the seed and the day. No save version bump.
Tests
- EditMode: the paper for a seed and a day is the same twice and differs the next day, story mornings print their headline, no headline repeats across the MVP's days; the handset's commands (two pick-ups, the second refused; the holder drops, the handset frees, the request stays).
- In play: the house, a garden and a two-instance run against each Done when; screenshots of the default HUD in a garden at 9:00 and 18:00 to check readability against grass and the evening light.
Open questions
- None right now.
Rejected
- A minimap, a compass, waypoint arrows or quest markers: the family and the notes say where to go (TU8); the leftover arrow is Gauges only.
- Nametags over people: the prompt names who you look at; names over siblings were not taken for the MVP either (coop).
- Speech bubbles over heads: one subtitle strip for every voice, so a line reads the same from a client, the phone or your sibling.
- Money, the company name or net worth always on screen: the money slides in when it changes; net worth lives on the vision board.
- Toasts, popups and dialogs that stop the game: one news line, and nothing on the HUD ever needs a click.
- "Saving..." text: the polaroid is the only sign (MN2).
- Client ads with a Call button in the MVP paper: all offers come as voicemails (J3); ads come back with J4.
- Answering the house phone from anywhere: the phone is a place in the house until you own one (UI13, J25).
- A menu over the house (Tab): the house's things are the way in (UI15); the phone's apps bring shortcuts later (UI13).