A tactical deckbuilder where nothing fully dies. Defend an enchanted forest from a Robot Corporation by deploying mushroom minions, casting spells, and mastering an economy where even your discards become fuel.
Goal and Approach
My goal was to design a deckbuilder that felt genuinely different from Hearthstone or Slay the Spire by building outward from the theme — the lifecycle of a fungal ecosystem became the mechanical blueprint for every system in the game.
I also came to this as someone who doesn’t primarily play deckbuilders. That turned out to be a design asset — it forced me to study the genre from the outside and ask first-principles questions about what makes optimization-motivated players feel smart rather than just powerful, rather than trusting my own instincts as a player.
Three design principles guided every iteration:
Nothing fully dies. In nature, death is transformation. In this game, a defeated minion leaves a Rot token — a lingering 0/1 entity that blocks damage and gives the next minion a stat bonus when absorbed. Even discarded cards become Nutrients. Every piece of the deck has value in multiple states.
Calculated resource anxiety. Nutrients (mana) are deliberately scarce. Drawing costs 1 Nutrient; playing costs the card’s cost; repositioning a minion costs 1. The Mulch safety valve means no turn is ever completely stuck — but every Nutrient spent is felt. The constant triage of set up vs. pressure is the game’s emotional core.
Spatial read-ahead rewards planning. The 3×3 board makes positioning a live strategic variable. Where a minion dies determines where the Rot token lands, which determines who benefits from the next Bloom. Recognizing a line of play two moves out — not just responding to the board as it is — is the skill the game teaches and rewards.
Overview and Technique Highlights
You are a magical mushroom defending an enchanted forest from a Robot Corporation trying to corrupt and destroy it. You deploy minion mushrooms, cast spells, and position Shield creatures across a 3×3 battle grid. Enemies spawn in waves with visible intent — Attack (red) or Ability (yellow) — giving you information to plan your response. When a minion falls, it leaves a Rot token behind. Play your next minion onto that Rot and it blooms — absorbing the fallen creature’s stats and growing stronger. The deeper the run, the more dangerous the Robot Corporation’s forces, and the more your ecosystem needs to click as a machine.
Goal: Eliminate dead hands. Give every card meaningful agency regardless of the game state it appears in.
Result: Players unanimously named Mulch as the game’s core identity across all 10 playtests. “No card is dead,” one playtester said. The mulch safety valve means even a hand full of unplayable cards is still 4–6 free Nutrients — which means the player is always making a real decision, never waiting to draw into something.
Techniques:
Every card has two functional values: its play cost (what you spend to use it) and its Mulch value (what you gain if you discard it for Nutrients immediately). A card with Mulch 2 is either a deployed minion or 2 free Nutrients — player’s choice, any time during their Action Phase.
Mulched cards go to a separate Mulch Pile, not the Discard Pile. Unlike discarded cards, Mulched cards do not return to the draw pile when it reshuffles — making Mulching a deliberate sacrifice that permanently thins your deck, trading short-term Nutrient gain for long-term consistency.
Shields in play generate 1 extra Nutrient per turn at Turn Start (1 base + 1 per Shield). Defending your Shields isn’t just survival — it’s sustaining your Nutrient engine. Losing a Shield is both a damage event and an economic hit.
The starter deck includes CS-26 (Mulch a card: draw a card, 0 cost) as a bridge between the two — a zero-cost Nutrient loop that teaches the economy immediately.
Technique Highlight 2: Rot & Bloom — The Living Board
Goal: Make death feel meaningful without removing the penalty. Give players a reason to lean into losing minions rather than only protecting them.
Result: Identified by playtesters as the game’s Unique Selling Point. “The rot mechanic is the USP — this game should lean more into that.” The system generated emergent strategies from the first playtest: deliberately sacrificing cheap Seedlings (CM-07, 1/1 for 1 Nutrient) to set up high-value Bloom plays in contested lanes.
Techniques:
When a player Minion is defeated, it leaves a Rot token (0 ATK / 1 HP) on its tile. The Rot blocks one incoming attack before disappearing — a free speed bump even in defeat.
Playing a Minion from hand onto a Rot tile triggers Rot Absorption: the Minion gains the Rot’s current stats. If the Minion has a Bloom keyword, its Bloom bonus also fires on top of the absorption. The Bloomer (CM-12, Bloom: +2/+1) deployed onto a 0/1 Rot token enters the board as a 4/5 — a significant tempo swing from a 4-Nutrient card.
Crucially: moving an already-deployed Minion onto a Rot tile still triggers absorption, but does NOT trigger Bloom keyword abilities. This asymmetry (Deploy from hand = Bloom eligible; Move = absorption only) is a core strategic axis. Players who learn to reposition Minions onto Rot for free stat boosts — without spending a card from hand — develop a meaningful edge.
Rot stats can be enhanced before absorption: Rot Shovel (CS-11) moves a Rot token to any open lane and sets the next Bloom for +1/+2; Rot Shield (CD-30) fires “On Death: All Rot Tokens Bloom +2/+2,” turning every active Rot token into a +2/+3 injection for whoever steps onto it next. The Death Cap (CM-09, “On Death: Rot 0/+2”) leaves a fortified 0/3 Rot token — giving the next minion a significant HP bonus.
Real-world thematic anchor: the Scarlet Elf Cup (Sarcoscypha coccinea) — the inspiration for Rot Bloom (CS-06) — blooms spectacularly from dead winter wood. The mechanic and the mushroom biology match.
Technique Highlight 3: Lane-Based Tactical Combat
Goal: Add a spatial dimension to deckbuilding decisions so that card positioning — not just card selection — determines outcome.
Result: Players consistently named the grid and lane system as a key strength after onboarding. Initial confusion came from MTG/Hearthstone preconceptions (“does an empty lane mean direct damage?”), not the system itself. “Grid and lane abilities force you to play on all dimensions.” The spatial layer created the most memorable strategic moments across all playtests.
Techniques:
The board is a 3×3 grid with fixed row semantics: Enemy Row (top), Minion Row (middle), Shield Row (bottom). Each column is a Lane (0=left, 1=mid, 2=right). Enemies target their own lane first — meaning an unoccupied lane is a live threat to the Shield behind it.
Enemy Targeting Priority: own-lane Minion → own-lane Shield → scan remaining lanes left-to-right (Minion before Shield per lane). Position your strongest Minion against the most dangerous enemy, and the targeting chain protects your Shields by default — but only if you read the board correctly.
The Threatened visual state (red tint with glow on a tile) communicates delayed enemy strikes: Lock-On marks a random tile for a 5-DMG Snipe next turn; Anchor marks an entire lane for a Bombardment hit to both Minion Row and Shield Row simultaneously. Threatened tiles give players one full turn to react — move a Minion out, or let it take the hit if the math is favorable.
Shields serve dual roles. They are your health analog (loss condition triggers when all Shields are destroyed and no Minions remain) and your Nutrient engine. Shields with lane-conditional passives or death triggers create setup decisions — Spore Shield (CD-32, “On Death: All Lanes Spore 2”) can be a deliberate sacrifice to power a Spore-archetype board state, not just a loss of HP.
Enemy designs in Battle 4 and 5 make positioning itself a liability: Warden gains +1 ATK every time the player initiates a Move (board → board); Lock-On marks tiles for lethal Snipe strikes; Coolant heals Lock-On 2 HP whenever the player moves. Players who move freely in Battle 1 must rethink every reposition once Warden is on the board.
Process Breakdown
Research, Ideation & Planning
Analyzing Games
I studied games that successfully combined resource scarcity with spatial decision-making:
Wildfrost and Monster Train — deckbuilders with lane-based combat and the design constraint that every card needs a job
Arcanium — roguelike deckbuilder where thematic coherence reinforced every mechanical choice
Slay the Spire — baseline for turn economy tension; studied how it makes every action consequential without randomizing outcomes; enemy intent system
Duel Masters — the project’s primary structural reference, and where it really started. I came in interested in lifedecking — using cards from your deck as a health analog rather than a separate HP counter. Most games that try this break down quickly; the math between deck depletion and board pressure is hard to balance. Duel Masters solved it elegantly: Shields are cards placed face-down at game start, and when an enemy attacks you, a Shield breaks and the card enters your hand — meaning damage becomes a resource, and losing ground also advances your game state. That on-death-triggers-a-benefit structure translated directly into Fungi Defenders’ Shield design. And the idea that death produces something became the thematic seed for the entire fungal lifecycle framing — Rot tokens, Mulch, Bloom, all of it traces back to that one mechanic.
Reference pull — deckbuilders, lane-based card games, and Shield-system designs that informed Fungi Defenders' card architecture
Ideating Mechanics
I started with one constraint: every card must have a use in every game state. That constraint produced the Mulch economy. From there I asked: what makes death interesting rather than just punishing? That question produced Rot & Bloom.
Spore counters emerged as a third strategic axis — slower and more deliberate, rewarding setup-heavy play styles and creating a third archetype alongside Rot (aggro/positioning) and Mulch (engine building).
Resonant Theming
The Robot Corporation vs. Enchanted Forest framing made mechanical choices feel inevitable rather than arbitrary:
Mulching = a struggling ecosystem composting its dead for new growth
Rot tokens = the fungal principle that decomposition creates substrate for the next life cycle
Nutrients = real mycelial network resource exchange (fungi genuinely trade nutrients with forest root systems through mycorrhizal networks)
Each card in the 32-card library maps to a real mushroom. The Cannonball Fungus (Sphaerobolus stellatus) — Spore Bomb (CS-20) — literally fires its spore mass as a ballistic projectile. The Hoof Fungus (Fomes fomentarius) — Rot Shield (CD-30) — was historically processed into amadou material used as actual fire-starting tinder and wound dressing, one of humanity’s oldest tools. The biological anchors give art direction a concrete reference for every card.
Design Document
Card library taking shape — art iterations across Minions, Spells, and Shields as the visual system evolved alongside the rules
The V2 playtest rules document covers:
Full turn structure: Turn Start → Player Action → Player Attack → Enemy Attack → End of Turn
Starter deck composition (9 cards across Minions and Spells)
Glossary of 30+ canonical game terms with exact definitions
32-card main deck library across Minions, Spells, and Shields
3 battle encounters with multi-wave enemy systems
Map nodes: Card Draft, Risk/Reward events (The Mycelium Gamble, The Corrupted Cache), Shop
Core Systems:
Nutrients as a unified action currency — Mulch, Draw, Play, and Move all cost Nutrients
Three synergy archetypes: Rot, Spore, Mulch — each with dedicated generators and payoff cards
Two card pile categories: Discard Pile (reshuffles into Draw Pile on exhaustion) and Mulch Pile (permanent exile unless a card ability says otherwise)
Theme: You are always spending from the ecosystem to defend the ecosystem. No action is free — but no action is without value.
Prototyping
Prototype 1 — Miro Paper Prototype
First playtest in Miro — 3×3 grid with ENEMIES, PLAYER MINIONS, and SHIELDS rows live, cards placed, Nutrient counters tracked. The core structure is already visible.
Result: Core loop validated. Mulch identified as the game’s emotional heart.
Goal: Establish whether the Nutrient economy created the “calculated resource anxiety” feel I was designing toward — specifically, whether players would face meaningful decisions on every turn, even when they had fewer resources than they wanted.
Solution:
Discovered the starting Nutrient formula (1 base + 1 per Shield) through iteration. Starting with 3 felt too safe; the Shield-tied income made economic and thematic sense simultaneously.
Removed the free card draw at turn start. This was the most impactful single design decision of this prototype stage — without it, players engaged with Mulch economy as a necessity rather than an afterthought. Most playtesters pushed back immediately; by end-of-run, they accepted or preferred it. Card draw as a powerful choice is the correct design; it is an onboarding problem, not a flaw.
Established the Mulch Pile vs. Discard Pile split. Mulched cards needed to feel like a sacrifice, not a free rotation. Making them permanently removed (barring special abilities) gave Mulching genuine weight and made cards like Reclaim (CS-22, “Return any card from discard to hand”) clearly distinct from the discard/reshuffle loop.
Prototype 2 — V1 Tabletop Simulator
V1 TTS build — the 3×3 grid with lane and row labels, early card representations in play. Simple art, full mechanics.
Result: Lane-based combat system confirmed as fun and intuitive once understood. Enemy passivity identified as the core design problem to solve.
Goal: Test whether the lane targeting system (enemies attack own lane first, scan left-to-right for others) generated meaningful positioning decisions — or whether filling all three lanes was always the correct answer.
Solution:
The lane system worked exactly as intended for the player side — players immediately began reasoning about which minion belonged in which lane against which enemy. The spatial read was engaging.
Enemy side failed: simple Attack-only intent cycles were too predictable. Players who optimized their lane assignments won without pressure. This insight drove the entire enemy redesign philosophy for V2 and beyond — every battle from Battle 2 onward features at least one passive/reactive enemy that responds to how the player plays, not just what is on board.
Discovered the Bloom-on-Move confusion in live play. Players expected Move to trigger Bloom keywords identically to Deploy from hand. The distinction needed explicit card text and in-game tooltips — not just a line in the rulebook.
One instructive wrong turn: mid-prototype I changed the autobattler so players could target adjacent enemies rather than being locked to their lane. The intention was more mid-fight agency. It immediately broke the game. Once players could freely hit adjacent targets, lane position stopped mattering — and if position doesn’t matter, neither does Move, and the Mulch economy matters less because repositioning stops costing anything meaningful. The strict lane structure creates the decision space. Loosening it collapsed it. Reverted within one session.
Prototype 3 — V2 Tabletop Simulator
Second-pass synergy node map — Card Draw, Spores, Mulch, Rot/Decomposers, Aggro, and Control clusters each connected to individual cards and cross-archetype bridges
Result: A fully playable 3-battle run with 32 cards, wave-based enemies, and map nodes between battles. 10 sessions conducted across 11 participants over roughly one month (4/28 – 5/21).
Goal: Validate the three synergy archetypes (Rot, Spore, Mulch) as distinct and discoverable through natural play; confirm whether the multi-wave escalation system created the pressure spike the design intended.
Solution:
Reduced the card library from 60 cards to a focused set (32 in the final V2 build). Early playtests weren’t getting deep enough into a run to find synergies — too much surface area meant players couldn’t see the mechanics through the noise. The cut forced every remaining card to earn its slot. Armor, poison, and several keyword systems were removed entirely — not because they were bad, but because they obscured the core loop that needed validation first.
Built a synergy node map: a visual graph of every card connected to its archetypes, mechanics, and bridge relationships. Made sure each cluster (Rot, Spore, Mulch) had enough generators, payoffs, and cross-archetype bridges to support a full run — and that no cluster was a dead end.
Established a card balance formula: +1 Nutrient cost for every positive stat above 1 or meaningful positive ability. Gave each card a cost anchor that could be tested quickly against feel rather than pure iteration.
Introduced face-down enemy waves — Wave 2+ enemies spawned face-down when their trigger condition was met, then flipped to reveal on activation. This created genuine dread (“something is coming”) without over-telegraphing.
32-card library gave each archetype enough cards to find in a run. Rot emerged as the crowd favorite. Mulch economy was universally praised as the game’s identity. Spore was consistently recognized as interesting but incomplete — an honest signal about where the content design needed more work.
Map nodes tested well: the Mycelium Gamble (d6 roll: 1 = minion loses 1 HP permanently, 6 = Charm: +1/+1 + Spore 1 on Play) and Corrupted Cache (d6 roll: 1 = Corrode debuff on random card, 6 = Living Circuit keyword: “On Death: Draw 1”) created the push-your-luck risk/reward moment the run needed between battles.
Enemy passives in Battle 3 successfully weaponized the player’s own Rot strategy: the Harvest Drone gains a Multistrike stack every time any Rot token is spawned board-wide. Players who freely sacrificed Seedlings in Battle 1 found that same habit gifting the Harvest Drone an extra attack per turn.
Prototype 4 — Alpha Build (Godot 4.6)
Status: Active. This playtest is still running — more participants are completing sessions. Findings below reflect responses collected to date across 5 players and all 5 battle encounters.
Goal: Validate that each of the 5 combat encounters communicated its design intent — that players developed a read on what a fight was about and felt the intended pressure dynamic — in a real digital environment with UI, tooltips, and live card interaction.
Early Findings:
Combat identity is landing. The majority of players developed a sense of what each battle was “punishing or rewarding” by the middle rounds — a core goal for every encounter. Battle 2 was named the most enjoyed fight across respondents: “After the tutorial level I was pushed out of my comfort zone to start finding solutions — it has shown potential technical depth the game could have.” (Kaan)
The escalation curve is felt. Players consistently noted a difficulty shift between battles, and the multi-wave structure of Battle 3 created the most memorable tactical moments. The two-front pressure of the Harvest Engine — requiring players to manage both lane positioning and DPS priority simultaneously — registered as the intended design challenge.
Stun reads as a meaningful resource. Multiple players named the stun card as a session highlight — satisfying to use and well-costed. “Stunning an enemy feels good and doesn’t seem quite as costly to do as stunning tends to be in some games.” (Dan) This is the intended feel: stun as a powerful tool, not a dominant one.
Players want to come back. Every respondent said they’d continue playing with more content. The core loop is holding.
Next: Collecting remaining sessions and tracking whether early findings hold across a broader range of playstyles.
The First Interactable — V2 Full Playtest Loop
A V2 TTS session in progress
Result: 10 sessions across 11 participants. 100% of players named Mulch as their top mechanic to keep. Rot system identified as the Unique Selling Point. Core loop validated as worth building.
Goal: Run a complete loop — Battle 1 → Map Node → Battle 2 → Map Node → Battle 3 — across a range of players to identify which systems landed, which failed, and what the game needed most urgently.
Mulch Economy Synergy:
The Card Draft node (pick 1 of: Bloomer CM-12, Rot Stun CS-10, or Beefsteak CM-24) put the synergy archetypes in direct competition for the first time. Players who drafted toward Rot (Bloomer) consistently reported the most memorable late-game moments. “I draft every card I ever see because it mulches for 2,” one playtester said — identifying the secondary function (pitch value) as the deciding factor even in a draft context. This was a strong signal that the Mulch economy was working as intended at a deep level.
Enemy Pressure Escalation:
The three-wave structure of Battle 3 — Intake Drones (gain +1/+1 whenever any player minion dies) → Harvest Drones (gain Multistrike stacks per Rot spawned) → Harvest Engine boss (siphons accumulated ATK from its Claw allies) — successfully built a crescendo. The design principle that emerged: each wave should make the previous wave’s side effects a liability. Your Rot tokens from Wave 1 become Harvest Drone fuel in Wave 2; your Claw kills in Wave 2 leave the Harvest Engine weaker in Wave 3 only if you’ve fully cleared them.
Playtest & Key Iterations
Playtest Highlight 1: Bloom Keyword Confusion
Result: Multiple players across independent sessions moved deployed Minions onto Rot tokens expecting Bloom keyword abilities to fire, then were surprised when they didn’t.
Feedback and Problem:
“Bloom on move vs on play tripped multiple players — needs clear visual/textual flagging.” — Kaan’s group
The confusion stemmed from a legitimate ambiguity: Rot absorption fires on any contact with a Rot tile (deploy from hand, move from board, or even enemy-forced displacement). But Bloom keyword abilities — card text that reads “Bloom: [effect]” — only fire on Deploy from hand. The word “Bloom” implied a broader trigger than intended.
Solution:
Rewrote all Bloom keyword ability text to explicitly label the keyword: “Bloom: [effect]” appears only on cards where hand-play is required. Rot absorption (without the keyword) is now clearly described as a separate, automatic mechanic.
Added the canonical distinction to the glossary: “Rot absorption — any time a player Minion enters a Tile containing a Rot token (Deploy, Move, or enemy Displacement) — the Rot is consumed and the Minion gains the Rot’s stats. Bloom keyword abilities fire only on Deploy from hand.”
Reframed Move-onto-Rot as a deliberate strategic advantage in rulebook language: “proactively positioning a Minion onto a Rot tile via Move is a valid strategy that grants the stat bonus without requiring a hand play.” The asymmetry is now communicated as a feature to discover, not an inconsistency to apologize for.
Enemy ability ideation — exploring reactive passives, lane-targeting behaviors, and multi-strike patterns before implementing in V2 battle encounters
Result: Players who memorized the enemy intent cycles solved battles mechanically rather than strategically, reducing late-game tension.
Feedback and Problem:
“It’s very hard for the enemy to attack and damage you.” — Kaan
“Extra moves the enemy can do to surprise the player and break the strategy.” — Ani
“Enemies with rhythms: double strike, buff up, big attack.” — Jeremiah
Enemies with pure Attack intent cycles gave players a single correct answer: put your highest-ATK Minion in the scariest enemy’s lane. The board felt deterministic rather than dynamic. The spatial system rewarded clever positioning, but when enemies didn’t respond to that positioning, the read-ahead felt low-stakes.
Solution:
Designed Battles 4 and 5 entirely around reactive enemy passives — enemies that respond to how the player plays, not just what is currently on the board:
Warden (Battle 4): gains +1 ATK whenever the player initiates a Move action
Conductor (Battle 4): his ally Surge gains +1 ATK every time Conductor takes damage from a player Minion
Hoarder (Battle 5): gains ATK and heals 2 HP at End of Turn if the player holds 4+ cards in hand
Scribe (Battle 5): ATK resets each turn and rebuilds from cards played that turn — punishes hand dumping
Each battle was given a design thesis codified before building: Battle 4 = “Punishes both moving and not moving simultaneously. No safe default.” Battle 5 = “Punishes drawing too many cards AND hoarding a large hand simultaneously.” Having the thesis stated as a paradox forced enemy designs that created genuine dilemmas, not just different optimal lines.
Playtest Highlight 3: Spore as an Orphaned System
Result: Players drew Spore cards, accumulated counters on tiles, and then abandoned the system mid-run when they couldn’t find a compelling use for the accumulated resources.
Feedback and Problem:
“Didn’t see much value in the current way he was playing — not consuming it.” — Rowan
“Wanted payoffs — ‘oh great, extra math I have to do, I won’t bother thinking about it.’” — Justin
“Spore Shield” — Lucas (named as his single card to keep — but as the only card that felt like a complete payoff, it was load-bearing alone)
Spore had generators (Spore Cloud: Spore 2 for 1 Nutrient; Sporulate: Stun 1 + Spore 1) and payoff cards (Spore Bomb: consume all Spore in lane, deal that DMG; the heal spell). But there was no “ah-ha” threshold moment — no card that made players feel their accumulated Spore counters were building toward something exciting enough to protect. Without a compelling sink, rational players deprioritized the system.
Solution:
Identified the minimum viable Spore engine as 2–3 payoff cards with clear “cash in your spores” moments and at least one card that generates Spore through Bloom (connecting the two archetypes).
The existing infrastructure fully supports the system — BattleEvents fires spore_added(tile, amount), tiles have a dedicated SporeComponent, and the targeting system handles Spore consumption already. This is a card design problem, not a systems problem, which is the better place to have it.
Prioritized as a content design addition before the next playable prototype: add one Spore × Rot crossover card (e.g., a spell that converts Rot tokens to Spore stacks), one threshold ability (“if this tile has 5+ Spore, deal AoE damage to all enemies”), and one enemy that interacts with Spore as a liability (consuming player Spore on ability step).
Current State — Architecture & Godot Build
Architecture Inventory:
13 Architecture Decision Records (ADRs 0001–0013) documenting every major technical and design decision
5 fully designed battles with multi-wave enemy systems (3 base battles + 2 alternative designs for Battle 4 and 5)
32 main deck cards (Minions and Spells) + 3 Shield cards + 25+ named enemies across 5 battles