worldbuilding

Use when

You have a cast or roster and need each member instantly recognizable and distinct.

What it is. The fiction half of a cast: giving each character a silhouette, a role you can read, and a one-trait voice so the whole roster separates at a glance. system-unit-rosters handles what they do; this handles who they are.

Player fantasy / why it’s fun. The player names their favorites before the tutorial ends. A crowded screen still parses because every body is a different shape. Recognition is the first loyalty — you can’t love a unit you can’t tell apart from the one beside it.

The kit

Three levers, in priority order. Silhouette first because it survives distance, motion blur, and a 32px sprite.

LeverThe questionFails when
SilhouetteBlacked out, can I still name them?Everyone’s a humanoid in a different hat
Role tellDoes the look promise the verb?Healer looks like the bruiser
VoiceOne adjective, everywhereSix characters, one personality

The order is the discipline. A gorgeous face on a same-shaped body loses; a crude shape that reads at a thumbnail wins. See pattern-readability.

Vectors / options

Twist seams

Method

  1. List the verbs first. Before any look, write what each character does — one sentence. Look serves verb, not the reverse. If two characters share a verb, one of them is redundant; cut or differentiate now.
  2. Assign a shape. Round / square / triangle per role. No two adjacent roster slots share a shape and a palette.
  3. Silhouette-test at a thumbnail. Black out the roster and name each. Any collision = redesign the loser, don’t tweak. This is the gate; pattern-readability is the law it enforces.
  4. Hang one motif each. A single prop, mark, or asymmetry. Resist the second. Detail is not identity — a distinct detail is.
  5. Write one voice adjective per character. Then draft two lines of dialogue that could only be them. If another character could say it, the voice isn’t set.
  6. Encode the role in the look. Attacker looks sharp, defender looks solid, support looks soft. Let the body promise the verb from step 1 — the twist seam above is this step turned up to eleven.
  7. Stress-test the crowd. Put the whole roster on one screen, in motion, at real density. If it turns to soup, you over-detailed. Return to step 3.

Aesthetic hook (Regalia / JUDGE)

The Regalia palette rewards this discipline. Flat duotone fills and a small hue set mean silhouette and one accent do nearly all the work — there’s no gradient noise to hide behind.

The proof is visual: the vision judge in design/JUDGE.md looks at a headless render and asks whether the roster separates. If it can’t tell two characters apart, neither can the player.

Traps

See also

This module rendersthe repo's markdowndirectly — edit it there, it changes here.