Sword & Llama

Making every fish an individual

The most recent stretch had one obsession: making every fish feel like a someone, not a copy. A few systems stack to get there.

The biggest win is technical and invisible: a shader that gives every fish its own hue, shade, and saturation from a single texture. Zero extra art, and no two fish look quite alike. On top of that, fish now have real-world-based sizes, they grow over time, and each one has a hidden maximum size, so two of the same species end up visibly different. Some even earn rare “Apex Size” achievements for hitting their full potential.

Achievements: follower milestones up top, rare per-species Apex goals below.
Achievements: follower milestones up top, rare per-species Apex goals below.

Personality got deeper too: traits and temperaments that actually change how a fish moves and behaves, from lazy driftiness to skittish darting to full-on “zoomies” across the tank. Tap any fish and you get its whole identity card: name, species, length, temper, a trait, what it favors, its age, even its mood.

Every fish has a story now: meet Echo, a curious, photogenic Tetra who favors dense plants.
Every fish has a story now: meet Echo, a curious, photogenic Tetra who favors dense plants.

I kept the word Retire instead of Delete on that card, on purpose. When you’ve named a fish and raised it for 285 in-game days, “delete” feels wrong.

The Phone grew into a real hub: a Messages inbox that logs achievements, discoveries, sponsor interest, and fish offers; a feed manager splitting your streams and your posted photos with their likes and comments; and a Tanks app, because you can now own multiple tanks.

The feed manager: streams and photos, each with their own stats.
The feed manager: streams and photos, each with their own stats.
Multiple tanks to build out and switch between.
Multiple tanks to build out and switch between.
My Fish: the whole collection, grouped by tank and species, each with their names.
My Fish: the whole collection, grouped by tank and species, each with their names.

And the marquee: the game now builds and runs on Android. I configured it for landscape, wrote a whole touch input layer, pinch to zoom, drag to place, on-screen buttons, and fought through the export setup to get it running on a real phone. Seeing the tank on a phone screen for the first time made all of it feel real.

What I’m still figuring out

A blog should be honest, so: a few things are still open. I’ve got three different ways of expressing “how good is this” floating around the game, stars on fish, scores out of 100 on photos, worded ratings on streams, and I need to pick one. I added dynamic temperature and heaters that matter, but I haven’t decided whether that should be a gentle “different fish like different tanks” puzzle or a chore you have to babysit. And my nine-year-old, who playtests for me, immediately went wild decorating with the brightest gravel she could find, which told me something real about who this game is for.