The tank learns to behave
Most of this devlog has been about making the tank look alive. This stretch was about making it act alive, and almost none of it screenshots, because it’s all motion. You’ll have to take my word until I cut a clip.
Here’s the one I’m proudest of. When four or more fish of the same kind drift together, the boldest, most energetic one quietly appoints itself leader and takes off on a lap around the tank, and everyone else falls in behind it, single file, sprinting to close the gap. Stragglers surge to catch up, the line stretches out and reels back in. It’s a full conga line of overexcited fish, and the best part is I didn’t really script it. It falls out of the personalities the fish already had. The bold ones lead because they’re bold. After sessions of building traits as data on a card, watching that data turn into a fish deciding to go on an adventure was the most satisfying moment I’ve had on this project.
A few related fixes in the same spirit. All my guppy strains, Cobra, Japan Blue, Red Dragon, Dumbo Red Tail, now school together as one big family instead of swimming around as lonely solo colors. A guppy’s a guppy: a Dumbo doesn’t care whether it’s shoaling next to a Cobra or a Red Dragon. (My grouping logic had been quietly sorting them by strain, when it should’ve been treating them all as one species: they still keep their distinct looks, they just hang out together now.) And my bully fish finally learned some manners: a nippy fish used to hover on top of a frozen victim twitching back and forth, which looked broken. Now the target sees it coming and backs off, the aggressor darts in for a clean nip, and nobody flip-flops in place anymore.
Then there’s the new toy: a treasure chest that opens and closes on its own, burbling a stream of fat little bubbles out of the gold. Curious and energetic fish wander over to hang around it, and every time it pops open there’s a chance one of them gets visibly thrilled: a faster wiggle, a happy hop, a puff of bubbles, a scramble toward the loot. It’s a small thing that makes the tank feel like a place fish want to be, and it’s pointed me at something: decor the fish actually react to is worth more than decor that just sits there looking nice. I think that’s the direction I want to push.
On the calmer side: there’s a pirate set now (a ship and an anchor), the caves got reworked into a single cleaner piece with a cozy nook fish like to tuck into, and, my favorite for the fussy decorator in me (and my daughter), you can now tint the sand to any color you want, with hand-drawn grain and a live picker. Dial in the exact substrate tone, save it, done.
Behind the scenes I also made my own life easier: my Asset Editor now lets me drag things into place with the mouse, anchor points, the chest’s lids, where its bubbles come from, instead of nudging with arrow keys, and I can give a single piece multiple floor lines, so an arch can have a real gap underneath that fish swim through.
I also owe last post an honest correction. That 3D-depth trick I was excited about, layering decor so a fish tucks behind the near rim of a cave instead of floating on top, I couldn’t make it work. I lost a full day throwing different fixes at it before admitting the problem wasn’t the code, it was the approach: I’d been trying to bolt depth onto art that was never drawn for depth. The fix is to author the art from a different perspective from the start. That cleaner single-piece cave up there is partly me climbing back out of that hole. No finished depth system to show yet, but realizing it’s an art-authoring problem and not an engineering one is its own kind of progress, and probably saved me a second wasted day.
More soon, hopefully with a clip of that conga line.