Skip to content

Character gallery audit — 45/51 designed, but only 2 characters reach the game #141

Description

@juliatetrud

Character gallery — completeness & sync audit

Requested alongside the kitchen art fix (#141). Diagnosis only — nothing changed here.

Headline

The gallery itself is nearly complete: 51 cells, 45 designed, 6 placeholders.

The problem is not the gallery — it is that almost nothing in the gallery reaches the game.

1. The shared source of truth contains two characters

art/galleries/art-source.js is the declared shared source — the file the game imports so that
gallery and gameplay cannot drift. It contains:

drawPip, drawPatu

That is 2 of 44 gallery character draws. The other 42 are gallery-only. Every other
character in the game — Henrik, Babcia, Dziadek, the Janitor, Leida, Iris, Johannes, Tirta,
Muhittin, the Pocong, Boitatá, all of them — is drawn by a separate function living in
game/index.html
that was authored independently of its gallery cell.

The Ch1 source-of-truth rule says the galleries are authoritative for how anything looks. In
practice that rule is enforced for Pip and Pätu and for nobody else.

2. That is exactly what produced the kitchen bug

Henrik alone has five local draw functions in the game:

drawHenrikStanding · drawHenrikSitting · drawHenrikFrozen · drawHenrikSitsDownCinematic
· drawHenriksOfferCinematic

drawHenrikStanding happens to be faithful to the gallery (same rect construction, same
palette). drawHenrikFrozen was not — 98px vs 72px, cream chef jacket #dcd8c8 vs near-black
shirt + cream apron, skin #b8805c vs C.hSkin #d0b898. Two Henriks in one kitchen. Fixed
in #141 by rebuilding it on the gallery construction, but nothing prevents the next one.

A third Henrik is still out there: drawMemory6bScene (the first-taste memory, "an older
Henrik teaching a young boy") draws its own figure with the #b8805c skin tone. Not touched in
#141 — it is a memory scene with its own warm palette, and it needs Julia's eye rather than a
mechanical port.

Other characters with multiple local variants, each a place the same drift can happen:

Character local variants
Henrik 5
Dziadek 3 (incl. drawDziadekRadio)
Babcia 2
Doctor 2
Erik 2
Iris 2
Janitor 2
Passenger 2
Boitatá 2

3. The six undesigned cells

Chapter Section Cell
Ch 7 chefs Generational Moqueca Figures
Ch 2 echoes Echo-mice
Ch 8 echoes Urban vermin
Ch 7, 8 echoes Echo-mosquitoes
Ch 3 echoes Echo-fish (haddock)
Ch 3 echoes Echo-fish (plaice)

⚠️ "Echo-mice" is now stale — the echo-mouse was removed from the game on Julia's call
(#136). The cell should be retired rather than designed, unless echo-mice appear in Ch2
independently of the Ch1 corridor creature.

So the real outstanding art is 5 cells, all of them minor echo-creatures plus one Ch7
chef group.

4. What needs to be created — recommendation

Not more gallery cells. A migration. The gallery is 88% designed; the gap is that it is not
wired to anything.

  1. Extend art-source.js from 2 characters to the full canonical set, starting with the
    ones that already have multiple divergent in-game variants — Henrik, Dziadek, Babcia,
    Janitor, Doctor, Passenger, Erik, Iris. That is where drift has actually happened.
  2. Rewrite the game's local draws as thin wrappers that translate/scale and call the shared
    function, the way renderPip and renderPatu already do. Pose variants (sitting, frozen,
    cinematic close-up) become parameters, not separate characters.
  3. Design the 5 remaining cells, retire the Echo-mice cell.
  4. Add a guard — a check that no character has more than one construction, so a sixth
    Henrik cannot appear silently.

Steps 1–2 are the substance and should be their own sprint, per chapter or per character
cluster. This issue is the diagnosis; it does not do the work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    art-blockedWaiting on commissioned artworkdesign-docDesign document creation or update

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions