Repository navigation
Releases
v0.6.1
v0.6.0
New this release
- The controls page is one table grouped by what you do, each action once, with its mouse or keys and its controller button drawn side by side in lined-up columns (src/selftest/settings.js).
- The pointing hands at the yard portal fade away once you have gone down through it and back up, and the portal stays clickable (test/portal-hand.test.mjs).
- The drawn yard speaks one visual language: one grey and one purple ramp, a plus for the spark everywhere, pixel numbers on every count, no shaking, and everything on the cell grid.
- A consistent look across the menus: one type scale, one button height, the pause sheet one width on every page, pages centered on the title page as on the pause sheet, the gamepad's purple corner brackets for keyboard focus, one look for chosen, pressed and disabled, section signs on every board, coins that stay readable in dark mode, and no shelf tile's words cut short or under its pips.
- Nine more index entries have a drawing: muck, poop, pollution, birds, the pit, your sqwife, the bench, the books and achievements.
- Menu shadows are see-through, the lines under notices and achievements are darker and larger, and achievement names are bold.
- The farm shed wears a barn roof, so it no longer looks like the quarry shed or the bench; the farm's flag flies from the ridge.
- The deep's stations stand spread evenly under the whole serpent, the first four already spanning it, instead of bunched to one side.
- A language page off settings, on the pause sheet and the title page, lists each language in its own name with the one in use marked, and the title page's foot names the language in use (src/selftest/language.js).
- A feedback page on the pause sheet under settings, off settings on the title page, and under copy save when the game stops, sends your words and, if you tick it, your save (test/feedback.test.mjs).
- On a gamepad, X hands back a queued copy (it was Y, which now does nothing) (src/selftest/pad.js, "X on a card with a copy waiting").
- On a gamepad, every d-pad press goes to the nearest thing in that direction, in the yard, the deep, the boards and the sheets alike (test/pad-reach.test.mjs).
- The focus brackets breathe a cell out and back while they sit still, from rest on each arrival, and the gamepad's fade in and out instead of popping.
- New words on the rescue sheet, the demo's store link and an empty achievements page.
- The board of rescue times is gone: no name box or post on the rescue sheet, no times page, no name on the board in settings.
- A controller plays the whole game: the d-pad hops between the places a click lands on, A does what the click does, and the Steam Deck's back buttons and trackpads come mapped (test/pad.test.mjs).
- On Steam, every in-game achievement is a Steam achievement, and the ones already won are given at launch (test/desk-steam-achievements.test.mjs).
- A Steam build of the full game and of the demo: saves sync through Steam Cloud, and the full game offers to carry on a demo save on its first launch (test/desk-steam.test.mjs).
- On a phone the yard is drawn smaller, 130 cells across at once, so every shield's whole answer fits upright and no scene zooms (test/phone-view.test.mjs).
- Every cutscene holds the yard still and letterboxed: black bands step in, everything but the scene's subjects fades back, the haulers fade out and the attackers freeze until it lets go (test/cutscene-hold.test.mjs).
- Once the pit has drowned, now and then something shows at the abyss's surface and goes back under: a coil's back, a fin of purple spikes, or an eye watching the lip (test/glimpse.test.mjs).
- The pit is a third as long, so it fills and tears open about three times sooner; an old yard holding more than the new hole tears on load and keeps every grain (test/rift-migrate.test.mjs).
- While the rift is torn, the deep's creatures now and then cross the sky behind it, alone or in a shoal, and rarely the serpent passes or looks through (test/riftlife.test.mjs).
- Pods build in a few seconds each, never more than eight, instead of three quarters of a minute.
- The stations in the deep have no counter under them; each fighter stays at the station it first swims to.
- The ram is a tracked crawler that pushes a turning cutter wheel into the rock, throwing curling chips as it bores.
- The dome no longer holds the rescue rock up: the rock sits squashed on its crown for a beat, then bursts into grit that skates down the dome and heaps outside it for the haulers to carry to the hole (test/shield.test.mjs).
- The bench's build tiles show each coin of their price as a line that fills grey as you gather it, the same as the story card's bill (src/selftest/boards.js).
- While the dome bursts the rescue rock, the rest of the crew walk out of the shot so only the two of them are in it, and walk back to work after (test/ending-stage.test.mjs).
- No new rock comes down from the rescue until the whole ending, the drowning of the pit included, is over (test/ending-stage.test.mjs).
- A station's counter is a row of seats between its - and +: a filled pip for each body at work, a pip filling in thirds while one walks over, the specialist slots in a row of their own above (a brim each, grey ones on the outlines of hats not yet worn, and the next body sent takes a spare hat first) and only the seats left over below for plain workers, with a rule between the rows (none when every seat is a hat seat), whatever rows show centered on the - and +, and a click on a bottom pip sets the plain workers (src/selftest/crew.js).
- Every counter in the yard is a sprite over round pips, six a row and three rows with +N under: the hatted beside the plain hands under a body in the station's hat, carters under a carter, forklifts under a forklift, one - and + framing the post level with the first row (src/selftest/crew.js).
- The forklifts' garage stands on the far side of the house, with its own pip a forklift under it (test/forklift.test.mjs, src/selftest/crew.js).
- Every miner and every farmer can wear a blaster or grower hat, not just three (test/hats-gate-machines.test.mjs).
- The drill and the tiller sit greyed on their boards saying "buy 5 blasters to unlock" or "buy 5 growers to unlock" until five are bought (test/hats-gate-machines.test.mjs, src/selftest/boards.js).
- The air filter comes with its first balloon (test/filter-balloon.test.mjs).
- The forklift's load and speed sell only their last four rungs, and the balloon row only its last two, so neither starts out pocket change (test/forklift.test.mjs, test/balloon.test.mjs).
- On the story card each coin's line is its own bar, filling grey as the coins come in (src/selftest/boards.js).
- The apothecary holds three pots, one to a brew; a yard that already has a fourth loses it (test/save-floor.test.mjs).
- The tower's door no longer says "wizards live here", and the story no longer says "ask the wizards how to get down".
- After the snatch the story says "talk to the wizards about what just happened" until you open their board (test/objectives.test.mjs, src/selftest/boards.js).
- The tower's row summons a wizard instead of training one.
- The dome sits first on the tower's board as its goal card, and every goal card's ribbon reads "saving your sqwife" (src/selftest/boards.js, "the tower's dome").
- The saves page draws the slot you are playing inverted, black with white text, in place of greyed out.
- The index: every thing you have met, with a few words on each, on the held sheet's
indexpage or theikey. - Shop items no longer show their build time; the coins are the whole price.
- The books show how long the yard has been played, and each save on the saves page shows its own playtime.
- She calls from under a rock while it is being mined, every few seconds, in a few ways: a build of "!", one long "!", a quick burst, a "?" then "!", a sigh of dots (test/sqwife-calls.test.mjs).
- Each save has its own delete, confirmed on its row, in place of the reset progress button.
- A controls page on the settings sheet, in the game and on the landing page, lists the mouse, the keys and the 1 – 9 jump.
- Nobody goes for the muck while a storm is still raining it down; the clear-up starts once the last drop has landed.
- The first muck a storm leaves gets a short scene: a worker walks up to it, asks what it is, pulls a face and shovels it up.
- The barrier card's sign is a swallowtail ribbon that wraps the frame's edge and flaps its free end like the yard's flags (it holds still with motion off) (src/selftest/boards.js, "goal card").
- The next barrier is bought from the story's card -- its bill ticking off coin by coin, then a cancel while it is built -- and no card is pinned in the corner any more.
- Cores are gone: each barrier that falls opens the next place instead -- the props the farm, the net the quarry, the arch the tower -- and the dome is paid without them.
- After the props the story's card sells the farm, after the net the quarry and after the arch the tower, each before the next barrier, and skips a place that is already open; the place is the goal the moment the barrier falls, its bill showing and its buy dimmed until it can be bought.
- A queued shop item's "refund" now reads "cancel".
- Hold the right button to see the crew: the yard fades back, every worker is ringed, the cursor turns into an open hand, and the one under it slows down. Holding the left button as well picks a worker up, for as long as both are held; the right button alone no longer lifts anybody. Hovering no longer stops a worker.
- After the first rock, the one still buried yells for help.
- A tag at the top of the screen counts the muck on the ground, and another the poop, each going away once the last of it is swept.
- An achievement for shaking a worker dizzy.
- A card at the top left says the story's next step, from digging out the rock to saving the sqwife; it is as wide as its words up to a set width, with the barrier's pi...
v0.5.2
- On the landing page, cloud saves are on the saves page with your slots, as they are in the game, instead of under settings (src/selftest/cloud.js).
v0.5.1
- The landing page's menu stands on a card of its own, so the clouds no longer drift through the name and the lines between its buttons (
GAME=.../index.html node tools/headless.mjs --shot).
v0.5.0
New this release
-
The cloud's buttons and what they answer sit in their own titled cloud saves box, and its stop button says stop cloud saves (src/selftest/cloud.js).
-
On a phone the corner's gear is a pause button, and it opens the paused menu rather than the settings (src/selftest/touch.js).
-
Raindrops kick up a little crown where they land (
node tools/look.mjs rain). -
Cloud saves, if you want them: turn them on in settings and your three save slots are kept in the cloud and brought back on any device you link with a six-character code (test/cloud-sync.test.mjs).
-
Roombas for the janitor's closet, up to three: they drive out to the poop and the rain's muck on the open yard and bring it home for the one janitor minding them to tip away, and they smoke (test/roomba.test.mjs).
-
A card pressed again queues another of the same -- the next rung, the next house -- paid on the press at its own price; a strip along the card's foot splits into a refund of the newest one still waiting and a button for another, the only presses on the card while it is up, and the card's pips dot every rung paid for and not yet landed; the queue card shows a run as one line with its count (test/queue-repeats.test.mjs, src/selftest/boards.js).
-
Save a copy, load a save and reset progress are on the saves page now, and loading a yard turns the sheet back to the front (src/selftest/settings.js).
-
On the landing page, copy a save and load a save are as wide as the buttons around them, and so are the volume slider and the achievements list (src/selftest/settings.js).
-
Firefox no longer drops the whole game, yard and deep alike, to about 20 frames a second after a reload in the deep with its crew at rest or a builder at work, and the endgame yard with the rift open draws in a fifth of the time it did there (Firefox at 2560x1440, reloaded into
deep-restthenyard, PERF.md "Firefox after a reload"). -
Clouds no longer show below the ground line in a short window (play.html in a window 300px tall).
-
A rockhand who shoveled a mess on the far side of the pit walks back round the hole to the rock, instead of walking home across thin air (test/rockhand-home.test.mjs).
-
A worker you pick up no longer vanishes when carried down over the drowned pit or up past the deep's ceiling (src/selftest/crew.js).
-
The pause menu dims the yard behind it instead of washing it white, so the dark pit no longer glares (
node tools/look.mjs portal, then escape). -
A card with rungs queued ahead draws the one being built in its own band's ink, not the red of the last rung queued (
node tools/look.mjs queuetop).
v0.4.1
- Balloon riders get the apothecary's tonics: the balloon comes down to its post for the vial and goes back up, and the brew's plume rises off the basket in the sky (test/balloon.test.mjs).
v0.4.0
New this release
-
Weather: rain comes on its own clock and carries down a share of the smoke as acid; a storm washes the sky clean (test/weather.test.mjs, test/wave6-sky.test.mjs).
-
The sky is three sheets of cumulus that fill with smoke and brown as the yard dirties; rain falls from them in three sheets of its own (test/sky-air.test.mjs, test/sky-rain.test.mjs).
-
A working machine smokes off its stack, and hand work fouls the air a little (test/machines.test.mjs, test/sky-air.test.mjs).
-
Balloons do the cleaning: each rides from cloud to cloud drawing the muck down, with balloon power and balloon speed ladders (test/balloon.test.mjs, test/sky-fan.test.mjs).
-
The air filter is a louvered shed; its gauge reads the sky, and its hover says clean, dirty or filthy and which way (src/selftest/sky.js).
-
The sphere: the tower's machine, dropping sparks without using up the star; the tower trains three wizards (test/sphere.test.mjs).
-
Forklifts drive themselves to the pit, park in a garage when idle, and have load and speed ladders (test/forklift.test.mjs).
-
The belt ends in a ramp that flings its load over the hole, and haulers tip onto it just past the rock (test/haul-belt.test.mjs).
-
Machine tuning is a three-rung ladder with pips and an end: ram strike, drill bite, tiller pace (test/machine-tune.test.mjs).
-
The drill and the tiller go on sale once their station's ladders and hats are bought (test/machines.test.mjs).
-
The books board keeps just the income rates, averaged over a window you pick (test/wave5-boards.test.mjs, test/books-sheets.test.mjs).
-
The crew list opens in a window mid-screen (src/selftest/house.js).
-
A crew switch in the corner shows, fades or hides the workers (src/selftest/touch.js).
-
Idle workers go indoors after a few seconds (test/home-pace.test.mjs).
-
Every station's counter stands centered under its building (src/scenes.js
liftroster). -
Hold to toss, throw pace, throw reach and the gauge have their own pictures (test/row-glyphs.test.mjs).
-
The chips off a builder's hammer on a shop tile fly at the yard's pace, pinned or sped up (src/selftest/boards.js, "a hand on a tile being built").
-
A late yard runs about a quarter faster (test/belt-load.test.mjs, src/scenes.js
everything). -
A storm no longer costs a quarter of the frame rate (test/sky-rain.test.mjs).
-
A falling boulder no longer drags the frame rate (src/scenes.js
introfall). -
The title screen no longer stands blank for four seconds (src/selftest/view.js, "the landing page's picture says when it is up").
-
A reload no longer adds three workers to a yard with wizards (test/crew-load.test.mjs).
-
A reload keeps a balloon's rider on the job (test/balloon.test.mjs).
-
A reload keeps a rock hand's swing and a grain on the belt's scoop where they were (test/save-owners.test.mjs).
-
A knocked-off hat stays where it fell across a reload (test/hat-save.test.mjs).
-
Bodies climb onto the ram, the drill and a balloon's basket instead of appearing there (test/movers-y.test.mjs).
-
Skipping the opening mid-throw carries on from the air (test/movers-y.test.mjs).
-
Nobody can be put on a quarry or farm that is not open (test/closed-station.test.mjs).
-
Haulers cross the quarry on the bridge instead of climbing down and out for nothing (test/quarry-crossing.test.mjs).
-
The rock's spoil clears the boulder onto the belt (test/rock-spoil-belt.test.mjs).
-
A hauler's toss up to the belt no longer falls a grain short (test/haul-belt.test.mjs).
-
The belt's load lies as a heap, no needles and no cliff (test/belt-load.test.mjs).
-
The ram keeps up with the face it is eating (test/machines.test.mjs, "the ram advances into the hill as it eats it").
-
The shovelling gang no longer bob on the rock's flank (test/muck-jitter.test.mjs).
-
Two shovellers on one spot stand a body apart (test/janitor.test.mjs).
-
Dust dropped on full bare ground stays off the neighbor's heap (test/grain-region.test.mjs).
-
Scrolling the view no longer changes what happens in the yard (test/camera-sim.test.mjs).
-
Wizards rise to the star from their own patches of ground (test/sky-work.test.mjs).
-
The filter's and the tower's upgrades are put in by a spare hand (test/spare-hand-builds.test.mjs).
-
The janitor's second cap is fitted at the closet (test/built-where-sold.test.mjs).
-
A build with nobody free says queued (src/selftest/boards.js).
-
The tiller's driver sits behind the column (test/machines.test.mjs).
-
The casino pays big stakes without freezing or lag, onto the pile in the hole (test/casino-big-stake.test.mjs).
-
The casino's stake pours into its funnel after the apothecary grows (test/casino-moves.test.mjs).
-
A refund no longer counts as income (test/wave5-boards.test.mjs, "a bill handed back is not income").
-
A reading's note stays put under the pointer (test/hover-gate.test.mjs, "no hover turns a reading's note the page's color").
-
A board taller than the window scrolls to its last row (src/selftest/boards.js, "a board taller than the window scrolls to its last row").
-
A tile's gain line uses the tile's whole width (src/selftest/boards.js).
-
On a half-affordable tile, the coins you have are black and the missing one grey (src/selftest/boards.js).
-
A gain's number no longer breaks from its coin (src/selftest/house.js).
-
The crew window's cards are wide enough to say where a body is (src/selftest/boards.js).
-
The forklift row sits with the haulers (test/boards.test.mjs).
-
The balloon row has a pip for each balloon (test/balloon.test.mjs).
-
A price's clock is the same ink as its coins, on the dark page too (src/selftest/boards.js, "the clock in a tag is in the same ink as the bill beside it").
-
On an iPhone on itch, the yard holds still under a sweeping finger (src/selftest/touch.js, "one finger on the yard scrolls it").
-
Clouds slide with the scroll, keep their height on a resize, and never pop in at the edge (test/weather.test.mjs, "no cloud ever jumps in view while you scroll"; test/sky-air.test.mjs).
-
The near clouds ride highest (test/weather.test.mjs, "the nearer the sheet, the higher it rides").
-
The sky no longer rearranges itself after load or on a resize (test/weather.test.mjs, "the sky is spread where the camera ends up, not where it started").
-
A front's clouds grow out of nothing and thin away in place, a cell at a time (test/weather.test.mjs, "a front's clouds come up out of nothing where they are born"; src/scenes.js
cloudsettle). -
A new game gets a new sky (test/golden.test.mjs, "the same seed is the same run").
-
A storm's acid falls with the rain instead of in a heap at the end (test/wave6-sky.test.mjs, "a storm brews up, pours, and trails off").
-
Rain falls over the whole world, as one sheet, and stops at the ground line (test/weather.test.mjs, "it rains on a clean yard"; src/scenes.js
rain). -
The air reading matches the sky while it rains (test/sky-readout.test.mjs, "what the readout says is what is overhead").
v0.3.3
- A yard with a torn pit no longer drops to a few frames a second, before and after a reload, once rain has left muck over the hole (test/perf-gate.test.mjs).
- On the dark page a card's clock count, its gain line and the ledger's leaders read in the dark ink instead of black on black (src/selftest/boards.js, "on the dark page every word on a card is lighter than its paper").
v0.3.2
- On an iPhone playing the itch page, the yard no longer slides under a finger that is sweeping dust (src/selftest/touch.js, "one finger on the yard scrolls it").
v0.3.1
- On a phone, a finger that lands a little off the dust still sweeps it instead of scrolling the yard (src/selftest/touch.js, "one finger on the yard scrolls it").