Every player in my game is procedurally generated. Started with skin complexion tonight.
- Nothing is stored in the save. A player's whole appearance is derived from their unique ID, so the same footballer looks identical on every machine, every session, forever.
- Nine regional profiles weighted to a rough global-football distribution, and each is a continuous range, not a fixed set of swatches. No two players share a complexion.
- MetaHuman skin has the colour baked into the texture, so there is no tint slider. I drive the material's post-bake adjustment stage instead, across the body and all four face levels of detail. Miss one and a player changes colour as the camera pulls back.
- The same system already generates hair colour, eye colour, hair style, facial hair, height and build. Skin was just the first one wired to the mesh. Face morphs are next: 24 blend shapes for cheekbones, jaw, nose and brow.
Each trait draws from its own random stream. Sounds fussy, but with one shared stream, adding a single new morph target would shift every player's complexion and hair overnight. The whole squad would look like strangers and it would not even look like a bug.
Deterministic generation means I never store a face. Just the ID it came from. A save that would need forty thousand faces in it now needs none, and regenerating is free and survives version changes.
Shipped: deterministic appearance from player ID · complexion across body + all face LODs