A long day. The new to-do list was worked from the top, and three of the finds were the kind where the tool reporting the problem was itself the problem.
The claw had never hit a prop
While working out why a drawer wall would not open, the cause turned out to sit far below it. The project runs with a physics setting that hides triggers from queries. In this version of Unity that setting also overrides a query's explicit request to include them. So the claw's own hit test could not see a single one of a stage's eleven claw targets. Every drawer, latch and switch in that world was dead, and so was a watering can in another.
A small wrapper now turns the setting on for one query at a time. The claw and the hairball both go through it. Measured: 0 of 11 targets found before, 11 of 11 after, and the stage went from stuck at the drawer wall to finished with every token.
A lift that was never short
The dryer vent in the sewer had been reported as 0.11 of a unit short of the height it was solved for. A per-physics-step probe showed the solver was exact. The number came from a sampler running on the editor's frame clock, not the physics clock. Chasing it did find a real double-lift bug, which is fixed.
The vent now dries at one step per second, the rate the design called for.
An importer that flattened sprite sheets
Its test for "is this a sheet" looked for a file name no sheet in the project uses. So any sheet that also carried a pivot file was turned back into a single sprite the next time it was imported. The sixteen dog sheets of the new world were flattened on their first import. The slicer could not see the damage, because it only checks what it is handed. Both the rule and the slicer are fixed, and no shipped sheet was harmed, because none had been re-imported since the rule arrived.
A smaller one in the same spirit: the build tool opened each stage on top of the open scene, so two global lights were loaded and every build logged "more than one global light". It now opens the stage alone and restores the scene.
Soak you can see
The soak system raises nine events. None of them had a listener. A new effects layer now draws the drips, the wet paw prints and the shake spray, and plays four soak sounds that were already in the sound bank and had never played. It is the same shape as a bug from early September, a write that succeeds and does nothing.
The wet cat is a colour remap rather than a new set of sheets. The ruling that matters is that Damp darkens the fur to its middle ramp step, so the cat's outline survives.
Smaller changes
- A lost run now raises the results tally under GAME OVER or TIME UP, with a button back to the title, where it used to fade straight out.
- The sewer's boss and the shop's boss were drawn from scratch. The sewer's is dried silt: under 1% of his pixels sit in the brick's value band, and there is no gold, no rim and no teeth. A new gate fails any frame of the shop's boss where his head rises above his shoulders, the one rule that can ruin him.
- A boss's animation clips had never been used, because his fight only ever drove poses and never asked for a clip. A small animator now plays them from his states.
- After a note that one big dog looked like a Picasso, his limbs were rebuilt as capsules, shaded across the tube in hard bands, with the dither gone from the whole animal.
- Two more cat coats were authored: one white with a grey keyline and patches, one a mocha tortoiseshell with fifteen splotches in five tones. Both are layers over the base cat, so the animation comes along unchanged.
- A cat stuck in the cat flap has four frames of its own, head through, back legs kicking, popping out startled.
A sixth world, designed and built in a day
It was designed in the morning and built by the evening: three stages, a boss, a new mechanic and a map region, with fresh tiles, sixty-four props, and a generic dog at three sizes and four coats rather than eleven breeds.
The mechanic is noise. Claws, hard landings on steel and the hairball are heard, and a shared alert level climbs and falls in silence. Being caught means being lifted away and put back, never a lost heart.
An expert player that plays every stage
With the sixth world in, the focus moved to making the first six solid. A scripted expert-level Mittens now plays every stage without a window: it maps each stage by trying about eighty moves from every place it can stand, run-ups, air jumps, stomp bounces, rolls, claws, drops through shelves, then plays the route it found with the enemies live and reports deaths, soft locks and anything unreachable. A separate test drives every mechanism in each stage, 34 checks, all passing.
What it found:
- A bounce off a bouncy enemy reached a roof that ran over the bulkheads to the goal, skipping both the dodge-roll corridor and the water.
- Walking off the west end of a bench dropped him underneath it with no way back up.
- A fall down a pit could land on a hidden room's roof, stranded in the dark.
- A row of chairs was twice as thick as designed, so the safe corridor under them could not be walked.
A Windows playtest build of worlds one to six, version 0.6.0, came out at 82 MB, and was watched opening on the title screen rather than only tested without a window.
