Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build a card game: card data, deck/hand/discard zones, draw/shuffle/reshuffle, a turn structure, costs, and effect resolution. Use for a deckbuilder, TCG/CCG, or roguelike deckbuilder.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-01 | ✓→✓ | = Same ✓ | 17% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 60% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 97% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 39% | 0% |
A playbook for card games — card data, the deck/hand/discard zones, the turn structure, and how card effects resolve. This is a compositional skill: it models cards as data and wires them to UI. It does not re-teach data assets or UI nodes; it defines the zone model, the draw machinery, and the effect-resolution rules that keep a card game correct and bug-free.
(deck → hand → play → discard): deckbuilder, TCG/CCG, solitaire, roguelike deckbuilder.
When not to use: board/tile state with matching rules → puzzle. RPG with an incidental card battler → start from rpg. For defining cards as assets, use godot-resources / unity-scriptableobjects; for the hand/drag UI, use godot-ui-control.
Draw to your hand → spend resources to play cards → effects resolve and change the board → end the turn (cleanup/discard) → opponent/next phase → repeat until a win condition. Depth comes from the combinations a hand allows; the engine's job is to resolve them unambiguously.
| Knob | Effect | Notes | |------|--------|-------| | Starting hand / draw-per-turn | tempo, consistency | More draw = less variance. | | Hand size limit | hoarding vs. use | Discard down at end of turn. | | Deck size (min) | consistency | Smaller = more reliable combos. | | Resource curve | what's playable when | "Mana curve" paces power. | | Card rarity / power budget | balance | Stronger cards cost more / are rarer. | | Determinism vs. randomness | skill vs. swing | Shuffle + random effects add variance. | | Reshuffle rules | deck-out, fatigue | Reshuffle discard, or punish empty deck. | | Removal / answers | counterplay | Every threat needs an answer in the pool. |
python# Pseudocode. A card is in exactly one zone at a time; moving = remove here, add there. def draw(n): for _ in range(n): if not deck: if not discard: # truly empty: deck-out (lose, or take fatigue) on_deck_out(); return deck.extend(discard) # reshuffle discard into deck discard.clear() shuffle(deck, rng) # use a seeded RNG (see save-systems for replays) hand.append(deck.pop())
python# Pseudocode. Effects are a data list interpreted by the engine — not bespoke code per card. card = { "id": "fireball", "cost": 3, "type": "spell", "effects": [ {"op": "damage", "amount": 6, "target": "chosen_enemy"} ], } def play(card, caster): if resources[caster] < card.cost: return False # can't afford resources[caster] -= card.cost move(card, from_zone=hand, to_zone=play_or_discard(card)) for fx in card.effects: resolve_effect(fx, caster) # one interpreter handles every card return True
python# Pseudocode. Fixed phases keep timing windows (triggers, priority) unambiguous. PHASES = ["untap", "draw", "main", "combat", "end"] def take_turn(player): for phase in PHASES: enter_phase(player, phase) # fire "on_phase" triggers here if phase == "draw": draw(1) if phase == "main": await player_plays_cards() if phase == "combat": resolve_combat() if phase == "end": discard_to_hand_limit(player); clear_temporary_effects()
move = remove-then-add, and assert no card appears twice.
or define deck-out/fatigue explicitly (Pattern 1).
by a small set of operations (Pattern 2).
defined order (a queue or stack); document LIFO vs. FIFO (refs).
ensure removal exists for every threat archetype.
atomic: validate cost + targets first, then commit.
godot-resources / unity-scriptableobjects — define each card as a data asset.game-ui-ux for layout, scaling, and focus navigation; godot-ui-control for hand layout, drag/drop, zone counts, and targeting prompts.save-systems for collection, run state (roguelike deckbuilder), and seeded replays.game-ai for an AI that evaluates playable cards and picks targets.audio-design for cues.godot-gdscript / unity-csharp-scripting for the effect interpreter.archetypes, and shuffle fairness, read references/effect-resolution.md.
Other measured skills in the registry, with their headline benchmark lift.