How Much Art Does a Character Who Is Not the Hero Deserve?
Screen time sets the budget, reading load sets the shape. Five tiers, what each one gets, and the arithmetic for a cast of eight done two ways.
The shopkeeper took three weeks. The brief said "shopkeeper", the pipeline said "character", and the pipeline is whatever built the hero: concept pass, canvas, seven animations, six baked sheets. The player will look at her for ninety seconds all game.
That is where small-game art budgets die. Not on the hero or the rooms, but on a dozen supporting characters that each quietly cost what the hero cost, because no document said they should cost less.
Tiering fixes it. The animation cluster set frame counts by screen time; characters need that variable and one more.
The short version. Rank every character on two axes, minutes on screen and how much the player has to read them, and take the tier from that pair rather than from how important the character feels. Five tiers is enough. A seven-animation set runs about 47 frames and roughly 3 MB of baked sheets, so a cast of eight at hero tier is 376 frames against 148 tiered properly. One rule never bends down: a background character can be crude, but it cannot share a silhouette with anything the player must react to.
Screen time sets the budget, reading load sets the shape
Screen time is the first axis. Add up the minutes a character is visible across a playthrough, not the scenes they appear in. A hub vendor the player passes forty times outscores a chapter-three antagonist with two cutscenes, and the script says the opposite. Used alone it still misprices half a cast, since two characters can each hold ninety seconds and need completely different art.
Reading load is how much the player must extract from the character, under time pressure, to play correctly. A boss is the maximum: the player watches for a wind-up, a tell, a recovery window, frame by frame, and getting it wrong costs the fight. A shopkeeper is near the minimum. She has to be recognizable and look interactive, and nothing about her motion changes what the player does next.
Together they settle the budget. High screen time plus low reading load buys states and identity: facings, an alternate pose, a clear accent color, no extra frames. Low screen time plus high reading load buys frames on a few animations and skips the rest. Score both axes one to five before briefing anything, and tiering stops being an argument about who the team likes.
The five tiers and what each one gets
Copy the row, not the principle.
| Tier | Animations | States | Resolution and detail | Unique or reused |
|---|---|---|---|---|
| Player character | Full set: idle, walk, run, jump, attack, hit, death. ~47 frames. | Three facings. Damage, death, held-item swaps. | Concept square at 1024 x 1024, then the cast canvas, 560 px tall in the measured cast. | All unique. No recolors, no shared parts, no borrowed timing. |
| Major recurring: boss, companion, named antagonist | Four: idle, move, signature action, reaction. ~27 frames. | Two facings. One alternate state, if shown. | Concept at 1024 x 1024, same canvas, detail one step below the hero. | Unique silhouette and accent. Timing copied from the hero. |
| Minor recurring: vendor, quest giver, repeat guard | Two: idle plus the action the role requires. ~13 frames. | One facing. One alternate pose at most. | Straight to the canvas, no concept pass. Detail by distance. | Unique silhouette. May share a costume base with the tier below. |
| One-scene: one line, then gone | One: idle. ~7 frames. | One facing. No alternates, no hit, no death. | Same canvas, detail cut to camera distance. | Base plus palette swap. Often a recolor of a minor recurring. |
| Background crowd | One shared idle, phase-offset per body. | One facing, usually turned away. No interaction. | Same canvas height, detail cut hard, faces optional. | One base, two recolors. Silhouette must not collide with anything reactable. |
The canvas height never drops. Scale and the ground line are cast constants, so savings come from animation count and detail density, never canvas size.
The frame figures are derived, not guessed. A seven-animation set is about 47 frames, so one animation averages about seven. Four is about 27, two about 13, one about 7. The frame budget piece has the numbers behind those averages.
Which animations each tier needs
Cutting an animation saves more than cutting detail, since an animation is seven frames plus a sheet, an engine state and a transition. The most common waste in a supporting cast is a walk cycle nobody plays: a one-scene NPC stands behind a counter, says a line, and is never seen in motion, but the template has a walk row, so walk gets built. Thirteen frames in the measured character, spent on something the camera never sees.
A one-scene NPC needs an idle and nothing else. Below the top two tiers, answer one question in writing before briefing any animation: what does the player do that causes this to play? No answer, no animation.
The idle is therefore load-bearing, and a stiff one makes a whole hub look abandoned. The measured idle sheet is 18 frames in 20 slots at 119 x 260 per cell, 361 KB, the narrowest of the six, since standing still needs no lateral room. Spend there. Building an idle that does not read as dead applies to a crowd body as much as to a hero.
The arithmetic: a cast of eight, two ways
Two anchors. A full seven-animation set is about 47 frames. One measured character's six baked sheets come to about 3 MB on disk, roughly half a megabyte per sheet.
Everyone at hero tier. Eight times 47 is 376 frames. Eight times 3 MB is 24 MB. All eight get a concept pass, three facings and a death animation, the two who never fight included.
Tiered. One player character at 47 frames and 3 MB. Two major recurring at about 27 frames and 2 MB each. Two minor recurring at about 13 frames and 1 MB each. Three one-scene characters at about 7 frames and half a megabyte each. Total: 148 frames and about 10.5 MB.
Same eight characters, same game: 376 frames against 148, a factor of two and a half, plus 13.5 MB saved, roughly thirty finished 1920 x 1080 backgrounds at the measured 328 to 468 KB each. Frames matter more than disk, since frames are production time. Run the sum before you commission, and if the total beats your schedule, demote a tier: shaving one frame off every animation saves less and costs quality everywhere.
What a palette swap buys, and when the player catches it
A recolor is oversold in both directions. What it buys is a second body on screen for a palette edit: no new animation, no sheets, no engine states. What it does not buy is a second character, because motion is identity. Two bodies on the same walk cycle read as one person in different clothes, since players recognize gait before color at play distance.
Players catch a recolor under three conditions, in this order. When two variants share a shot. When a variant gets a name and dialogue, since a speaking character gets looked at properly for the first time. And when a variant carries a different mechanical role, since a player forced to respond differently goes looking for the difference.
The rule: one base supports three appearances, the base plus two recolors, and only when no two share a shot. The fourth reads as cheap. Past three, change the silhouette instead: a hat, a pack, a hem length, a carried object. A parts swap on top of a recolor resets the count, because the player reads shape, not hue.
Recolor the accent, never the core. A variant that drifts the shadow hue or the neutrals reads as a different world, not a different person.
Low fidelity is fine, an ambiguous silhouette is not
Every reduction above is fidelity, and fidelity is safe to cut to the floor. Silhouette is not part of that budget. A background character may share a silhouette with another background character. It may never share one with anything the player has to react to. A crowd body that reads like an enemy costs the player a wasted input and a moment of doubt, and they blame the game.
The check takes ten minutes. Fill the cast black at play size, put the crowd tier in the same row as the enemies and the interactables, and look for pairs across tiers rather than within them. No per-character review catches a cross-tier collision, since nobody reviews a crowd body next to a boss. The companion piece on cast silhouette differentiation runs the full test.
So build crowd bodies quieter in shape, not blurrier: trim the projecting extremities, and save big shapes for characters the player acts on.
Build minor characters so promoting one later is cheap
Design changes. A shopkeeper becomes a companion in act two, and the tier assigned in month one is wrong. Promotion should cost the difference between tiers, not a rebuild. Five free decisions make that true.
- Author every tier on the full cast canvas. Same locked height, width inside the cast's range. A character authored small cannot be promoted without redrawing.
- Keep the layered source for every character, crowd included. Flattened output is a delivery format. Promotion needs the layers.
- Reserve a free accent color even where one is not needed. Accents are finite, and finding at promotion time that the last unclaimed hue fits badly is a problem created months earlier.
- Use the same sheet contract at every tier. Same naming, same cell-height rule, frame count stated separately from slot count. Three of the six measured sheets carry empty trailing slots, and an undocumented count plays blank frames at the end of an animation.
- Never bake a character into a background. The single saving that cannot be undone, and the most attractive one at the time.
Promotion is then additive: same source, same canvas, add the sheets the higher tier calls for. The animation pillar covers holding the ground line steady when sheets are baked months after the originals, and drift there is how a promoted character stops standing level.
The character your team loves is not the character the player sees
Every project has one. The grumpy engineer with four lines of dialogue who is, by unanimous internal agreement, the best character in the game. She has a nickname in the commit messages. She is on screen for two minutes, and the player has no opinion about her.
Affection sits on neither axis and does not belong in the budget. Give her the tier she scores, and move the difference to the hub vendor nobody has feelings about, who the player looks at for eleven minutes. Two allowances, though. A character in your store page screenshots has real screen time outside the build, so it goes on the axis, and a half-tier bump will not sink a schedule. A full hero set for a two-minute cameo, 47 frames while a real major recurring character waits at 27, is how a budget lands in the wrong place. Same ranking decides swap order when replacing placeholder art: highest screen time first, regardless of who is fun to draw.
The cast budget block
Fill this in before anything below the player character is briefed.
# [GAME] - cast art budget v0.1
## Axes (score every character, then assign the tier)
name screen-min read-load (1-5) tier
-------- ---------- --------------- ----------------
[ pc ] 120 5 player character
[ ... ] 11 2 minor recurring
## Tier allowances (do not exceed without a written reason)
tier anims frames facings states concept disk
player character 7 ~47 3 full yes ~3.0 MB
major recurring 4 ~27 2 one yes ~2.0 MB
minor recurring 2 ~13 1 one no ~1.0 MB
one-scene 1 ~7 1 none no ~0.5 MB
background crowd 1 ~7 1 none no shared
(crowd idle shared, phase-offset per body)
## Variant policy
base -> max 2 recolors, never in the same shot
recolor changes ACCENT only; core palette and shadow hue constant
a named, speaking variant is a new character
## Constants at every tier
canvas height = [ ] px LOCKED (560 in the measured cast)
art-to-bottom gap = [ ] px; frames stated separately from slots
## Totals
frames : [ ] all hero tier vs [ ] tiered
disk : [ ] MB
check : no crowd silhouette collides with a reactable one
Run the totals twice, hero tier throughout and then tiered. The gap is the argument for the system, and the number to show anyone requesting a promotion for a favorite. Systems that bake a cast as a set, as Makko does, hold the constants steady across tiers, so the only difference between a vendor and a boss is what you bought.
Frequently asked questions
How do I score screen time before the game is playable?
Estimate in minutes from the level layout, not the script: how often the player crosses each space, and what stands there. Hub characters win almost every time and get undercounted almost every time, because a script gives them one scene and the game gives forty visits.
What tier do enemies belong to?
Reading load lifts a regular enemy above its screen time, usually to minor recurring plus one animation, because the player must read a wind-up even from a trash mob. Bosses are major recurring at minimum. Savings come from variants, not tiers: one base plus a parts swap and a recolor covers three encounter types, if the silhouette change is real.
Can a background character be blurry or simplified?
Simplified, aggressively. Blurry, no. Softening reads as an art error at any distance, while simplification reads as style. Cut interior detail, the face and shading steps, and keep the edges as crisp as the rest of the cast. Line weight, rendering level, shadow hue and light direction hold a cast together, and a crowd body breaking those looks broken rather than cheap.
My game has thirty NPCs. Does this still work?
It works better, because the arithmetic gets brutal fast. Thirty at hero tier is over 1,400 frames and about 90 MB, which no small team ships. Resolve them into base characters plus variants, then tier the bases. Thirty bodies usually come out as six or seven bases, and only two score high enough to leave the bottom tiers.