Fun Guy Call to Action Card Sling Scrollweaver


I joined Horizon Blockchain Games on a two-year contract, as Lead Game Designer of SkyWeaver. They were largely blockchain engineers outside the game industry, and they’d been trying to hire Wizards employees to make a blockchain card game. Eventually a friend put us in touch. I was thrilled to make a card game of my own, and they were happy to follow me.

My first task was to design the alpha prototype. Their Lead Designer had a strong UX voice, and cultivated a fantastic style guide and initial batch of art. I thought the core Hearthstone combat system of direct-attack was great, but Hearthstone and its descendants left a lot of good design on the table. Leadership was thrilled to have a confident starting point, without reinventing the wheel. Blockchain critics are harsh, but I knew we could deliver a novel game, not a clone.

I was confident we could get card game fans to jump in and enjoy the game with little instruction. I hoped we could get players that wanted to play card games but couldn’t afford them, or that had wanted to try card games but felt unwelcome. Two years later, we had a fully-fledged game, with regular content updates, active players, and a 500-card launch set. (No economy, but more on that later.) What follows are the choices I made along the way in my attempt to prove to the game industry that card games are mainstream, and that I could outperform them with a small team.

Crypto Archivist Cross Reference Molten Heart


SkyWeaver is Singleton, sometimes called highlander, meaning a deck can’t contain more than one copy of any card. This makes collecting more accessible, because the first copy is a playset - additional copies are just economic. Many Magic and Hearthstone players have valuable legacy collections, and I thought most blockchain companies were choosing a difficult path by trying to compete with those by offering another valuable legacy collection. I wanted accessibility.

I came to believe that Singleton deckbuilding was even easier. When a player wants to put a card in their deck, they don’t have to decide how many, it’s just a yes/no. I like the binary choice, do I want this in my deck or not? I found this empowered players to tweak existing decks to their own taste and meta.

Singleton also plays really well. It’s reasonable for a player to track which cards are left, and answering a threat comes with the satisfaction that they can’t just draw another copy. Other designers would tell me that Singleton was too inconsistent, but I think that variance is what makes card games great, and more variety in the systems creates design space for cards that add consistency. I liked how a Singleton base makes any copy effect more exciting. Singleton puts the onus on players to build consistent decks, not just repetitive ones. It also avoids having to solve legendary issues systemically.

Cobalt Supersonic Earth Golem Smite

Deck Overdraw

If you draw from an empty deck, you lose 1 life and get a random card from your prisms. It works with targeted draws - draw a water card will draw from your prisms, if there are none in your deck. This draw respects Singleton - you can’t generate multiple copies, and this pool eventually runs out. (You can also conjure a card, which draws outside the deck without losing life.)

This was my solution to random card generation. It’s fun to bring in cards from outside the game, and the design space is deep. But true-random card generation is difficult to play with and against, and clunky to word consistently over many effects. With Singleton restricting the random generation, it becomes possible to track what’s left, and there’s more strategy on both sides. Allowing the draw mechanic to carry the weight of random card generation helped me keep SkyWeaver’s effects simple.

Overdraw rules are traditionally harsh. When you draw from an empty Magic deck, you lose the game. In Hearthstone you take scaling fatigue damage. The value of drawing dramatically plummets in those late games. Targeted draws are annoying Hearthstone because you have to track your deck closely, otherwise you get no value, which adds a lot of tension to deckbuilding.

In SkyWeaver, I like that the value of drawing a card is consistent into the late game. I like that a player wins the game using cards, instead of grinding somebody into a corner using the game engine. I like that as constructed decks run out, they have to battle to the death limited style. Long games retain drama, with fewer inevitable slogs and checkmates.

Elderwood Wish Deck Casket Crystal Cache


For their starting hand, players choose four of seven random cards from their deck. Compared to Hearthstone’s mulligan (see 3-4 replace any) this softens the RNG of the opening hand, since players aren’t stuck with random cards, they always have a choice. I liked how players can craft a plan from the start, with fewer rote decisions and non-games.

The max hand size is nine, and when a player overdraws their hand the oldest card (leftmost) is shuffled into their deck. This preserves the card disadvantage of overdraw (and the card advantage of forcing an overdraw) without randomly deciding games by destroying a key card (as in Hearthstone).

Players get extra time on their clock whenever they take an action, up to a cap. This rewards players for spacing out their actions, instead of rushing them out at the end of the turn. More complicated turns generally get more time. Players are less frustrated with animation times, and the game is easier to follow as a viewer.

A player can look at the cards in their grave and deck. It’s a good way to spend the enemy’s turn, and it’s critical information - a lot of mechanics use those zones as a resource. I didn’t want to have to download third-party software to play correctly, especially on mobile. And there’s no deck order to track, draws are just random. Graveyard mechanics are popular, and a visible graveyard opened up counterplay. It’s also a sort of game history. I made cards that consume the graveyard as a resource, to tidy things up. I liked that the grave is physically visible, as a piece on the board, like the deck.

A card’s stats are maxed out at 99. No need to track individual max health (like Hearthstone does for minion Healing) and the UI won’t break on big numbers. Instead of healing, effects just give +N Health. I liked that the healing effects weren’t balanced against a low ceiling (like Hearthstone’s 30).

Niko Hydrate Wall of Dead Invest


I put the Hero in play, on the battlefield, next to the units. The Hero replaces a unit slot, so there’s just 6 unit slots compared to Hearthstone’s 7, which lowered the power and complexity ceiling a bit. I don’t like how the Hero in Hearthstone fights for space with the hand, or how players have to (carefully) reach past enemy minions to target their Hero. With the Hero in the mix, it’s easy and intuitive and compact.

We quickly realized we should just give the Hero 1-Attack by default (only on your turn). I like that you have this satisfying action to take each turn, like a land drop or hero power. The Heroes are the focus of the game, and the most active characters. I like that players spend health even when they’re winning, so games feel closer, and there’s more comeback potential. And we could make more interesting 1-cost units and token generators, because players had an innate way to deal damage without spending a card. And that damage is always a threat, always moving the game forward.

Heroes start with 32-Health, which is an unusual number. I like feeling like you start with a little extra health, since the first action of the game is often attacking for 1 damage. Then you’re at 31, instead of 29 - that’s not so bad. And the roundness of 32 (2^5) fits SkyWeaver’s digital charm.

Montage Edgelord Study Libra


SkyWeaver’s has 99 Max Mana! Games rarely get to 30, but expanding past Hearthstone’s 10-cap meant turns got bigger and more exciting as the game went on. This opened design space for mana unlocking and big-spend turns. OTK decks become inevitable as players get access to more mana, so we had to balance those carefully. I like that different kinds of OTK’s become relevant as the game goes on, and we can balance the best ones into later in the game.

The first player starts with 1 mana and a 2-mana Flask, and the second player starts with 2 mana and a 1-mana Potion; both players have access to 3 mana their first turn. And it’s attached to their Hero, in play, which keeps them visible to both players, and there’s an incentive to use it because it’s intractable. It’s cool that both players have access to a free water card, I leaned into that - it gives water a unique feel. I love the way Hearthstone’s Coin smooths out the early game (speaking as somebody that has missed many land drops) and I wanted both players to have access to it. This gives players more options to respond to early threats, and I liked the design space of cheap units.

I like that each starting position has strengths: first player has first action and attack advantage, and second player has mana advantage.

Mana Potion Mana Flask Capsize Seek

Spell Attachments

Each character can hold an attached spell, which can be played, like an activated ability. I’d seen digital games struggle with activated abilities, and I thought making them actual spells was a cool fix. One cast is enough to be interesting, and it’s easier to balance - they don’t need to be repeatable.

Some units come with a base attached spell, and cards can attach spells and enchantments. That’s seven spell slots each, on top of the six units and a Hero. I love how attached spells are vulnerable, a regular risk-reward and threat priority puzzle. I like the revealed information, you know part of their “hand”. Attached spells give players choice in how to spend mana, and exciting big-mana turns. As a tester said, “The lines!”

One attachment is enough - a new one just overwrites the old one. I like that any card that adds an attachment is also an answer to one. Attachments are noncreature permanents, without the need for narrow solutions. There’s a design joke in Magic that everything is kicker, and attached spells are a great kicker. Huge design space with simple tools. Any spell we print can double as an attachment, which is a natural workaround to Singleton.

On the Hunt Ponderous Honk Seaweaver

Debuff Enchants

There’s deep design space in non-spell attachments, but for the launch set I restricted us to just one negative enchantment per element, so each element has access to a consistent debuff that’s easy to remember.

Six of the negative enchants have a mana cost, which can be paid to remove them. The six costs are the numbers 1-6, which also helps players distinguish and remember them. The cheap ones tempt you to pay the cost, and the expensive ones reward you for having answers. I’m glad I was able to design resonant abilities that fit the cost curve. I see more interaction in Roots than Hearthstone’s Freeze.

Two of these enchants don’t have a cost: Chains, and Silence. Hearthstone’s Silence does both keyword and text removal, but I like splitting them. They’re useful in different situations, and it’s nice to have weak attachments in the design space because they still counter other attachments. I can add Chains or Silence to a card’s effect to give it more utility, without increasing its power level much.

Chains Silence Dazed Flames

Roots Frozen Blind Hex

Buff Enchants

I also stuck to a cycle of eight positive enchants.

Like Silence, I split Hearthstone’s Divine Shield in two, to Barrier and Shield, so they have a weak spot. Untargetability is also powerful, so I like that Shroud has a built-in answer of waiting a turn.

Fate and Quest offer card advantage. Fate allows players to predict draws, and attaching fate is a way to find specific cards. Quest is a reward for attacking the Hero.

Most positive enchants have no cost because you don’t want to remove them, but Vapors and Anima are the exception. They trigger when removed, either by paying mana, or when overwritten. These teach players about overwriting, and reward them for using it. Vapors rewards you with value, and Anima rewards you with stats.

Lead is odd, it blocks the attachment slot, which can be a positive and a negative. It also blocks dusting, which is SkyWeaver’s Exile. I like that this gives players a way to protect valuable death triggers, and rewards decks for having diverse removal.

Barrier Shield Lead Shroud

Fate Quest Vapors Anima


There are six keywords in SkyWeaver, and each is central to gameplay. Some enchants fill a role similar to keywords, but a keyword is more difficult to remove. Three of the keywords can also be used on spells, which is great for reusability and balance and designing a play pattern around a keyword.

I like keywords that are weaker than usual, so we could use them more often. As a designer it’s common to have a card with just the stats and cost you want, but it’s a little weak. Adding a keyword like First Strike would raise the cost, but a combination of weaker SkyWeaver keywords can get the balance just right.

I used Banner on SkyWeaver’s first tight cycle:, the Runes, so they have consistent impact. They teach players the attachments, and make them cheaply available.

Fire Rune Water Rune Air Rune Earth Rune Light Rune Dark Rune Metal Rune Mind Rune

Guard & Stealth

The most fundamental keyword is Guard. Guard units block for your Hero, like Hearthstone’s Taunt. But Guard only protects your Hero, not your other units. Taunt sometimes gives a player no good attack options, or only one. By focusing the role of Guard on protecting the Hero, it gives the enemy more options in combat, and allows us to design strong units.

A Stealth unit can’t be attacked until your Hero is damaged, each turn. They hide behind the Hero, which hides behind Guard - so I can still design units that hide, too. It’s important for some units to be safe from the Hero’s base attack, and Stealth often hides in the tempo of combat. At first, Stealth only broke on combat damage, but we changed it after a tester tried to break Stealth with a spell. That just seemed more fun, and it makes Hero-damage effects more interactive and strategic.

Players don’t choose where to play a unit. Instead, they’re sorted by keyword. Guard units are in the front, on the right. Your Hero is to their left. Stealth units are to the Hero’s left. And other units are on the far left. I like how the board is easy to read. You get a vague sense of the game state just by the silouette of the board. If a Hero is on the far right, it’s vulnerable to attack! I removed the tension of the where-to-play choice, so players an focus on what to play.

Armored Guard Kook Book Book Casey Taunt


Armor reduces all damage dealt to a unit by one. Like Stealth, it’s a way to design units that are protected from the base hero attack. I like that Armor creates a clear high-priority target, and a clear target for buffs. Armor is good against pings and small AoE, so it rewards players for having diverse removal. I even like giving Armor to Heroes as a late-game reward, to help control decks turn the corner.

If a character has Armor, there’s a loud electric animation around its Health. It’s important that Armor is communicated clearly, because it’s very frustrating if you don’t see it. There’s also a really good damage and death preview for all actions, which is critical for noticing armor. The preview teaches what cards do, and helps players act with confidence in the rules.

Buckler Up Pistol Shrimp Captain Chen Dracomantium

Banner gives your Hero +1 Attack while in play. It plays a similar role to Hearthstone’s weapons, but can be answered naturally by removing units. One more damage from Banner is often an answer to Armor.

Spells can have Banner, too. A spell with Banner gives the hero +1 Attack that turn. As a designer, banner helps an otherwise narrow spell - like the Runes - have consistent board impact. It’s good to have keywords that can be used to nudge a spell up, too.

Songbird Bird Knight Gift of Qai Drum Up


When a card with Lifesteal deals damage to the enemy Hero, your Hero gains that much Health. Unlike lifelink and Magic’s lifesteal, SkyWeaver’s Lifesteal only works on Heroes, not on units. It has to steal Hero health for Hero health, which keeps the total health even. I like that it feels efficient to use Lifesteal damage to reveal Stealth.

Zap Saber Vanessa It's a Trap


When a card with Wither damages a unit, the unit loses that much Attack. Poisonous and deathtouch deal infinite damage, but I like the design space of a weaker keyword. Lifesteal is like double-damage to Heroes, and Wither is like double-damage to units.

Unlike Hearthstone, 0-Attack units can attack. I wanted players to be able to clear up their own board by sending a unit to its death, since Wither will be creating 0-Attack units. I also wanted it to be worth killing 0-Attack enemies, so I made a lot of buff effects.

Zomboid Scorch Foul Stench Doom Shroom


I like to keyword fundamental triggers, like Play, Summon, and Death - when this unit is played, when this unit enters play, and when this unit dies.

Play effects can target, but Summon effects can trigger at any time. I found the distinction useful as another nuanced balance tool. I like Summon triggers, because players love cheating units into play and getting value.

Axolotl Homebrew Champ Flank Rider


Glory triggers when a unit deals combat damage to a Hero. It’s good to give decks a reason to play Guard units, and It feels great to reveal an enemy Stealth with a Glory trigger.

Glitter Starfield Gladiator Squiddy


An Inspire effect triggers when you play a card of the right type. Inspire cards are build-arounds, and it’s obvious which cards to try them with. Elements area a great Inspire trigger, but we found all kinds of cool ways to trigger.

Shogun Light Knight Coal Dozer Arcadeum Mask

Sunrise & Sunset

Sunrise and Sunset are at the start of your turn and at the end of your turn. I like that they’re flavorful, for resonant cards and clear text.

SkyWeaver is played on a floating island, with a sky background that cycles through Day and Night - on my turn it looks like Day, and on the enemy turn it looks like Night. It’s difficult in card games to communicate at-a-glance whose turn it is, I love that we could do it with a thematic lighting change. The sun rises at the start of my turn, and sets at the end of my turn.

Sky Keeper Apollo Pandora Broodwitch


Each SkyWeaver card is in a Prism, like a Class or a Color. SkyWeaver launched with five: Strength, Agility, Wisdom, Heart, and Intellect. (You can tell a card’s Prism by the shape to the left of its name.)

Players choose their prisms by picking one of fifteen Heroes: five 1-Prism Heroes, and ten 2-Prism Heroes. The Heroes give each deck a face and a name. Mixing prisms makes for deep deckbuilding - any two cards can be in the same deck. I don’t think a Hero needs a special power to feel unique, because it has a unique card pool.

The benefit for choosing a 1-Prism Hero is deck size. A normal deck is 30-cards, but a 1-prism deck is only 25-cards. This bonus consistency mirrors the consistency of 1-Color decks in Magic.


Strength likes to make a few big tall units. Strength is friendly for new players, the most “Timmy”. It’s the first one that unlocks, and the first one we designed.

Ember Wolf Soul Taunt Getum Gang Band Together


Agility likes to make many small wide units. Agility is fast, with tools to cure summoning sickness. There was no haste or rush keyword, but that would be reasonable. Agility is unlocked second, to keep new players thinking about combat.

Supersonic Bolt Flurry Zoomie


Wisdom likes to play a few big tall spells. Wisdom uses non-combat effects, like drawing and mana gain and attachments.

Potion Seller Rosewater Charm Turtor Touch the Sky


Heart likes to support units, even in the grave. It’s nice to be able to combine a support Prism with another of your choice, and players love grave mechanics. Recurring a dead unit is powerful in a Singleton game.

Avatar of Light Unfallow Dark Adept Ancient's Rise


Intellect likes to play a lot of small wide spells. They have combo tools and ways to copy cards. As the most complex Prism, it’s the last unlocked.

Deactivate Illusion Zam Castus


Each card is one of eight elements. I like that every card has an element, used on both units and spells. My first set design task was to understand how to express each element through the mechanics, so I knew what each element felt like.

We commissioned art independent of the mechanics, so design and art could work in parallel. The elements kept us connected, and empowered the artists to tell cool stories. I would mix-and-match card art constantly, and having extra art was great for playtesting. The art was a constant inspiration, I wanted every card to play the way it looks.


Fire deals damage, even to itself. Fire is aggressive, and can embolden units.

Fox Familiar Chinook Flame Phoenix Fireball


Water can cleanse and heal, or flood and freeze. Mana flows like Water.

Trident True Waterline Bury in Snow Breacher


Air is quick, nimble, and sharp. Air can whisk your cards around like leaves.

Sudden Gust Browl Head in the Clouds Great Gusto


Earth is nature, living and growing, surviving and evolving.

Claw Bear Take Root Trydra Entwail


Light can heal and prevent death, reveal truth and dispense holy justice.

Beloved Tatt Judgment Bard Rock


Dark can kill, and enjoys death. Dark plays with fear and unholy horrors.

Bogi Bogi Drag Down Allbane Grave Roil


Metal is solid, and sharp. Swords and armor and technology and robots.

Fan of Knives Knives Mighty Steed Twisted Metal


Mind is smart and complex, with big ideas and mad dreams.

Brainstorm Mind Control Desire Psychosis

Discovery Mode

In Discovery, you pick a Hero, then get a totally random deck from their Prisms.

Discovery serves as an introduction to the game mechanics and cards. It’s a fair match (not dependent on collection) at the press of a button. Discovery is skill-testing and competitive, and rewards mastery.

Discovery is critical to the health of SkyWeaver. We received regular balance data on every card, and bugs were found quickly. Discovery kept card design honest, because bad cards couldn’t hide. We had to make a set with an inherently playable cost curve and fun effect distribution, which supported the health of Deck Overdraw in constructed.

Canny Mask Reefus Burn to a Crisp Vial Vendor

Constructed Mode

In Constructed, you build your own deck.

There is no format rotation, cards are meant to be evergreen - I think format rotation is the easiest way to lose players. We focused on steady card releases and regular patching. A new Prism is akin to a new set, and has a big impact - the 6th Prism adds 6 new Heroes.

Under-sized decks (less than the max size) are still valid. This is just a quality-of-life feature for new players, so they can queue with incomplete decks while building a collection. The empty slots are filled with random cards, just like Discovery.

Old Fogy Spore Blast Encapsulate Colossoid


You can practice against the AI, or with a friend, and I think these are the best first tutorial modes. A scripted tutorial is expensive, especially to maintain, so I put it off as long as possible, which helps us gather feedback and hone our UI. A nice tutorial is a victory lap, once we know the game is good.

The free Ranked Queue is for rating and clout on the leaderboard. The paid Conquest Queue is the most competitive, and it’s where cards are minted. (See: Economy.) These queues serve both Discovery and Constructed. Even though Discovery is random, it’s still competitive.

The Deck Leaderboard shows the top ranked decks, based on each deck’s personal Elo against the other decks. It also shows each deck’s best player. Critically, there’s a Buy Deck button, which adds the missing cards to your cart. I don’t think leaderboards make metagames stale - I think stale metagames are accurately reflected in leaderboards.

Ensnare Throne Blade Wind Sword Tiamat


We gave out Beta codes on our Discord. I had access to a talkative community of real players that filled our queues, gave feedback, and shared decks. I read all of it, every day. I tried to be active and available, to show them I was playing, too. I was usually top ten on the leaderboards. I wanted them to trust me. I loved seeing a player become a fan. I’d see critics become proponents, netdeckers become deckbuilders, and noobs start answering rules questions. Our systems were working.

We patched weekly for about 25 patches, and then every-other-week for another 25. I think modern card games should be consistently and rapidly patched. I wanted to build trust. Players need hope that their feedback is heard, and things will usually get better soon. Our predictable patches were a celebrated community event.

Alight Psyche Meme Moltenous

Design Process

The core game systems made our jobs easy as card designers. There’s autonomy built into the core gameplay, and natural threats and answers. I looked for mechanics that brought out the best in the engine. I played the game a lot, exploring and climbing the leaderboard. I checked the metrics daily, charts that covered card win rates and usage. I would scroll through the deckbuilder, considering how any card could be better. Good ideas came from other designers on the team, and the community. Writing the patch notes was a consistent opportunity to review my work openly.

Cards were implemented by engineers, which was nice. We designed a good rules engine in Rust, and it was easy enough for an engineer to implement a patch in a day or two. I usually like implementing cards myself, but I had plenty to do, and we moved fast.

Hax Moonbeam Sky Phoenix Frantic Inquiry


Economy design is integral to blockchain games, so I researched the space, and eventually designed the Silver Card Conquest economy. Players pay $1, or any Silver card, to enter the Conquest queue. They are minted a random Silver card for each win, up to three wins or a loss. For every $8 paid in, we pay out $7. I learned it from Magic Online drafts.

Players also earn XP for playing. When they level up, they unlock a free version of a random card. The average player can unlock a full collection in a few months. I want players to graduate from collecting gameplay to other things, like competing or collecting cosmetics or making content or playing whatever we release next.

SkyWeaver has no booster packs, and no explicit card rarity. A card’s demand is driven by its playability, but the price stays at $1 in the long run. Cards will spike and dip temporarily, like after a patch or a wave of new players. New cards are expensive on release, because they’re scarce. The Conquest Queue stabilizes the supply to demand at $1, eventually. I thought this self-correcting market was important, because I saw how difficult it was for Wizards to stabilize their own market. Any deck is around $30, closer to a MOBA champion price.

Our blockchain engineer designed our card marketplace. It’s like a two-way Silver Card vending machine, that adjusts prices to supply, to act as a fair mediator between players. Players can still trade Silver Cards on the open market, but most use our card market, where prices quickly trend to $1. This was launched, and prices held stable as designed.

Chester Treasure Chest World Tree Hope


One day in early alpha, an engineer and I were testing the latest build to check out the new update and look for bugs. Suddenly, the game was fun. We’d hit a critical point, with enough rules and cards to be interesting. We kept matching in the queue, and they messaged me after six or so games, “do we just keep playing?” Yes. We played for hours. Games were interesting and close, but I usually won.

That was the day the game was born, and I could finally play it. I loved SkyWeaver every day after, and played as much as I could, until I left. I’m proud of my work, even if I’ve soured on the blockchain. I set out to shift the narrative in card gameplay, and I stand by my designs. We made a great card game.

Fly Guy Burn Out Dreams Undreamt Twist & Turn