Why the water blinked to black
The Vale's new animated water had two complaints from a playtest: it "blinks to black", and it did not seem to move.
The black blink came from arithmetic. The shader picks each frame of the water animation from a sheet of 15 cells, 5 across and 3 down, using a floating point remainder and a divide. On the graphics card those are approximate, so at an exact multiple like 15, 5 or 10 they can return 15 or 5 instead of 0. That points the lookup at a row or column outside the sheet, and reading outside a texture returns black. The surface is opaque, so the whole lake went black for that frame. The fix uses whole number arithmetic and clamps the lookup inside the sheet.
The "not moving" complaint was real too. The animation was running, but the loops themselves barely changed from frame to frame. Measured as the average change per step, out of 255:
| Surface | Before | After the loops were rebaked |
|---|---|---|
| Stream | 2.6 | 8.1 |
| Pond | 0.7 | 6.5 |
| Lake | 0.65 | 6.5 |
The loops had only been breathing the brightness of one fixed picture, so the sparkles never travelled. They now shift the pattern in a loop that closes cleanly over 15 frames, and no dark frame shows anywhere.
Water that reacts
Canoes now leave rings in their wake and at each paddle dip, and walkers' steps ripple the water beside them. A small wobble bends the water's pattern around each ring front, snapped to the pixel grid so it reads as the sparkle shifting rather than a blur.
One finding shaped it: the hero can never stand in water. Every water cell is solid, and only a canoe switches that off. So there is no wading to ripple, and footstep rings appear when you walk within a unit of open water instead. The first attempt failed because rings squeezed by the shoreline shrank to half size, and the one pixel ring art vanished below a pixel. A minimum ring size fixed it. At most 24 rings exist at once, reused rather than created, and a region with no rings pays nothing.
Canoes you sit in
The hero's canoe was 2.85 units long under a hero 2.1 units tall, narrower than he was, so he looked like he was standing on a dish. Hulls are now drawn at twice the size: 5.71 by 1.63 units, about 2.7 heroes long. A second sprite cuts the near half of the hull and draws it in front of the rider, so it hides his shins and knees and he sits in the boat instead of on it. The jetty canoe now lies out in the water instead of on the planks, and the residents' boats now keep more distance from each other, because the larger hulls would otherwise touch.
One height rule for every villager
Some villagers stood taller than the hero, and the campers were drawn at a smaller scale than everyone else. There is now one rule: no character is taller than the hero's 2.00 units from any side. The game measures each character's sheet when it loads and, if it is too tall, scales the whole sheet by one factor, keeping the feet where they were. Shadows, name tags, quest markers and portraits all follow automatically because they measure the sprite. The campers now read at villager size, and the villagers who stood taller than the hero no longer do.
Razor and Blade wait for a fight
A playtest found Razor and Blade "constantly firing off magic". There was no test for "is a fight on", only "is anything near". Sleeping wildlife, patrolling or neutral creatures and even props within reach set off the whole spell book, and Blade's passive wisp fired every 1.1 seconds at anything within 5.5 tiles.
Now an enemy only counts once it has noticed the party or been hurt, and a fight lasts while one is within 11 tiles, plus one second. Spells that lose their target fizzle without spending mana, and only hits on real enemies earn spell mastery. Healing still only happens when someone is hurt.
Magic that slows the game less
Some magic made the game slow down, and a few spells hitched on their first cast. The likely causes: every spell hit on every enemy drew a full impact burst, a shake, up to three sounds and a hit stop, and hit stop is literally a slow down. One spell over a crowd did all of it, for every victim, in one frame. Companion spell hits now show at most 3 bursts and 2 hit sounds a frame, and hit stop from them happens at most once every 0.25 seconds. Damage, timing and knockback are unchanged. Heal effects and afterimages are now reused instead of built and thrown away, and spell sounds load ahead of time.
Menus with a game pad
Every menu can now be driven with a pad, and the selection shows a gold outline. The pad was already connected; the cursor was simply invisible, because most buttons kept a near white tint on a near black fill. Some screens also never selected anything, and the title menu stayed live under every other screen, so a press could land on a button you could not see. Now the selection moves between each screen's buttons by position, and long lists scroll to keep the cursor in view.
The water, canoes and height rule are in the game and checked on screen. The companion, spell effect and menu changes are next in line for a playtest.
