Game Boy Pixel Art · Reference
The Four-Shade Contract
The shade roles, the measured budgets, the outline law, the shape numbers and the contrast rule — the one page to keep open while drawing.
The compressed form of every lesson so far. Print it, pin it next to the canvas.
The four shades
Always ordered lightest to darkest. The index is the same order the Game Boy used.
| # | Name | Job |
|---|---|---|
| 0 | Paper | Highlight only. Eye glints, rims, wet edges. Never a fill. |
| 1 | Light | The lit side. Half of all form description. |
| 2 | Dark | The turned-away side. The other half. |
| 3 | Ink | Silhouette and separation. Holds the shape against the background. |
The budgets
Percentages of drawn pixels (transparent pixels excluded). Measured off the CC0
reference art with assets/build-examples.py, not asserted.
Characters
| Asset | Key | Paper | Light | Dark | Ink |
|---|---|---|---|---|---|
| Fluffy — idle + walk, 5 frames | 1.90 | 2.8% | 38.1% | 25.7% | 33.4% |
| Fluffy — jump | 1.91 | 5.4% | 33.3% | 26.6% | 34.7% |
| Fluffy — fall | 1.89 | 4.9% | 36.0% | 24.4% | 34.7% |
| Fluffy — roll (three shades only) | 1.84 | — | 41.0% | 34.0% | 25.0% |
| GBJam ninja — run | 2.10 | 6.1% | 22.6% | 26.1% | 45.2% |
| GBJam ninja — jump | 2.07 | 6.9% | 22.4% | 27.6% | 43.1% |
| GBJam sensei — boss | 1.92 | 19.7% | 18.9% | 11.0% | 50.4% |
- Ink a third to a half (33–50%). Characters are ink-heavy; that is what holds them.
- Paper under 7% on every character except the boss, which spends 19.7% of its pixels on Paper to read as a large lit mass.
- Characters cluster in a narrow key band, 1.84–2.10. There is no such thing as a cheerful-key character in this sample.
Environments
| Environment | Paper | Light | Dark | Ink |
|---|---|---|---|---|
| Platformer tiles, green (Chloe Wolfe) | 5.2% | 31.8% | 45.3% | 17.7% |
| Platformer tiles, brown (Chloe Wolfe) | 3.6% | 31.5% | 44.5% | 20.4% |
| GBJam platformer tiles (LittleSadNerd) | 18.1% | 40.0% | 26.3% | 15.6% |
- Environments are ink-light — 15–20% — precisely so characters at 33–50% can win.
- Environment Paper is not capped the way a character’s is. It varies hugely across real tilesets and is a mood decision. Parked in Tone and Key.
Character shape
Cropped to the sprite’s own bounding box. From Lesson 02.
| Character | Box | Fill of box | Outline | Interior | Gaps |
|---|---|---|---|---|---|
| Fluffy, idle | 16×16 | 86.7% | 23.0% | 77.0% | 0 |
| Ninja, running | 15×11 | 69.7% | 37.4% | 62.6% | 0 |
| Sensei boss | 14×13 | 69.8% | 37.8% | 62.2% | 1 |
| Knight | 14×22 | 61.0% | 28.7% | 71.3% | 0 |
- The outline is 23–38% of the sprite. A third of the budget goes before you start.
- Fill 60–85% of the box, and no enclosed holes — one across four characters.
Interior mix
Silhouette-edge pixels removed. From Lesson 03.
| Character | Paper | Light | Dark | Ink | Two mids |
|---|---|---|---|---|---|
| Fluffy, idle | 3.5% | 49.1% | 33.9% | 13.5% | 83.0% |
| Ninja, running | 9.7% | 34.7% | 41.7% | 13.9% | 76.4% |
| Knight | 7.5% | 59.7% | 32.8% | 0.0% | 92.5% |
| Sensei boss | 31.6% | 30.4% | 16.5% | 21.5% | 46.9% |
- Light + Dark carry 76–93% of the interior.
- Interior Ink is 0–14%, and the knight uses none at all. Ink is the edge value. Dark is the shadow value. Confusing the two is what makes a sprite muddy.
- Light direction is fixed top-left; the terminator is one continuous run.
Reading against the ground
From Lesson 04.
contrast ≈ | outline shade index − average shade of the ground | — aim for 1.8+,
below 1.2 the character dissolves.
| Knight stands on… | Ground average | Contrast |
|---|---|---|
| Flat floor tile | 1.00 | 1.99 |
| Wall tile | 2.57 | 0.44 |
| Void tile | 3.00 | 0.01 |
- Keep walkable ground averaging 1.0–1.2. Dark values belong in walls and structure.
- A ground averaging 1.5 holds nothing — it caps every character at 1.5 either way.
The outline law
On a character, every silhouette-edge pixel is Ink.
A silhouette-edge pixel is a drawn pixel with at least one transparent orthogonal neighbour — the pixels that touch the background. Measured on the reference character: 215 of 215, across all five walk frames. Not “mostly”. All of them.
Environment tiles do not obey this. Measured across five tilesheets, the share of outer edge pixels that are Ink runs 46–77%, never 100%. Tiles are allowed to open up along their edges, because they need to merge with their neighbours rather than stand apart from them.
Palettes
Ready to import into Aseprite (Palette ▸ Load Palette) or GIMP:
gb-neutral.gpl—#eef0e8 #a8b09c #565f4c #1a1e16. Draw here. Grey exposes value mistakes that green hides.gb-bgb.gpl—#e0f8d0 #88c070 #346856 #081820. The bgb emulator default; the green everyone pictures. From Lospec.gb-dmg-01.gpl—#9a9e3f #496b22 #0e450b #1b2a09. Sampled from real hardware, so yellower and muddier than memory. From Lospec.
Tint is applied last and can be swapped at any time. Value is the art.
Checklist before an asset is done
- Exactly four shades used — no fifth value crept in from a resize or a paste.
- Every silhouette pixel on a character is Ink.
- On a character, Paper is under 6% and is doing highlight work, not fill work. On a tile, Paper is whatever the target key demands — it is the tone dial, not a ceiling.
- Ink share is a third to a half for a character; for a tile it is whatever the target key requires — near ⅕ for neutral, ≥ 40% for grim.
- The shape is solid, fills 60–85% of its box, and has no enclosed holes.
- No Ink inside the shape except for features that must read as holes.
- Contrast against the ground it will stand on is 1.8 or better.
- Squint until it blurs. If the shape still reads, it ships.
Terms
Defined in the glossary.