Digital Garden

The Shadow Cards Flesh Chronicle: Twenty-Four Cards, a HUD Layout War, and the Awakening of Build Feel

2026-10-14 · ~6 min read · Shadow Cards · game balance · UI layout · roguelike builds · Godot

With the skeleton raised, art set, and feel smooth, the game still needs flesh — and one clear-eyed diagnosis from the player.

I. Content expansion: from 16 to 24

Eight new cards all reuse existing effect types, zero new logic: common (0 wins) combo / deep cut / shield up; uncommon (1-win unlock) recover / blood courage / view the ancients / execute; epic (3 wins) ember shield; two new relics (sigil runestone gives the enemy 2 weak stacks at battle start, stone scale 6 shields on the first turn) each with a 128 icon; two new events (saint ashes heal 40% life, the vigil pure relic drop — an add_relic effect type and test added to the event system for this). The reward pool expands with unlocks to 8 cards at 0 wins / 20 at 1 win / 22 at 3 wins. Ten new assets generated via ComfyUI, six carrying AI pseudo-text (execute and guard_up clean) deep-cropped one by one, with manifest and license registered in step. Tests 92/92, full-run simulation 7 wins 1 loss — the difficulty curve still healthy.

II. The HUD layout war: three rounds of “you are so sloppy”

The HP bar was the first domino. One line from the user — “HP is not obvious enough, and has no texture” — and the default gray bar became a themed bar: 22px→30px, dark base with light-purple outline, three-tier coloring (healthy steel blue → danger ember orange → critical blood red), with the number enlarged and color-synced. The user then advised: “would putting the enemy HP bar overhead be better? Should my HP bar be green? What color do you suggest for the enemy?” — the plan was settled on the spot: player moss green (desaturated, not glaring; the globally intuitive “healthy”), enemy dark crimson fixed (brightening when critical, instantly distinguishing “who is who” against the player green), Boss void purple. After the enemy bar moved overhead, the scolding came immediately: “the HP covers the enemy’s face” — the info bar moved entirely above the portrait (the portrait shifted down, the face starting at y≈175, 70 px clear of the info bar). The player status bar relocated three times: floating text in the bottom-left “feels uncomfortable” → given the same translucent HUD backing (visually becoming one component) → up to left-center → up again to clear the hand-card lift zone (y 224-356) → the detail panel flipping left would cover it, so z_index raised to 150 to stay on top. The user finally boxed the relic panel: “move it to the right” — and so the HUD is symmetric: left-center player status, right-center relic panel. Each round of occupancy was computed on the spot (28 px / 180 px / 100 px+ clearances), and each scolding honestly booked (“for this kind of layout change I will check against the actual composition before submitting from now on”). The engineering side also fixed a process hole: verify.sh did not count script errors in smoke runs (Godot exit code 0, error lines grepped but not counted as failures) — after strictification, the EnemyTopShade missing-unique-name error surfaced on the spot.

III. The awakening of build feel

The real turning point was one diagnosis from the user: “the cards seem to always be the same few, and the combos are boring; the playability is actually pretty weak, or is that optimized later?” The craftsman did not defend but gave a pathology report: a numerical structure problem — the initial deck is fixed at 10 cards and a run adds only 4, so 10 of 14 are initial cards; whatever reward you draw gets diluted, and the deck never feels “shaped by you”; missing build levers — no card removal (weak cards stay in the deck forever), no growth status (attack builds have no sense of accumulation), no archetype keywords (nothing rewards “playing many low-cost cards” or “playing many attack cards”). The prescription is a trio: a card-removal option in the reward screen (half a day), a strength mechanic (each stack +1 to all attack damage, lasting the whole run, with charge / rage / break-the-cauldrons cards plus one relic), a combo mechanic (a this-turn cards-played counter; combo cards scale by cards already played this turn, rewarding the “low-cost setup → high-cost payoff” rhythm). Together the three form the minimal closed loop of “build feel”: removal shapes the deck, strength feeds attack builds, combo feeds rhythm builds. The roadmap was rewritten from here — before playtest acceptance, make the combos interesting first.

Real coordinates

Comments

← Digital Garden