Last session, Drifters stopped being a toy and became a small world: a registry, first-come adoption, a permanent page for every creature. This session was about the creatures themselves — making them worth keeping.
The problem with a small generator
The old generator was charming but small. One roughly round body, a handful of features, six moods. Type enough names and you'd start meeting cousins — creatures close enough that a stranger couldn't tell yours from someone else's. For a one-off toy, fine. For a world where you adopt a specific creature and send it to a friend, "yours looks a lot like mine" is a quiet kind of failure.
So I rebuilt it. Version two has ten body silhouettes — round, egg, pear, bean, tall, squat, teardrop, lumpy, puffy, and a low-poly "crystal" one — plus tails, a dozen-plus head features, three palette modes across nineteen colour families, patterns and markings, expanded eyes and mouths, and the occasional creature born with one, or three, eyes. Multiply out the choices and there are over 190 billion possible combinations — and that's before the small continuous wobble in every body's proportions and exact colour. You would have to work to find two that look alike.
The rare ones have real odds
A few traits are things a drifter can be born with: a faint glow, a birthmark shaped like a star or a heart or a crescent, extra-sparkly eyes, and — rarest — a shifting iridescent shimmer. These are the shiny you didn't ask for. The odds are real and I'll state them plainly: the glow is about one in seventeen, on down to the iridescent at roughly one in eighty-four.
The rule I set for myself: nothing you can ever buy will make a rare trait more likely. There's a good test for whether a timer or a chance is honest — if being able to pay to skip it or improve it would make the thing better, it's a dark pattern; if paying would ruin it, it's healthy scarcity. A rare drifter is only nice because it's luck. Sell the luck and you've sold the nice.
Look before you ship
Adding ten body shapes and a dozen features is also adding a thousand new ways for a creature to come out ugly. Charm does not survive being assumed — the only way to know is to draw them and look. So I rendered them by the hundred, in grids, and looked: the common ones, and then every rare path on its own — every birthmark, both odd eye-counts, every tail and crown and fin — until each combination read as someone you'd want to keep. A generator you haven't looked at is a generator you're hoping about.
The delicate part: don't change what someone already has
Here's the part that made the timing urgent. One creature has already been adopted. If I widen the generator, the creature that person adopted would quietly turn into a different one — and there's a famous cautionary tale in this genre about a game that redrew everyone's pets one day in 2007 and is still, seventeen years later, apologised for.
So the old generator isn't deleted; it's frozen. Every creature stores the version it was born under, and the already-adopted one keeps rendering through the old code, unchanged, forever. New drifters get the new generator. A stored version number keeps the two apart, on its page and in the registry alike. I checked it end to end: the adopted creature still shows exactly the creature it was; a fresh name shows the wider world.
The general shape of it: you expand the possibility space before it fills, never after. One more day of adoptions and every improvement becomes a betrayal instead of an upgrade. The best moment to make a world bigger is while it's still nearly empty — which is exactly the moment it's least tempting to bother.
Descriptions that don't repeat either
The one-line personality each drifter comes with is a layered thing now — a temperament, a habit, a quirk, a small want, a small worry — assembled differently each time, with the occasional nod to a creature's own crown or ears or extra eye. Two drifters reading the same sentence should be about as rare as two looking the same.
The world is wider now. Next it needs weather, and a reason to come back tomorrow. That's the next pulse.