9 Character Art Mistakes That Break a Cast

Nine faults that make a group of characters look like they came from different games. Every one is a missing written decision rather than a drawing failure.

Four crew members of different heights and suit shapes posed together on a derelict ship bridge, all on one floor line. Art made in Makko.

A broken cast never announces itself one character at a time. Each file passes its own review, because each file was reviewed against nothing. The failure appears the first time two characters share a screen, and by then it sits in six assets instead of one.

Nine mistakes below, each with the symptom someone would notice, why it happens, and the fix. None is a drawing failure. Every one is a decision nobody wrote down, and that is what puts all nine inside reach of a developer who cannot draw.

Figures come from one measured cast and its baked sheets, checked September 2026. This is the blog of Makko, an AI-powered 2D game art studio, named once below where it answers a problem the list has already raised.

The short version. Three of these nine do most of the damage: characters built one at a time with no shared standard, canvas height drifting between them, and silhouettes tested alone instead of in a row. Fix those first, since all three are cheap while the cast is concept art and expensive once roughly 47 frames per character have been animated on top of them. Run the rest in order, because the early mistakes cause several of the later ones.

How these nine were picked

Four filters, and a mistake had to pass all four. The entries then run in the order the mistakes get made.

  • It has a symptom you can point at. "The cast looks inconsistent" is a complaint. "Character four stands 12 px shorter on the same ground line" is a defect report.
  • A non-artist can find it. Every diagnosis below is a measurement, a file property, or a composite anyone can assemble.
  • It is a missing decision, not a missing skill. Each traces back to a line never written into a contract, so hiring a better artist does not prevent it.
  • It compounds. The cost rises with every character finished and every animation baked against the wrong number.

1. Characters get built one at a time, so nothing shares a standard

Symptom. Every character looks fine alone and the group looks like two games. Nobody can name the offending property, and the argument becomes style opinions.

Why it happens. Pipelines are built around single assets: a brief describes one person, a canvas is chosen for one file, a sheet spec covers one character. Nothing asks whether character four belongs with character one until a build exists.

The fix. Decide per property whether it is held constant across the cast or varied on purpose, before the second character exists. Canvas and scale, line weight, rendering level, palette core, light direction and proportion system are constants. Silhouette, accent color, costume shape language and posture are the variables. The cast contract has the split and a block to copy. Generating a cast as a collection, which is how Makko is built, settles the constants once for the set.

2. The second character is matched to the first by eye

Symptom. Characters two and three sit close to the reference. Four, five and six drift progressively further, and the newest looks least like the cast.

Why it happens. Matching an image is easier than matching a document, so character two gets matched to character one by eye and character three to character two. Each step adds an error and inherits every error before it, so the drift runs one direction and no single step looks wrong.

The fix. Match every character to the contract, never to the character before it, using numbers: exact canvas height, outline pixels counted at the same zoom, shadow steps counted on an upper arm, shadow hue compared as hue rather than value. Keep one reference character as the only comparison target, picked for screen time, since whatever you build first becomes the standard anyway.

3. Canvas height drifts between characters

Symptom. Two characters stand side by side in the engine and one is subtly the wrong size. Adjusting a sprite scale in code fixes that pair and breaks the pair beside it.

Why it happens. Canvas size gets set per file, from whatever the pose needed. It is invisible in a file browser and in a per-character review, since it exists only as a relation and nothing compares two characters.

The fix. Lock the dimension your game measures by and let the other follow the art. In one measured cast of six, canvas height is locked at 560 px on every character while width floats between 295 and 311 px. Six widths is not a defect: height controls scale and the ground line, so locking it puts everyone at a known size relative to everyone else, while width controls nothing and one shared value crops a broad character or pads a narrow one. Exact, not close: 554 px is out of contract.

4. The ground line sits at a different height in each file

Symptom. Canvas heights match and characters still stand at slightly different depths, as though one is a step behind the others. Invisible standing still, obvious once two of them walk together.

Why it happens. Locking the canvas feels like locking the scale, so the gap between the bottom of the art and the bottom of the canvas never gets specified. Padding an artist leaves under the feet becomes a per-character vertical offset the engine preserves.

The fix. Specify the bottom gap in pixels with a tolerance and measure it on every delivery. Production holds tighter than teams assume: across six baked sheets from one character, the gap from the bottom of the art to the bottom of the cell ran 2 to 7 px, a five pixel band inside a 260 px cell height, under two percent. Use that as the cast tolerance. The scale contract covers the web this sits in.

5. Light direction differs between characters made months apart

Symptom. One character reads as pasted into the scene and repositioning does not help. Two characters in one room appear to stand in two different rooms.

Why it happens. Light direction gets decided implicitly, by the first reference image someone liked, and recorded nowhere. Four months later the next character comes from a different reference. Both look correct alone, because a single figure lit from either side looks correct alone.

The fix. Write the direction into the contract as words, key from upper left on every character, and check it as two observations: the lit side of the head, then the lit side of the chest. Both must agree with the cast, since a character can carry a correctly lit head on a torso lit from the other side. A wrong canvas you repair with a resize. A wrong light direction you repair by repainting, so catch it at the first delivery.

6. Each silhouette is tested alone instead of against the cast

Symptom. Every character passed the black-fill test, and a tester in the first playable build still asks which of the two people on screen is the medic.

Why it happens. The solo silhouette test is real and it is the wrong test for a cast. Filled black, a humanoid asks whether this is a person, and every humanoid answers yes. Confusion is a relation between two characters, and a per-asset review cannot see a relation.

The fix. Test the cast. Fill everyone 100 percent black, same pose, one shared ground line, rendered at play size rather than canvas size, in one tight row, and scan for pairs instead of quality. Hand it to someone who has not seen the art all week and ask how many characters are in the picture; an undercount is your answer. The line-up procedure and the four ranked separation properties covers which property to change once a pair shows up.

7. Two characters separate standing still and converge in motion

Symptom. The idle line-up is clean and players still confuse two characters during play. Confusion spikes in fights and disappears in menus.

Why it happens. Players rarely see a character standing still, and a walk cycle pushes every humanoid toward the same shapes. The passing position is the worst case, deleting stance width, arm position and coat flare from everybody at once. Differences built from a bag, a staff or a flared hem live in exactly the frames it takes away.

The fix. Run the line-up on the walk passing position, not only on idle frame one. In that cast, animation cells hold height constant at 260 px while cell width runs 119 to 221 px depending on the action, against six characters measuring 295 to 311 px wide at rest. One character changes its own footprint more between actions than the whole cast differs standing still. A difference that survives the passing row survives the game.

8. Stylized proportions are applied to the cast and not the environment

Symptom. The characters are appealing, the rooms are correct, and together they read as toys on a model set. Resizing the characters moves the problem without removing it.

Why it happens. Stylization gets briefed as a character decision. The environment brief goes elsewhere and stays at human proportions. A three-head character in a room built for seven-head adults has two failure states: keep its height and it reads as an adult with a balloon head, shrink it and it reads as a child in an adult house.

The fix. Treat stylization as a transform on the whole web rather than a character-only choice. Pick the measuring unit, often the body unit from ground to chin rather than total height, re-derive every environment ratio against that unit once, exaggerate prop shapes and not only prop sizes, and apply the convention to every character including enemies. One realistically proportioned enemy destroys it for the whole game.

9. Every character is built at hero fidelity

Symptom. The schedule is double the game, and what ate it was a shopkeeper the player looks at for ninety seconds in total. The boss got the same number of animations she did.

Why it happens. The pipeline is whatever built the hero, and nothing in the brief says a supporting character should cost less. Importance gets judged by how the team feels about a character rather than by what the player does with it.

The fix. Score every character on two axes before briefing anything, minutes visible across a playthrough and how much the player must read from it under time pressure, then take the tier from that pair. A seven-animation set runs about 47 frames per character and about 3 MB on disk across six baked sheets, so eight characters at hero tier is 376 frames, most of them spent on people nobody watches. The five-tier budget has the per-tier rows. One rule never bends downward: a crowd character can be crude, but it cannot share a silhouette with anything the player has to react to.

The nine at a glance

#MistakeSymptomWhere you catch it
1Built one at a timeGroup reads as two gamesThe brief
2Matched by eyeNewest drifts furthestProperty audit
3Canvas height driftsOne character mis-sizedFile dimensions
4Ground line differsDifferent depthsBottom gap
5Light disagreesOne looks pasted inLit side, head and chest
6Silhouettes tested aloneTesters confuse twoBlack-fill row
7Convergence in motionConfusion only in playWalk passing row
8Stylization stops at the castToys on a model setCharacter in a doorway
9Uniform hero fidelitySchedule double the gameFrames per character

How to run the diagnosis in one sitting

Copy this and run it against the whole cast at once. Twenty minutes, and it isolates which of the nine you have. Stop at the first failure, since mistakes 1 and 2 generate most of the rest.

# CAST AUDIT - [GAME]

0 CONTRACT    no constant/varied split    -> 1
              characters matched by eye   -> 2
1 DIMENSIONS  canvas heights differ       -> 3
2 BOTTOM GAP  outside the stated band     -> 4
3 LIT SIDE    head or chest disagrees     -> 5
4 BLACK ROW   play size, same pose, one ground line
              two cells the same shape    -> 6
              outsider undercounts        -> 6
5 SAME ROW, WALK PASSING POSITION
              clean on idle, merged here  -> 7
6 DOORWAY     cast stylized, room is not  -> 8
7 FRAME COUNT low screen time at ~47      -> 9

GATE: run 0 through 5 before commissioning animation.

Frequently asked questions

My cast is already animated. Which of these do I fix first?

Write the contract from the characters you have that are most visible and most correct, so the bulk of the cast validates instead of needing rework. Then fix mistake 4, since the bottom gap is repairable by shifting art inside a cell. Mistake 3 is next, a resize. Leave 5 and 8 alone on finished characters unless the offender has high screen time, because both mean repainting.

Can a programmer diagnose all nine without an artist?

Every one. Fixing 5, 6, 7 and 8 takes an artist, since those end in repainting, but the diagnosis is a measurement or a composite image each time. That distinction decides whether a revision request gets acted on. "The lit side of the chest is upper right and the cast is upper left" is a defect. "This character feels off" is an opinion.

The newest character looks better than the rest. Is that a problem?

It is mistake 2 wearing a compliment. The newcomer is usually rendered further than the cast, because it was made when you knew more, and one member rendered further makes the other five look unfinished. Count shadow steps on a simple form across all of them and push the newcomer back down. Raising the other five invites the same problem on character eight.

Does this apply to a cast bought as a pack rather than commissioned?

A pack built as one set usually passes 1 through 5 by construction, and that is most of its value. It can still fail 6 and 7, since packs are sold on how each character looks rather than on whether any two separate at play size. Run the black-fill row before you commit, and again when you mix in a character from a second source.