Tag Archives: Magic: the Gathering

Cube Theory: Maintenance, Part I

With the huge growth in popularity of cube drafting over the past several years, much has been written about the format.  I haven’t read any of it, preferring to study through ChannelFireball videos and my own experience.  I have been cube drafting for three years, which began with Evan Erwin’s cube card-for-card.  With probably fifty drafts of that format, thirty drafts/sealed decks of a similar cube, several drafts of a tribal cube, and several drafts of various other man-made limited formats, I have formed many opinions about what makes a cube fun to play.  The objective of this article is to articulate and justify those opinions through the discussion of an iteration of cube maintenance.

I began work on my own cube several months ago with an overambitious, five-thousand count “complexity cube”, the modus operandi of which was to maximize the occurrence of unusual card interactions.  Were I to drop out of school and somehow have access to an entire card shop, I might be able to make this format adequately enjoyable, but in reality it was hopeless.  Aside from that, I quickly learned that being able to play a cube and being able to build one are very different things.  The size of the cube forced me to shift the mana cost bell curve to the left to avoid standard deviant distributions with all high casting cost creatures.  Picking a card as a high-upside gamble on getting another card with a highly synergistic interaction was rarely +EV compared to taking something that was effectively a Hill Giant or a Shock.  Pushing themes was really tough.  Etc.

The Graveyard Cube is born

Deciding I had a long way to go before I could design something as broadly defined as a “complexity cube”, I settled on making a thematic cube that had a lot of creative breathing room, but also had a narrow enough set of motifs to quickly rule out most cards in the Magic universe.  I settled on using the graveyard as a theme.  This was around the time Innistrad had just come out, and given that it was easily the most polished draft format ever design-wise, I didn’t have to do much of a paradigm shift–I could just look at what I appreciate about Innistrad and use that as my first iteration.

Austin Hambrick, my cube-design comrade, prefers to look through every card on Gatherer and order whatever he wants from Pat’s Games in order to perfect his cube.  This is a valid preference, but I like to take a more machine-learning style approach, looking through giant stacks of cards in order to build each iteration.  Not only do I get the nostalgic warm fuzzies from physically holding cards I haven’t played with in years, but it gives the cube a suboptimal roughness that can take it in unexpected directions.  For example, I was not proud of The Graveyard Cube 1.0 because it tried to do too much and wasn’t stressing any of the subthemes enough, but that’s because I was making due with the set of cards I had looked at.  At this point, after doing many drafts and looking through many cards, I have excised certain small themes such as emphases on enchantment and artifact recurrence and stressed others, such as 187s and soulshift.  This happened organically, largely based on the cards I have had immediate access to.  This is not to say they are gone for good.  On the contrary, the cards that get removed as Austin and I build cubes are cached in the “Mothership Cube”, a set of color-sorted 5000 count boxes cards that houses a wealth of chaff-free inspiration.  All of that being said, I can’t deny that some of the motivation for my iterative strategy is simply not wanting to go through the online parsing and purchasing process.  While I am obsessed with managing the construction and analysis of my cube as much as the actual games with it, I’ll leave the more surgical, measured approach to Austin.

State of the Cube

Below is the entire cube, prior to the refurbishment that this article focuses on.  There were (and will always be) some glitches to iron out. Cards with an asterisk ended up being cut.

COLOR: Red
TOTAL:  84

6cc

Goretusk Firebeast
Firemaw Kavu
Flayer of the Hatebound
Rage Thrower
Charmbreaker Devils
Goblin Marshall
Thundermare
Slice and Dice
Chandra Ablaze

5cc
Ogre Savant
Zealous Conscripts
Reckless Wurm
Anarchist
Caldera Hellion
Magmaw
Jagged Lightning
Lightning Surge
Savage Beating
Pardic Arsonist

4cc
Avalanche Riders
Petravark
Chainflinger
Changeling Berserker
Seismic Mage*
Lavaborn Muse
Skyfire Kirin
Swelter
Temporary Insanity
Seize the Day
Violent Eruption
Solar Blast

3cc
Carbonize
Pillage
Brimstone Volley
Threaten
Fiery Temper
Firecat Blitz
Rolling Temblor
Yamabushi's Flame
Volt Charge
Demoralize
Fires of Undeath
Knollspine Invocation
Arc Lightning
Unearthly Blizzard
Fire Imp
Hissing Iguanar
Rockslide Elemental
Mudbutton Torchling
Vithian Stinger
Ghitu Slinger
Arms Dealer
Bogarden Firefiend
Adamaro, First to Suffer
Arc Mage
Thunderthrash Elder
Orcish Bloodpainter
Gathan Raiders
Tuktuk the Explorer

2cc
Recoup
Fiery Fall
Fiery Conclusion
Scorching Lava
Kaervek's Torch
Goblin Bombardment
Fire Whip
Desperate Ravings
Disentegrate
Tin Street Hooligan
Mogg War Marshall

1cc
Geistflame
Lightning Axe
Pillar of Flame
Flame Jab
Firestorm
Lava Dart
Reckless Charge
Reckless Abandon
Magma Spray
Firebolt
Flame Slash
Kris Mage
Orcish Lumberjack
Mogg Fanatic

COLOR: White
Total:      72

7cc
Hour of Reckoning

6cc
Exclusion Ritual
Graven Dominator

5cc
Second Thoughts
Angel of Flight Alabaster
Changeling Hero
Belfry Spirit
Hundred-Talon Kami
Totem-Guide Hartebeest*
Night-Captain of Eos
Stormfront Riders
Gelestial Gatekeeper
Phantom Flock
Glory

4cc
Sigil of the New Dawn
Faith's Fetters
Ray of Distortion
Wrath of God
Cenn's Enlistment
Glimmerpoint Stag
Dust Elemental
Sanctum Gargoyle
Moonlit Strider
Windborn Muse
Sandsower
Celestial Crusader
Mausoleum Guard

3cc
Remember the Fallen
Crib Swap
Prismatic Strands
Embolden
Oblivion Ring
Radiant's Judgment
Fiend Hunter
Kabuto Moth
Flickerwisp
Order of Whiteclay
Monk Idealist
Azorius Herald
Auramancer
Reborn Hero
Stonecloaker
Waxmane Baku
Nomad Decoy
Shrieking Gargoyle
Aven Mindcensor
Soulsworn Jury

2cc
Terash's Verdict
Feeling of Dread
Otherworldly Journey
Journey to Nowhere
Disenchant
Liberate
Last Breath
Revoke Existence
Momentary Blink
Vengeful Dreams
Kami of Ancient Law
Angelic Page
Pteron Ghost
Spectral Rider
Patrol Hound
Ghost Warden
Loyal Cathar
Phantom Nomad

1cc
Cloudshift
Condemn
Cho-Arrim Alchemist
Doomed Traveler
Spurnmage Advocate
Benevolent Bodyguard

COLOR: Artifact
Total:      27

5cc
Clone Shell
Precursor Golem

4cc
Dingus Staff
Skull Catapult
Molten-Tail Masticore
Junktroller
Solemn Simulacrum

3cc
Eye of Yawgmoth
Cloudstone Curio
Pilgrim's Eye
Goblin Replica
Ticking Gnomes
Vulshok Replica
Moriok Replica

2cc
Culling Dais
Prophetic Prism
Prismatic Lens
Mask of Memory
Myr Retriever
Myr Sire
Millikin
Perilous Myr

1cc
Sylvok Lifestaff
Terrarion
Chromatic Star
Horizon Spellbomb
Nihil Spellbomb

Color: LAND
Total:  17

Cephalid Coliseum
Centaur Garden
Shimmering Grotto
Lonely Sandbar
Temple of the False God
Ancient Zuggurat
Treetop Village
Barbarian Ring
Buried Ruin
Moorland Haunt
Tranquil Thicket
Forgotten Cave
Barren Moor
Terramorphic Expanse
Evolving Wilds
Ghitu Encampment
Terminal Moraine
Faerie Conclave

Color: GREEN
Total: 97 

7cc
Stone-Tongue Basilisk
Roar of the Wurm

6cc
Grim Flowering
Deadwood Treefolk
Phantom Wurm
Howlgeist

5cc
Strength of Cedars
Skullmulcher
Arrogant Wurm
Grizzly Fate
Beast Attack
Acidic Slime
Venerable Kumo
Indrik Stomphowler
Aerie Ouphes
Metamorphic Wurm
Savage Conception
Dowsing Shaman
Seedguide Ash*
Spider Spawning
Gigapede
Golgari Grave Troll
Mitotic Slime*

4cc
Momentous Fall
Slice in Twain
Foster
Monstrify
Tribal Unity
Greater Mossdog
Symbiotic Elf
Centaur Chieftain
Krosan Beast
Oracle of Mull Daya*
Possessed Centaur*
Squirrel Wrangler
Burr Grafter
Phantom Centaur
Kodama of the South Tree
Algae Gharial*
Festerhide Boar
Timbermare
Springing Tiger
Lumberknot
Simian Brawler

3cc
Elephant Guide
Unchecked Growth
Krosan Tusker
Holistic Wisdom
Primal Growth
Recollect
Fecundity
Wild Hunger
Harrow
Bearscape
Far Wanderings
Tilling Treefolk
Elder Pine of Jukai
Splinterfright
Spikefeeder
Borderland Ranger
Cartographer
Wood Elves
Phantom Tiger
Kami of the Hunt
Yavimaya Granger*
Phantom Nantuko
Uktabi Orangutan*
Carven Caryatid
Citanul Woodreaders*
Mul Daya Channelers*

2cc
Evolution Charm
Travel Preparations*
Moment's Peace
Nostalgic Dreams
Life from the Loam
Rites of Spring*
Resize
Mulch
Regrowth
Wirewood Herald*
Forcemage Advocate
Hermit Druid
Sakura-Tribe Elder
Multani's Acolyte
Nantuko Tracer
Werebear
Dawnstrider
Loam Dweller
Woodland Changeling

1cc
Thrill of the Hunt*
Rancor
Quirion Ranger
Crop Rotation
Greenseeker
Groundskeeper
Elvish Skysweepter*
Basking Rootwalla
Diligent Farmhand
Tinder Wall

Color: GOLD
Total: 54

7cc
Phantom Nishoba

6cc
Cauldron Dance
Vengeful Rebirth
Drooling Groodion*
Nucklavee

5cc
Slave of Bolas*
Marrow Chomper
Giant Ambush Beetle*
Izzet Chronarch

4cc
Vanish into Memory
Hellhole Rats*
Murderous Redcap
Kathari Remnant*
Desecrator Hag
Grazing Kelpie

3cc
Mortify
Goblin Trenches*
Putrefy
Electrolyze
Snakeform
Blightning
Recoil
Mercy Killing
Savage Twister*
Psychatog*
Selkie Hedge-Mage
Kathari Bomber*
Restless Apparition
Teysa, Orzhov Scion
Geist of Saint Traft
Wistful Selkie*
Rendclaw Troll
Hag Hedge-Mage
Orzhov Pontiff
Shambling Shell
Centaur Safeguard
Jund Sojourners*
Plaxcaster Frogling

2cc
Turn to Mist
Agony Warp*
Glimpse the Unthinkable
Terminate
Hull Breach
Mask of Riddles*
Lightning Helix
Eladamri's Call
Lurking Informant
Cavern Harpy
Coiling Oracle*
Mistmeadow Witch
Gruul Guildmage
Dimir Guildmage
Selesnya Guildmage

1cc
Seedcradle Witch

Color: BLACK
Total: 99

7cc
Pus Kami
Absorb Vis*

6cc
Pull Under
Dark Withering
Kami of Lunacy
Abyssal Horror*
Extractor Demon
Grixis Slavedriver

5cc
Cruel Revival
Torrent of Souls
Screams of the Damned*
Unburial Rites
He Who Hungers
Treacherous Vampire
Scuttling Death
Coffin Puppets
Morkrut Banshee
Nested Ghoul

4cc
Makeshift Mannequin
Seize the Soul
Sever the Bloodline
Death Pulse
Ritual of the Machine
Childhood Horror
Highway Robber*
Braids, Cabal Minion
Falkenrath Noble
Gravedigger
Horobi, Death's Wail
Lingering Tormentor
Ichorid
Infernal Kirin
Phyrexian Defiler*
Mausoleum Turnkey
Moan of the Unhallowed
Razorjaw Oni
Faceless Butcher
Bala Ged Scorpion*
Disease Carrier*
Skinrender
Shambling Swarm

3cc
Last Rites*
Dark Banishing
Swat
Recover*
Footsteps of the Goryo
Buried Alive
Rotlung Reanimator
Searchlight Geist*
Dusk Urchins
Pawn of Ulamog*
Ghoulraiser
Plague Spitter*
Stinkweed Imp
Lord of the Undead
Kami of the Waning Moon
Infernal Caretaker
Phyrexian Rager
Putrid Raptor
Doomed Necromancer
Mercenary Knight*

2cc
Skeletal Scrying
Suffer the Past
Diabolic Intent
Diabolic Edict
Animate Dead
Last Gasp
Grasp of Darkness
Disturbed Burial*
Viscera Dragger
Decompose*
Gempalm Polluter
Toxic Stench
Smother
Stitch Together
Dregscape Zombie
Blind Creeper*
Mesmeric Fiend*
Ravenous Rats*
Crypt Creeper
Apprentice Necromancer
Nether Traitor
Nezumi Graverobber
Cruel Deceiver

1cc
Vendetta
Ghastly Demise
Fade from Memory
Bloodchief Ascension
Coffin Purge*
Cremate
Darkblast
Fume Spitter
Festering Goblin
Plagued Rusalka
Putrid Imp
Ghost-lit Stalker
Carnophage
Carrion Feeder
Vampire Lacerator

Color: BLUE
Total: 94

8cc
Kederekt Leviathan

7cc
Phyrexian Ingester
Palinchron*

6cc
Skaab Goliath
Ethereal Usher

5cc
Ancestral Memories
Followed Footsteps*
Scrivener
Shinx of Lost Truths
Mnemonic Wall
Murder of Crows
Riptide Shapeshifter
River Kelpie
Teller of Tales

4cc
Mystic Retrieval
Chamber of Manipulation
Careful Consideration
Mystical Teachings
Choking Tethers
Cytoplast Manipulator
Mist Raven
Makeshift Mauler
Troublesome Spirit
Wormfang Crab
Secretkeeper
Fatestitcher
Faerie Mechanist
Wonder

3cc
Esper Sojourners*
Rescind
Flash of Insight*
Ghostly Flicker
Flux
Probe
Oona's Grace
Aethersnipe
Forbidden Alchemy
Circular Logic
Compulsive Research
Three Wishes*
Catalog
Attunement
Civilized Scholar
Scrapskin Drake*
Pestermite
Fettergeist
Armored Skaab
Spawnbroker
Callous Oppressor
Raven Familiar
Wurmfang Drake
Lantern Spirit
Drift of Phantasms
Cephalid Looter*
Frontline Sage*
Latch Seeker
Aether Adept
Brackwater Elemental
Stormbound Geist
Stitched Drake
Kathari Screecher*

2cc
Drifting Djinn
Repeal
Confound
Compulsion
Peel from Reality
Consuming Vortex
Trade Routes
Call to Heel
Trickbind
Screeching Skaab
Cephalid Vandal*
Surveilling Sprite
Voidmage Prodigy
Mindshrieker
Deranged Assistant*
Mindshrieker
Aquamoeba
Thought Courier
Alchemist's Apprentice*
Merfolk Looter*
Looter il-Kor

1cc
Silent Departure
Saving Grasp
Mark of Eviction
Extract*
Brainstorm*
Seal of Removal*
Chain of Vapor
Preordain*
Trickster Mage
Hedron Crab
Enclave Cryptologist*
Drowned Rusalka

Rummaging

At the beginning of this iteration, I had my cube, a 5000-count box half-full of sorted Cube Mothership, and three or four 100-count boxes of unsorted cards that needed to be merged with the Mothership.  I began by sorting the 100-count boxes by color as I looked through them for cards that could potentially go into my cube.  Then I set the sorted piles aside and began going through the Mothership by color, taking out any cards that caught my fancy as a potential inclusion to this iteration.  After finishing each individual color, I added the corresponding color from the previously unsorted 100-count boxes.

Order of Operations

At that point, there were many options for how to go about adding and removing cards.  I tried to think about what macro-cubic issues I was trying to solve.  For example, I have one problem that can plague any cube that tries to push a theme while also including inherently solid cards. I believe that lots of gold cards and fixers lead to players taking cards due to their power level in a vacuum as opposed to how they might interact synergistically with other cards of variable value.  I wanted to strengthen the incentive to gamble on high-upside jank with early picks.  Nobody ever ends up with too few playables because the base card quality is so high, but people would rather spend their gamble on an early Lightning Helix they might not end up playing because of mana restrictions than on an Ichorid they might not end up playing because Ichorid is a pretty serious hit-or-miss depending on what support cards you get.  The difference between these gambles is that if players are steered in the direction of volatile jank, the decks end up characterized by that jank, giving the draft a more unique flavor.  Put another way: gold cards generally have a higher quality-to-converted-mana-cost ratio, and if players can cast a 3cc gold card like Naya Charm with an average mana base, they have no reason to take Footsteps of the Goryo over it early on.

I state this specific problem not because it informs the entire remainder of my procedure, but because it is an example how I develop rules for  the framework of cutting/adding cards.  With a pile of cards to add and a rough set of alteration rules in my head, I made a roadmap for refurbishment:

1. Add in all artifact, gold, and land; they were sparingly, judiciously selected from the Mothership for high impact
2. Add in all red and white cards because they have the lowest counts among the five colors
3. Cut white, green, blue, and black cards liberally because there are plenty of replacements to put in; red is the limiting reagent at 101 cards
4. Add in green, blue, and black cards until their counts are up to 101
5. Cut artifact, land, and gold cards liberally
5. Cut cards from everywhere, maintaining equal color distribution, until everything fits in the box

 

My intent was to get the cards equilibrated across colors, compare the size of all cards to the size of the box, and begin cutting.  This process is all about speed and intuition, and I don’t want to give the impression that I was following a recipe.  Not only would that be impractical, it would spoil the experience.  My method is messy and heuristic. I had many piles, sorted and unsorted, around the table.  I cached cards I removed from the cube and went through the caches every once in awhile to see if my fancies had changed in the minutes or hours since removing them.

Notable Exclusions/Excisions

In the above paragraphs, I made an effort to describe the deconstruction process in the abstract.  As the contents of the cube became increasingly defined, so did the pile of cards that came very close to making the cut.  What follows is a log of changes which exemplify more specific directions, subtle and not, that I am taking the cube in, with respect to those cards I left out:

Seedguide Ash: the cube is more about cheap beaters and the board state should evolve quickly, so the high end needs to be more about creatures with high-impact board presence/187 or very high-impact leave-play abilities

Somberwald Spider: morbid can be awkward to trigger and I don’t want to have too much of it, so I’m opting for just Festerhide Boar and Ulvenwald Bear since they are more closely aligned with the aggression level

Possessed Centaur: most of the drafts I do are heads up, and given that he’s 2GG to cast, you are probably the only base green player, making his activated ability irrelevant

Oracle of Mul Daya/Channelers of Mul Daya: interesting with mill but ultimately too off-theme

Mitotic Slime: usability issues; this card is an example of great top-down design but is very annoying to play with in practice due to the confusing variety of slime sizes

Borderland Ranger: Fertilid, Kodama’s Reach, Krosan Tusker, and Harrow all fill similar functions while interacting more copacetically with current themes

Battle Screech: flashback cards in this cube should be readily castable upon being discarded or milled

Spiketail Hatchling: dreams of activating morbid with this guy were misleading; it’s hard to use this guy to leverage Raise Dead effects and threshold proactively

Courier’s Capsule/Etherium Astrolabe: nice with Sanctum Gargoyle, Remember the Fallen and not much else; relics from an earlier iteration where artifacts were more important

Three Wishes: who has time to read all the text on this card?

Merfolk Looter/Cephalid Looter/Cephalid Broker: redundant, not aggresssive enough

Cloudseeder: there’s not a great reason this card couldn’t make it in later; I almost cut Thought Courier for it; this is a good example of a card happening to strike me in the gut the wrong way for whatever reason, and clearly belongs in a cache

Preordain/Brainstorm: I’m trying to cut cards with almost pure upside in favor of a high jank quota

Pestermite/Deceiver Exarch: they belong in too many decks; a reminder that players should be rewarded for archetypal picks, not general-purpose picks

Enclave Cryptologist: I want early turns to be spent developing board position, not leveling up an 0/1; also adds unneeded complexity to a format that presses the limit of enjoyable board complication levels

Followed Footsteps: optimistically, a really cool card for creating an engine of some sort; in practice, a 5cc do-nothing

Extract: if I end up with more spellshapers in the cube, I will put this back in since it can be pitched late game; it can also be very strong vs. a deck with Genesis or Life from the Loam, particularly if you have no other exiling

Palinchron: I’ll leave the theme-agnostic powerhouses to other cubes

Cephalid Vandal: the cube is currently more about aggression than crazy, creative engines that this guy can enable

Mark of Eviction: wasn’t seeing any play; kind of a 1cc Followed Footsteps

Flash of Insight: this cut was mostly about keeping decks cohesive and having cards consistently agree with the objective they wanted to accomplish; once I feel like the cube is polished and the decks are running very smoothly, I could add cards such as this that compels a player to do something antithetic to the rest of the cube (that is, removing cards from their graveyard); another highly cached card

Deranged Assistant: simply not good enough; the cube might need a higher end to make this guy have enough value in the later stages of the game

Scrapskin Drake: there are enough blue zombies already

Esper Sojourners/Jund Sojourners: these guys fulfilled an interesting role of being a trick that put a spin on the value of Raise Dead effects, but I didn’t like the aesthetic of having them come up when a pack was being laid out during a Rochester draft, especially knowing that they were the only two of a five-sojourner cycle

Kathari Screecher: if only it were a bird zombie

Krovikan Sorcerer: a sweet looter, but a little too expensive

Seismic Mage: the one red card I cut, but I don’t think I need to go into detail why

Vivid lands: goes along with the anti-fixer argument above

Psychatog/Goblin Trenches/Vish Kal, Blood Arbiter: goes along with the anti-gold argument above

I have now outlined the deconstruction process in gratuitous detail.  In the next article, I intend to focus on what cards I ended up adding and why, as well as the updated cube list in its entirety.  Thank you for reading.

Innistrad draft 12/13

I recorded audio with this and Nick was right, it definitely affected my ability to think as clearly.  Instead of the audio I’m just gonna do a postmortem.

Pack 1 pick 1:

My Pick:

Pack 1 pick 2:

My Pick:

If I hadn’t passed Moan first pick I might take Dead Weight…prob not though.

Pack 1 pick 3:

My Pick:

This pack came back to haunt me in the sense that in the next pack I open and pass Dearly Departed because I recall passing a lot of white first pack; however, the black cards in this pack are obviously better and are going to be taken first.  Pretty awful blunder.  I’m never recording again…

Pack 1 pick 4:

My Pick:

Pack 1 pick 5:

My Pick:

Pack 1 pick 6:

My Pick:

Pack 1 pick 7:

My Pick:

Pack 1 pick 8:

My Pick:

Should have taken the green guy here.  I should be less concerned with signaling and more concerned with snapping up playables when I don’t have my colors set in stone.

Pack 1 pick 9:

My Pick:

Pack 1 pick 10:

My Pick:

…and now I regret taking that Spectral Flight since this is a solid green card in an originally mediocre pack.  Considering I haven’t passed any good green, it seems like a good opportunity (besides, the only cost is a Riot Devils and a lack of a green signal to the guy on my left).

Pack 1 pick 11:

My Pick:

Pack 1 pick 12:

My Pick:

Pack 1 pick 13:

My Pick:

Pack 1 pick 14:

My Pick:

Pack 1 pick 15:

My Pick:

Pack 2 pick 1:

My Pick:

I could have jumped into white here, but like I said, I falsely remembered having shipped a lot of white.  I don’t think Desperate Ravings can be that bad of a pick here though, it is pretty insane in straight blue/red.  Also, it keeps open the possibility of going UGr which is very viable at this point since judging from pack 1 green is being underdrafted.

Pack 2 pick 2:

My Pick:

This was the pick that really made me realize it would take some practice to be able to talk through my drafts.  My only explanation is that I was running really low on time.  In retrospect, I like taking Avacyn’s Pilgrim or Fortress Crab.  Probably Crab since Pilgrim goes down in value in a deck with a shakier manabase that relies on Think Twice to find the right colors.
Pack 2 pick 3:

My Pick:

God I hate my deck.  Why didn’t I just take Dearly Departed?

Pack 2 pick 4:

My Pick:

Pack 2 pick 5:

My Pick:

FML

Pack 2 pick 6:

My Pick:

I am going to need a lot of Armored Skaabs.

Pack 2 pick 7:

My Pick:

Pack 2 pick 8:

My Pick:

Maybe?

Pack 2 pick 9:

My Pick:

Pack 2 pick 10:

My Pick:

Pack 2 pick 11:

My Pick:

Pack 2 pick 12:

My Pick:

Pack 2 pick 13:

My Pick:

Pack 2 pick 14:

My Pick:

Pack 2 pick 15:

My Pick:

Pack 3 pick 1:

My Pick:

I’m in serious trouble at this point.

Pack 3 pick 2:

My Pick:

Pack 3 pick 3:

My Pick:

This is kind of an interesting pick, I guess.  I have too many 6-drops so the Rig isn’t an option.  Lantern Spirit survives Rolling Temblor, but I think would rather play a guy that is often going to be blocking their turn 2 or 3 play and trading to get something in the yard for me.  Lantern Spirit does this too, but I feel like the first strike can gum up the board and create a better situation for Rolling Temblor.

Pack 3 pick 4:

My Pick:

Pack 3 pick 5:

My Pick:

Pack 3 pick 6:

My Pick:

Pack 3 pick 7:

My Pick:

I have 3 Think Twice and a Desperate Ravings, but I need more guys.  Sorry, Burning Vengeance.

Pack 3 pick 8:

My Pick:

Pack 3 pick 9:

My Pick:

Pack 3 pick 10:

My Pick:

Should have taken Riot Devils, easily.  I thought I would play the Tomes because I had so many graveyard demands, but ended up not.

Pack 3 pick 11:

My Pick:

Pack 3 pick 12:

My Pick:

Pack 3 pick 13:

My Pick:

Pack 3 pick 14:

My Pick:

Pack 3 pick 15:

My Pick:

This draft converter created by Benjamin Peebles-Mundy.

Visit the draft converter today!

11/21/11 Innistrad Draft

Pack 1 pick 1:

My Pick:

Pretty easy pick.  If I were more familiar with the archetype, I might take Hamlet Captain and force GW humans, but as it is I’m just going to try to avoid green.
Pack 1 pick 2:

My Pick:

Another pretty easy pick.

Pack 1 pick 3:

My Pick:

I took this over Rig mostly for signaling purposes.  I haven’t passed a single good blue card yet.  I think Rig and Drake are very close in overall quality, but in a vacuum I think Rig > Drake.

Pack 1 pick 4:

My Pick:

Once again, this is a cut.  I prefer Blazing Torch in a vacuum, but Armored Skaab goes for a premium sometimes and he is really crucial for so many decks.

Pack 1 pick 5:

My Pick:

Shipping more white…

Pack 1 pick 6:

My Pick:

It appears I am being cut from black.

Pack 1 pick 7:

My Pick:

This might have been a mistake.  Rolling Temblor was a pretty clear signal here, and I have the deck for it so far if I just move into red.

Pack 1 pick 8:

My Pick:

Corpse Lunge goes pretty well in my deck.

Pack 1 pick 9:

My Pick:

Pack 1 pick 10:

My Pick:

Pack 1 pick 11:

My Pick:

Pack 1 pick 12:

My Pick:

Pack 1 pick 13:

My Pick:

Pack 1 pick 14:

My Pick:

Pack 1 pick 15:

My Pick:

Pack 2 pick 1:

My Pick:

Garbage!  I figured this was worth a gamble. I have a Stitcher’s Apprentice, I could end up being URb or UBr, and already have a splash land.  A lot of potential upside vs. missing out on Think Twice.  Dagger would make the cut in my deck but wouldn’t be great.

Pack 2 pick 2:

My Pick:

Pack 2 pick 3:

My Pick:

Pack 2 pick 4:

My Pick:

Pack 2 pick 5:

My Pick:

!!!!

Pack 2 pick 6:

My Pick:

Hmmm…

Pack 2 pick 7:

My Pick:

Pack 2 pick 8:

My Pick:

Pack 2 pick 9:

My Pick:

Pack 2 pick 10:

My Pick:

Pack 2 pick 11:

My Pick:

Pack 2 pick 12:

My Pick:

Pack 2 pick 13:

My Pick:

Pack 2 pick 14:

My Pick:

Pack 2 pick 15:

My Pick:

Pack 3 pick 1:

My Pick:

Mise.

Pack 3 pick 2:

My Pick:

Pack 3 pick 3:

My Pick:

Desperately need things to flash back with Snapcaster.

Pack 3 pick 4:

My Pick:

Pack 3 pick 5:

My Pick:

Pack 3 pick 6:

My Pick:

Pack 3 pick 7:

My Pick:

Pack 3 pick 8:

My Pick:

Don’t know what I was thinking…prob should’ve taken Scarecrow.

Pack 3 pick 9:

My Pick:

Pack 3 pick 10:

My Pick:

This could be wrong, but at this point I had 2 Desperate Ravings and 2 Silent Departure.  Disciple is so sick though and I needed a morbid enabler for my 5/5 demon maker.

Pack 3 pick 11:

My Pick:

Pack 3 pick 12:

My Pick:

: / I think I took this to make Ghoulcaller’s Chant a little better.

Pack 3 pick 13:

My Pick:

Pack 3 pick 14:

My Pick:

Pack 3 pick 15:

My Pick:

Abstraction and MagicStove Beta

This is a continuation of the project I first discussed in: How Many Hill Giants?

While I’ve been programming my experimental husk of what Magic is for the purposes of my Hill Giant question, there has been a recurring abstraction question:  what is a player?  The definition of a player is different depending on who you ask.  To WotC and perhaps tournament organizers, a player is a consumer.  To the head judge and the DCI, a player is a rating, a set of qualifications, a history of warnings.  To the unseen force that propels a game forward (which I refer to as a Game), a player is an agent of change within a continually progressing system.  Thus, we have a notion of the variable scope that a player can exist in.

For the purposes of the Hill Giant problem, a player consists of the following:

  • a deck
  • lands in hand
  • creatures in hand
  • untapped lands
  • tapped lands
  • untapped creatures
  • tapped creatures
  • life total
  • player name

The implementation of this was not difficult, but navigating a player through the different levels of the experiment’s abstraction has proved cumbersome.  The objective of the project is to be able to run vastly different tests based on the simple alteration of several global variables; a basic design pattern.  But the responsibility of data crunching is passed between different aspects of the program, and at some points the buck must be passed while the passer maintains a copy of the buck he is passing, lest its integrity be lost.  For example, one bug that had to be ironed out recently had to do with the necessity of copying the original player object, whose deck had 50 Hill Giants, the starting number.  If he wasn’t copied before the buck was passed, the passed deck would be mutated by the fact that, during Magic, a player draws spell cards, putting them in a different zone.  This would make it impossible to tell the starting contents of a match iteration’s decklists, and therefore make it impossible to gather stats on different overall decklists, muddling the entire experiment.

Not only do I have to maintain a clone as I pass a player from the main method to the match, but also as I pass him from the match to each game within it.  Which brings me to a more recent problem:

Turn: 3; Active player: Clarence

Clarence has 9 untapped lands and 9 untapped creatures.

Clarence draws Grey Ogre*. Clarence has 2 lands in hand and 13 Grey Ogres in hand.

Clarence plays a land.

Clarence plays 3 dude(s).

Clarence attacks with 9 Grey Ogres

Danielle blocks with 2 Grey Ogres.

2 trades occur and Danielle takes 14 damage.

End turn. Clarence is at 20 /// Danielle is at -6

Clarence draws land. Clarence has 2 lands in hand and 13 Grey Ogres in hand.

Clarence draws Grey Ogre. Clarence has 2 lands in hand and 14 Grey Ogres in hand.

*The change from Hill Giants to Grey Ogres occurred during a code refactoring courtesy of Andrew Gray.  GreyOgre extends Card, the abstract class he created to encapsulate card data such as power, toughness, and casting cost, which I was putting in the deck class.

From this transcript, it’s not difficult to understand that something is wrong with the program.  The players’ life total fails to reset after each game and their hands and the board stays the same–and it’s pretty pointless to play a game of Magic in which your opponent can play three Grey Ogres on turn three while you start at less than one life.

My first thought was that it had to do with the player object I was pointing to within the game affecting variables that should only have been in the scope of the match, which would mean I hadn’t cloned the players properly into the game during each iteration of the match’s for loop.  This is a problem that would prevent the players from being adequately refreshed.  But as Andrew pointed out while looking at the code, we hadn’t put “creaturesInHand- -;” under the playCreatures() method.  This allowed a player to play as many Grey Ogres a turn as he wanted to as long as he had one Grey Ogre in his hand, because deploying a Grey Ogre did not actually cause a Grey Ogre to leave your hand.  This also explains why Clarence is holding 13 Grey Ogres at one point.  The bug was solved when Andrew and I were running early tests and noticed an inordinate number of games being won by the deck with 1 Grey Ogre and 99 Mountains–10%.

But that doesn’t solve the question as to why the life totals weren’t replenishing after the game.  Andrew noted that it was probably negative damage being dealt somehow.  I confirmed this when I noticed a game in which a player attacked with 2 Ogres and the opponent blocked with 3.  After that, the output read that defending player had gained 2 life during the exchange.  This required a minor change in combat logic, which is in the Player class within his attack(creaturesWithoutSummoningSickness, defendingPlayer) method.  There was also a bug that was letting players continue living despite being at negative life, under some circumstances.  I cleaned that up at some point.

When we started abstracting away the game state details and looking at the match-up percentages themselves, Andrew and I eventually had some decisive results, which I give an example of below.  The data in the first column represents Clarence’s starting count of Hill Giants within his deck for each game that he plays during a 65,000 game series.  The difference between that and 100 is the number of Mountains Clarence plays (which would be 80 for the first row).  The second column is Clarence’s win percentage vs. the field and the third column is his loss percentage vs the field.

The field consists of lists with 20-85 Hill Giants and vs. each of those opponents 1000 games were played.  When Andrew and I were at the cusp of getting numerical results, he argued that playing matches actually adds variance and abstracts away a degree of statistical accuracy, so we effectively abandoned them (although there are always sideboarding experiments to be had).  This was convenient since we were still having logical issues with the way a match was an abstracted set of games.  Finally, the optimum creature count vs. a random deck from the defined field is listed at the bottom of these stats.  And with that, the program I have dubbed MagicStove has “solved” its first problem:

20|27.138462|72.86154

21|28.504616|71.495384

22|29.869232|70.13077

23|31.269232|68.730774

24|33.104618|66.895386

25|34.635387|65.36462

26|36.072308|63.927692

27|37.54154|62.45846

28|39.226154|60.77384

29|40.65231|59.347694

30|42.353848|57.646156

31|44.352306|55.647694

32|45.59077|54.40923

33|47.253845|52.746155

34|48.99231|51.007694

35|50.32461|49.675385

36|52.169235|47.83077

37|53.460003|46.54

38|55.4|44.600002

39|56.40154|43.59846

40|58.69077|41.30923

41|59.53231|40.46769

42|60.567696|39.43231

43|61.875385|38.124615

44|62.84769|37.15231

45|64.44769|35.552307

46|65.23692|34.763077

47|66.14923|33.85077

48|66.98615|33.013847

49|67.886154|32.113846

50|68.1723|31.827692

51|68.56308|31.436924

52|69.16462|30.835384

53|69.48615|30.513847

54|69.34154|30.658463

55|69.566154|30.433846

56|69.51538|30.484617

57|68.67385|31.326155

58|68.41692|31.583076

59|68.02462|31.975386

60|66.86|33.14

61|65.80308|34.196922

62|64.91692|35.083076

63|63.70923|36.290768

64|61.961536|38.038464

65|60.684616|39.315384

66|58.960003|41.04

67|57.01077|42.98923

68|55.344616|44.655384

69|53.267693|46.732307

70|50.566154|49.433846

71|48.075382|51.924618

72|45.552307|54.447693

73|43.563076|56.43692

74|40.301537|59.698463

75|37.43077|62.56923

76|34.92154|65.07846

77|32.270767|67.729225

78|29.284615|70.715385

79|26.533846|73.46615

80|23.703077|76.29693

81|21.263077|78.73692

82|18.747692|81.252304

83|16.136923|83.86308

84|13.698462|86.301544

The optimum creature count for HillGiant: 55

Total time: 34830ms

 

 

Basic Magic AI: How Many Hill Giants?

Andrew and I recently had a debate.  In a 100 card minimum deck size format with Mountain, Hill Giant, and no other cards, how many Hill Giants would be correct if there is no limit to how many you can play (the Relentless Rats mechanic)?  I decided to write a crude program to “solve” it, leaving modularity to run similar experiments if I so chose.  At this point, the program’s classes are defined and it will run, but will take some debugging to produce meaningful results.  Since the fickleness of my interests sometimes lead to unfinished projects such as this, I want to at least outline my program in English while I am in the thick of it.

I start off both players with 50 Hill Giant and 50 Mountain, and give them both the same simple set of parameters to produce plays that are strategically sound enough to simulate reality.

  • There are no mulligans.  This won’t be logically difficult to implement later on, but it will be a bit time consuming given the way I have implemented the program so far.  I realize it is a crucial element, but I need to keep the horse before the carriage if I ever want to get decisive results at all.
  • There is no discard step.  I guess this hedges against the lack of mulligans a bit.
  • First game of each match is decided randomly.  If you lose a game within a match, you always play first the next game.
  • If you have a land you must play it.
  • You must play as many Hill Giants in your precombat main phase as possible.
  • If you have more life than an opponent, you must attack with all of your Hill Giants every turn.
  • If you have less life than your opponent, you must attack with X Hill Giants every turn, where X is the number of Hill Giants you control minus the number of total Hill Giants your opponent controls.
  • Defending player must block as many Hill Giants as he can every turn.

This may seem like a watered-down form of Magic, but I think its combative interaction encourages attrition wars, which I think is the best way to delay a game for as long as possible and give the decks a chance to expose as many cards as possible and maximize the match’s turn sample size.  I’m not saying this is the best set of rules that will promote attrition, but it is a set nonetheless, and one that I think captures some basic methodical heuristics perhaps practiced by middle schoolers playing Magic on a cafeteria lunch table.  As a caveat, there might be attacking strategies that include swinging out every turn despite being at lower life than your opponent, perhaps based on your deck proportions vs. average proportions (or specific proportions, if I was to give the players each others’ decklists).

Every match consists of a variable number of games.  Once the program is debugged it will be easy to run tests for decks with Grizzly Bears, Norwood Ranger, Scathe Zombies, Trained Orgg, and any number of vanilla favorites from throughout Magic’s history.  I will also be able to change the amount of games per match and the starting life totals, and make deck size as big as I want, so there can be a finer gradation for decklist changes, since taking one Hill Giant out of a deck with 50 Hill Giant and 50 Mountain is different than taking one Hill Giant out of a deck with 100 of each.

One thing that’s difficult is deciding how to make decklist changes.  Although I can’t get WordPress to format it in a less-than-hideous fashion, here is one way I could do it:

Random rand = new Random();

if(winsAlice > winsBob){

if(rand.nextBoolean())

Alice.makeChanges(NUM_CHANGES, “land”);

else

Alice.makeChanges(NUM_CHANGES, “creature”);

}

else{

if(rand.nextBoolean())

Bob.makeChanges(NUM_CHANGES, “land”);

else

Bob.makeChanges(NUM_CHANGES, “creature”);

}

NUM_CHANGES is a global variable defined before the main method to indicate the number of changes that will be made after each match.  If NUM_GAMES is 5, and Bob wins a 5 game match, Bob will make NUM_CHANGES changes to his deck before the next match, which will all be in the same direction (more lands or more creatures).  With the above methodology, the deck change would be completely random.  This should still drive deck construction in the proper direction in the long term as long as NUM_CHANGES is a reasonably small percentage of overall deck size.  The program runs for NUM_MATCHES.

To be frank, as interested as I am in this problem, I’m pessimistic about getting decisive results.  I have a suspicion that metagame will damn this entire exercise since deck strength is completely relative.  This is something I don’t know how to deal with, but perhaps I can graph it.  I’ll need to really show my programming chops to get anywhere.  As a gauge to show where I’m at right now, here is some sample output to show where I am at bug-wise:

Turn 0: Bob has 0 Hill Giants

Bob has 3 lands in hand and 5 Hill Giants in hand.

After playing permanents, Bob has 1 lands and 0 Hill Giants

Bob is at 20

Alice is at 20

 

Turn 1: Alice has 0 Hill Giants

Alice has 4 lands in hand and 3 Hill Giants in hand.

After playing permanents, Alice has 1 lands and 0 Hill Giants

Alice is at 20

Bob is at 20

 

Turn 2: Bob has 0 Hill Giants

Bob has 3 lands in hand and 5 Hill Giants in hand.

After playing permanents, Bob has 2 lands and 0 Hill Giants

Bob is at 20

Alice is at 20

 

Turn 3: Alice has 0 Hill Giants

Alice has 4 lands in hand and 3 Hill Giants in hand.

After playing permanents, Alice has 2 lands and 0 Hill Giants

Alice is at 20

Bob is at 20

 

Turn 4: Bob has 0 Hill Giants

Bob has 2 lands in hand and 6 Hill Giants in hand.

After playing permanents, Bob has 3 lands and 0 Hill Giants

Bob is at 20

Alice is at 20

 

Turn 5: Alice has 0 Hill Giants

Alice has 4 lands in hand and 3 Hill Giants in hand.

After playing permanents, Alice has 3 lands and 0 Hill Giants

Alice is at 20

Bob is at 20

 

Turn 6: Bob has 0 Hill Giants

Bob has 1 lands in hand and 7 Hill Giants in hand.

After playing permanents, Bob has 4 lands and 1 Hill Giants

Bob attacks with 0 Hill Giants.

Alice blocks with 0 Hill Giants.

0 trades occur and Alice takes 0 damage.

Bob is at 20

Alice is at 20

 

Turn 7: Alice has 0 Hill Giants

Alice has 4 lands in hand and 3 Hill Giants in hand.

After playing permanents, Alice has 4 lands and 1 Hill Giants

Alice is at 20

Bob is at 20

 

Turn 8: Bob has 1 Hill Giants

Bob has 0 lands in hand and 8 Hill Giants in hand.

After playing permanents, Bob has 4 lands and 2 Hill Giants

Bob attacks with 1 Hill Giants.

Alice blocks with 1 Hill Giants.

1 trades occur and Alice takes 0 damage.

Bob is at 20

Alice is at 20

…etc

Turn 33: Alice has 5 Hill Giants

Alice has 0 lands in hand and 10 Hill Giants in hand.

After playing permanents, Alice has 13 lands and 8 Hill Giants

Alice attacks with 5 Hill Giants

-1

Alice attacks with 2 Hill Giants.

Bob blocks with 3 Hill Giants.

3 trades occur and Bob takes 6 damage.

Alice is at 20

Bob is at 20

 

—————————————————————

Bob wins! His deck contained 46 Hill Giant