Game
Days: the clock, the sun and the hoursDY
The day and its hours. One host-owned clock that always runs, real-time rides, a sun that really moves, a night that looks good, and a world that keeps its own hours.
A day, hour by hour. The cuckoo clock goes off at 7, the paper lands on the mat, the store opens at 8, the sun drops behind grandma's roof around 20:15, and at 2 in the morning you fall asleep wherever you're standing. One clock always runs, so mornings and evenings become places to be, and the world keeps its own hours without any rule saying "go to work now".
The player's view
The morning. The cuckoo clock calls seven, the paper is on the mat and grandma's calendar is on the fridge. The first client is at eight across town, so loading the car and leaving at a quarter to is a real choice; dawdle over the paper and you arrive late. The lawn is wet with the night's weather, and the shady one across the street will stay wet until nearly noon: the job notes say "shady lawn, go after lunch".
The ride. You don't drive: you sit in grandma's car in first person, the car drives itself through the neighbourhood, stops at the stop signs, and you look around. Grandma's voicemail plays, the radio reads the weather, your siblings argue in the back seat. If everyone agrees, you skip ahead.
The working day. The clock runs on the job, at home and at the store at the same speed. Long work (fixing the mower, scrubbing a stain) shows a progress bar while time passes instead of jumping the clock. Near five the clock line warns that the last client window is closing. Raise your wrist and grandma's gold watch tells you the time and what she wants next.
The evening. Home for repairs, the computer and the bills. The light goes golden, the sun sets behind the roofs in the west, the street lamps and the porch light come on and fireflies drift over the lawns. Start the petrol mower on your own lawn after nine and a neighbour leans out of a window: "Some of us work tomorrow!" The battery mower doesn't bother anyone.
Bed. Go to bed whenever you like, even in the afternoon ("Early night. Beauty sleep is an investment."). In co-op the day ends when every sibling is in bed. Stay up past two and you pass out where you stand: you wake on grandma's plastic sofa, or on the lawn, late for the first client, and grandma is already calling from the retirement home because Mrs. Higgins told her.
Ideas
DY1: the clock
One game clock, owned by the host, ticking everywhere: house, store, rides, jobs. With a frozen house you can never be "late in the morning" and the evening doesn't exist; with a running clock, mornings and evenings become places to be. In co-op the host's clock is the clock, nothing to agree on. The house needs things to do in the evening; it mostly has them (repairs, the computer, bills, cleanup).
One speed, everywhere
- 2 s per game minute (
gameMinutesPerSecond0.5), today's job speed, so every par time stays as tuned. The host ticksState.minute(now fractional) at that speed everywhere; guests follow fromNetCompany. - A working day (8:00-18:00) lasts 20 real minutes; the whole waking day from 7:00 to 23:00, 32. A typical early day (the routine, two jobs, a store stop, the afternoon at home) is about 25 real minutes before the evening, 3 of them in the car, plus whatever evening the player wants before bed. A good session is one or two days.
- For scale: Stardew Valley's whole day (6:00-2:00) is about 14 real minutes, Schedule I's (7:00-4:00) about 21.
The typical day in the figure: coffee and the paper 7:00-8:00 (2 real minutes), a 25-minute ride, Mrs. Higgins 8:25-11:25 (6 minutes), a ride, the store for 45 game minutes (1.5), a ride, the Parkers 12:50-15:50 (6), a ride home, repairs, the computer and chores until 19:30 (6.5), then an optional evening (5 to 22:00). The four rides take 40-50 s each.
Pausing and skipping
- PausingSolo pauses in the pause menu and while a full-screen screen is open (computer, phone, paper, calendar). Online never pauses (as today): a sibling reading the paper doesn't stop the others.
- Nothing jumps the clock for one player aloneLong work (repairing a mower, scrubbing a stain, the base chores'
minutesEach) takes its minutes in real time with a progress bar instead of adding minutes at once (no moreState.minute +=on one player's action). The rule is set now, before siblings can split up (DY5), because a jump for one would break the clock for the others then. - Speeding up is a group decisionBed, "wait until 8:00" (the porch bench), fast-forwarding a ride. Every connected sibling has to agree (the same rule as the beds); solo always can. Fast-forward is only allowed where no job sim is running (rides, waiting, bed). A jump the whole group takes together (the emergency store run during a job) stays allowed.
- Jobs read the world clockArrival, lateness and the
Calendar.DayTime01callers use it, instead of each job counting its own minutes from arrival.
The shape of a day
| Block | Hours | What happens |
|---|---|---|
| Asleep | bed → 7:00 | Skipped. The night's weather is on the lawn at 7 (wet grass, fog). |
| Morning routine | 7:00-8:00 | Cuckoo at 7, the paper on the mat, grandma's calendar, load the car. Leaving at 7:45 to be at a client's by 8 is a real choice. |
| Working hours | 8:00-18:00 | Client windows 8:00-17:00, the store 8:00-18:00, dew dries off by 10-11 (DY3). |
| Evening | 18:00-22:00 | Home: repairs, the computer, bills, house cleanup; grandma's check-in call now and then (DY4). Golden hour and sunset. |
| Late | 22:00-2:00 | The street goes quiet at 22:00 (DY4), the screen yawns after midnight. |
| Quiet hours | 21:00-8:00 | Engines bring neighbour complaints (DY4). |
How the day ends
-
The day ends in bed, any time. Going to bed at 16:00 is allowed. Bed before 20:00 brings an ego thought (
EgoQuips): "Early night. Beauty sleep is an investment." In co-op the day ends when every sibling is in bed (TU4, the beds). -
Pass out at 2:00. Anyone still up passes out where they stand, so nobody can keep the others awake forever. Stardew-style, but softer and funny: you wake at 9:00 where you dropped, on grandma's plastic sofa or on the lawn if you were outside. No money lost; you're late for the 8:00 client, and at 9:05 grandma calls from the retirement home because a neighbour already told her:
Voicemail, 9:05: "Mrs. Higgins says you slept on my LAWN. In your work clothes. She called me TWICE." ♥ G.
-
The day's minutes run past midnight (7:00 → 26:00) until bed; the clock shows
minute % 1440.
Needs: none · Done when: a full solo day plays from 7:00 to bed with the clock running; two instances show the same minute.
DY2: the ride
Every drive (to a job, the store, home) is a real-time ride on autopilot, from the start. The clock and the ride are the easy part of splitting up later (DY5), and the car becomes a place.
- Length =
TravelMinutes× 2 s: a 15-minute drive lasts 30 s, a 25-minute one 50 s. Fast-forward when every sibling agrees (DY1); solo always can. - No driving to build. A first-person seat (driver or passenger), free look; the car drives itself, stops at stop signs, and fades into the destination scene on arrival.
- The route is assembled from existing street pieces (
Town, houses, landmarks like the mansion on its hill: seen on a ride, never from grandma's street, ST6), not a real continuous town. A calm street: traffic, rush hours and the bus are DY6. - A simple car interior (seats, dashboard, wheel) for grandma's car and the van, modelled in Blender to the style guide.
- The car is a place: grandma's calls and voicemails ring there (phone and voicemails work in the car), the radio reads the weather (a stub until WE4), siblings argue in the back seat.
Needs: DY1 · Done when: host and guest ride together to a job and arrive at the same minute.
DY3: the sky
Real hours and a real direction for the sun, a lower arc than real life, gardens that face their street, and a night that is blue, not black.
The sun
- Real times and direction for latitude ~40°N in late spring (the endless season): sunrise 5:55, solar noon 13:05 (daylight saving), sunset 20:15, rising ENE and setting WNW. Shadows are shortest at 13:05, not 12:00.
- Height at 75% of the real sky: peak ~54° instead of 72°. A real late-spring noon sun kills the long shadows the art direction loves; capped near 54°, noon still has shape (long crisp blue-grey shadows).
- The model: real elevation = asin(sin(lat) × sin(dec) + cos(lat) × cos(dec) × cos(H)), with lat 40°, declination +21° (late May) and H the hour angle from solar noon (15° an hour); the game's sun height = real elevation × 0.75.
- Dawn, golden hour ~19:30-20:15, blue hour to ~20:45, then night.
DayCycleruns over 24 h, rotated by the garden's facing.
Each garden faces its street
Houses line both sides of the street. A lot on the north side of the street has a south-facing front lawn (sun all day); one on the south side sits in its house's shadow all morning. Dew dries where the sun hits, so shady lawns stay wet (heavier load, clumps) until nearly noon: same job, different best time, and you can read it off the sky. Job notes can say "shady lawn, go after lunch".
- Garden facing is data, from the lot (which side of the street), not a random roll: per mission/lot in the data.
- Dew dries by sun: shaded cells stay wet longer, feeding WE3's wetness (GR2's site map reads the same sun).
Night
- Blue, not black, the same rule as the shadows: lifted blacks, a blue-violet night grade, warm lights.
- Lit by things: the house's windows room by room (the kitchen early in the morning and in the evening, the living
room from dusk to bed), the porch light, street lamps, fireflies over the lawns at dusk (
Critters), the moon and stars.
Needs: DY1 · Done when: the same garden at 9:00 and 18:00 has its shade on opposite sides; night is readable, never black.
DY4: the hours
The clocks in the world, the quiet hours and the evening, so the time is felt without a timer on screen.
Telling the time
- The HUD clock line stays (small), and gains the weather period and a soft warning near 17:00 ("last client window closes soon").
- The gold watch: a key raises the wrist (the watch is already on
PlayerBody): the time and grandma's next request. - Grandma's cuckoo clock (already on the wall) calls the hours at home, so you hear 7:00 and 22:00 without looking.
Quiet hours
- Clients only book 8:00-17:00, so jobs end before dark. Your own lawns can be mowed any time, but an engine during quiet hours (21:00-8:00) gets a neighbour leaning out of a window ("It's 21:40! Some of us work tomorrow!"): a reputation dent on a client's street, a grumpy note at home. A joke and a rule at once.
- The battery mower is exempt, quiet enough (a reason to buy it). This page owns when the quiet hours are; SN3 owns the loudness at a neighbour's window, turns the quiet hours into listening limits by hour, and makes the battery mower's exemption a result of its loudness instead of a rule.
The evening
- Grandma's evening check-in calls from the retirement home now and then, around 19:00, short (her game show is on), through the call system (TU3).
- The street goes quiet at 22:00.
Needs: DY1 · Done when: a guest hears the cuckoo at the same moment; an engine at 21:30 brings a complaint.
DY5: siblings in different places
Once a second vehicle exists, siblings can split up: one mows, one goes to the store. The clock rules already hold for that (rides take real time, so nobody ever needs to jump alone); the real cost is the network, so it's its own step. Today the host's scene decides where everyone is, and guests follow.
- Each group loads its own scene; the host keeps the guests' scenes running invisibly (FishNet per-connection scenes / scene stacking).
- A guests-only job is run by one guest and settled on the host through a normal command.
- Garden sync (
LawnGridSync,GardenEvents, areas) assumes the host is in the garden, so that changes. - Before the second vehicle, everyone rides together.
DY6: traffic, rush hours and the bus
More cars on the street at 8:00 and 17:30, and rides take a few minutes longer then. The bus runs the street. Rides start on a calm street (DY2); this fills it.
Needs: DY2
DY7: the world's hours
Small timed events make the clock felt without a timer on screen. Most reuse things already in the game (the bus, the
ice-cream van, sprinklers on lawns, pedestrians, Critters), fired from the clock so co-op players see them at the
same moment.
| When | What |
|---|---|
| 6:00 | Neighbours' sprinklers come on: some lawns are soaked at 7 for a reason you can see. |
| 7:00 | Grandma's old clock radio in the kitchen switches on (with the cuckoo and the paper). |
| 8:00 | The school bus on the street; the store unlocks its doors. |
| 12:00 | Clients go inside for lunch; one brings out lemonade (a tip). |
| 15:30 | School's out: kids on bikes, the bus back. |
| 16:00 | The ice-cream van's jingle down the street. |
| Dusk | Windows light up house by house. |
| 22:00 | Neighbours' windows go dark one by one. |
And the neighbours' own schedules (waiting in Leftovers from the old plans).
DY8: night jobs
Night work as an unlock: a head torch and night clients. Until then clients only book 8:00-17:00 and engines bring complaints in quiet hours (DY4).
DY9: a weekly rhythm
The days of the week feel different: quiet Sunday mornings, shorter store hours on Sundays.
Needs: DY1
DY10: getting around without a car
A sibling without a car takes the bus, or a bicycle with the trimmer on their back. Comes with siblings in different places (DY5) and the bus (DY6).
Tuning
| Name | Value | Idea | What it does / why |
|---|---|---|---|
gameMinutesPerSecond | 0.5 (2 s per game minute) | DY1 | one speed everywhere; today's job speed, so par times stay as tuned |
| Working day | 8:00-18:00 (dayStartMinute / dayEndMinute) | DY1 | 20 real minutes |
| Waking day | 7:00-23:00 | DY1 | 32 real minutes; a typical early day is ~25 before the evening |
| Wake-up | 7:00 | DY1 | the cuckoo, the paper |
| Client windows | 8:00-17:00 | DY1 | jobs end before dark |
| Store hours | 8:00-18:00 | DY1 | |
| Early-bed thought | bed before 20:00 | DY1 | the ego quip |
| Pass out | 2:00 | DY1 | nobody keeps the others awake forever |
| Wake after passing out | 9:00, grandma's call 9:05 | DY1 | late for the 8:00 client, no money lost |
| Day minutes | 7:00 → 26:00 | DY1 | minutes run past midnight until bed; the clock shows minute % 1440 |
| Ride length | TravelMinutes × 2 s (15 min = 30 s, 25 min = 50 s) | DY2 | real time at the clock's speed |
| Latitude, season | ~40°N, late spring (declination +21°) | DY3 | the endless season |
| Sun times | sunrise 5:55, solar noon 13:05, sunset 20:15 | DY3 | daylight saving; rises ENE, sets WNW |
| Sun height | ×0.75 of real (peak ~54° instead of 72°) | DY3 | noon keeps its shadows |
| Golden / blue hour | ~19:30-20:15 / to ~20:45 | DY3 | |
| Dew dries | by 10-11 in sun, near noon in shade | DY3 | shady lawns stay wet |
| Quiet hours | 21:00-8:00 | DY4 | engines bring complaints; battery mower exempt |
| HUD warning | near 17:00 | DY4 | the last client window closes soon |
| Grandma's check-in call | ~19:00, now and then | DY4 | short: her game show is on |
| Street goes quiet | 22:00 | DY4 | |
| Rush hours | 8:00 and 17:30 | DY6 | more cars, longer rides |
| Timed events | sprinklers 6:00, school bus 8:00 / 15:30, lunch 12:00, ice-cream van 16:00 | DY7 |
Co-op
The siblings travel together, so there is one clock and the host owns it.
- State: the clock in the save (
State.minutebecomes fractional), ticked by the host only. - Ownership: the clock is shared; nothing per player (pausing only exists solo).
- Host-only: ticking, ending the day, passing out. Fast-forward and waiting need every sibling's agreement; the day ends when all are in bed, and at 2:00 everyone still up passes out.
- Randomness: none new.
- Channel: the clock goes out with the company updates (
NetCompany); guests smooth it between updates. Sky, sun, lights and weather are computed from it, so nothing else is sent. - Packets: one small clock value, well under one packet.
- Late joiners: get the clock with the save.
- Secrets: none.
- Cinematics: the pass-out wake-up and the ride are cinematics-like (
CinematicSync); each sibling sees their own. - Save: a version bump (fractional clock, a passed-out flag per player if needed). Data: garden facing per mission/lot (a data version bump).
- Voice lines: grandma's 9:05 pass-out call and her evening check-ins (calls from the retirement home, step 2's
call system); the early-bed thought through
EgoQuips. - Tests: below, plus a two-instance run (the same minute on both, group fast-forward only when both agree).
Tech
Who owns what
This page owns the clock, the hours (client windows, store hours, quiet hours), sleep, the sun and when dew dries.
weather.md owns the weather and the wetness itself (WE2: the sky follows the game clock, so it needs DY1; WE3 reads
the dew drying). GR2's site map reads DayCycle's sun arc for each cell's exposure. SN3 owns the loudness model; work.md
owns the households behind the windows. TU4 (the beds) meets DY1 at "the day ends in bed"; TU3
owns the call system. J6 (calls through the day) and EC1's return rides use the running clock. No difficulty row
(difficulty.md): the day is the same on every preset.
The code before DY1
- Time only flows during jobs (
economy.gameMinutesPerSecond0.5 = 2 s per game minute; par times are tuned on it). - At home and at the store the clock is frozen; only actions move it (a drive, a 5-minute scrub, a store trip). A drive fades to black and adds its minutes for everyone at once.
- The working day is 8:00-18:00 (
dayStartMinute/dayEndMinute); client windows default to 8:00-17:00. DayCycleonly covers 7:00-19:00: never dark, the sun always behind the player, the same light in every garden (14° at 7:00 up to 50° at 13:00 and back to 14° at 19:00).- Jobs count their own minutes:
MissionController.CurrentMinute = ArrivalMinute + Elapsed * rate(goes away in DY1).
Where it lives
- The clock:
State.minuteinCompany.cs/Company.Day.cs, commands inCompanyCommands.csandBaseCommands.cs, synced byNetCompany.cs. DY1 touches everyState.minute +=(chores, repairs, travel). - Jobs:
MissionController.csand theCalendar.DayTime01callers. - Screens and HUD:
GarageUI.cs,HudController.cs. - The sky:
DayCycle.cs,AmbianceDirector.cs,Weather.cs; fireflies inCritters; the watch onPlayerBody. - Rides:
Townstreet pieces,TravelMinutes; cinematics throughCinematicSync. - These files are also edited by the early-game steps and weather.md's phases. DY3 and WE2 edit the same sky code.
Tests
- DY1: the clock's speed; pause solo vs online; pass-out and wake time; lateness from the world clock; fast-forward needs everyone.
- DY2: ride length; fast-forward agreement.
- Two instances: the same minute on both; the cuckoo at the same moment (DY4).
Open questions
- Does the save need a passed-out flag per player, or is the wake-up spot enough?
Rejected
- A frozen house (time only moves on the job and with actions): no pressure at home and easy to tune, but no mornings or evenings, no night, no rush, and in co-op nothing moves while a sibling sits at the computer.
- A turn-based day (a few slots, no clock inside a slot): very readable, but it kills par time, lateness, client windows and the weather periods.
- A faster clock: 1.5 s per game minute (a working day of 15 real minutes, 24 for 7:00-23:00) would mean re-tuning every par time; 1 s (10 and 16 minutes) halves every job. Faster shrinks the work, which is the fun part.
- A hard curfew at 23:00, and no limit at all: bed any time with a pass-out at 2:00 instead.
- Today's sun arc (7:00-19:00, always behind the player): pretty but the same light in every garden.
- The real sun height (72° at noon): kills the long shadows; capped at 75%.
- Every garden lit the same way: facing from the lot makes shade and dew readable off the sky.
- No quiet hours: engines at night would cost nothing, and the battery mower would lose a reason to exist.
- Only the HUD to tell the time: the watch and the cuckoo make the clock part of the world.
- Keeping the fades while the family travels together, switching to rides when splitting up arrives: rides from the start make the car a place and set the "nothing jumps for one player alone" rule before anyone can split.
- Driving the car yourself: autopilot rides, no driving to build.
- A real continuous town for the rides: the route is assembled from street pieces.
- Jobs counting their own minutes from arrival: jobs read the world clock.