Automated Commander Power Level Evaluation

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

As discussed in the power level thread, I have been working on my python script to evaluate the relative power level of decks based on points allocated purely on individual card power level (in the first go around). I intend to add functionality to evaluate card combinations as well.

OUTSTANDING ACTION ITEMS
* Enter missing cards and synergies! Json format in Rumpy's post if needed.

OUTSTANDING CODE
* front end that allows collecting synergies without having to type all the card names and manually put quotes around things. My initial thought is just a simple form that shows a running list of all the synergies you've made so they can be pasted into the dataset in TSV.

*some sort of simple method of comparing a synergy to see if it identical or contains other synergies as a way to detect duplicates and overlap.

* Add filter support for supertype, power, toughness, and manacost

* REFACTOR - add command line option and config file support. Move all formulas and numbers (e.g. curve offset) to configuration file.

* Compile code using pyinstaller and make sure it works okay.

* write a natural language dictionary to present synergy formulas in a more readable way, e.g. "card and card synergize with cards of not this type and add 1 point per instance"

* Consider a redesign of the input dataset of synergies to cooperate with an easier input method.

* add supertype filter for synergies (to allow searching for legendary or basic, etc.)
* add card parsing for Power, Toughness, and/or actual mana cost (to allow searching for p/t restricted cards like gore-claw/recruiters, and allow calculating devotion if desired

BITBUCKET URL:
https://bitbucket.org/pokken/cmdrdeckrank/src/master/

For now I am using this base dataset I've developed myself but I am happy to have input and collaboration on the dataset, since I think it is super raw.

If you are a highly skilled player with experience across all power levels, and would like an edit link to make additions and edits to the list, please send me a PM!

Data set (see the cards tab)


My initial sample contains two decks of my own design, primarily to test both single and partner pair deck analysis. My first run shows pretty much what I would expect -- that my Ephara deck is quite a bit more powerful than the Tymna/Ludevic affinity deck.

If you would like to submit your deck for analysis the format example is attached: Essentially just put a single blank line between your commander(s) and the rest of the deck. Your deck must contain exactly 100 cards of course. The formatter is fairly fragile atm, so please 1) do not put more than 99 of any card:P and 2) spell your card names right, or it will not work.


Running Tally

+--------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                         Deck Analysis - Total Decks: 116                                                         |
+--------------------------------------------------------------------+---------------------------------------------+---------+---------+-----------+
| Deck Name                                                          | Commanders                                  | Avg CMC |     Raw | Adj Total |
+--------------------------------------------------------------------+---------------------------------------------+---------+---------+-----------+
| CEDH_consult-scepter-thrasios                                      | THRASIOS, TRITON HERO,TYMNA THE WEAVER      |    1.79 | 2439.75 |   2163.86 |
| pokken_CEDH_Sushi_hulk                                             | THRASIOS, TRITON HERO,TYMNA THE WEAVER      |    1.74 | 2203.75 |   1964.50 |
| pokken_CEDH_Opus_Thief                                             | TYMNA THE WEAVER,KRAUM, LUDEVIC'S OPUS      |    2.06 |  2023.0 |   1739.87 |
| pokken_Gitrog Lands                                                | THE GITROG MONSTER                          |    2.24 | 1517.75 |   1274.62 |
| RUMPY5897_feather                                                  | FEATHER, THE REDEEMED                       |    2.12 | 1389.75 |   1186.16 |
| MrMystery_GrusildaReanimator                                       | GRUSILDA, MONSTER MASHER                    |    2.69 |  1285.0 |   1004.70 |
| maeos_CaptainSisayComboBullets                                     | CAPTAIN SISAY                               |    2.07 |   999.0 |    858.11 |
| DomSkies4                                                          | BRUSE TARL, BOORISH HERDER,TYMNA THE WEAVER |    2.63 | 1001.75 |    791.51 |
| adnaus02                                                           | SIDISI, UNDEAD VIZIER                       |    1.17 |   843.0 |    786.83 |
| Darrenhabib_Korvold-Fae-Cursed-King-Bring-me-gifts-that-I-can-eat- | KORVOLD, FAE-CURSED KING                    |    2.82 | 1017.75 |    777.08 |
| 4cEdric                                                            | TYMNA THE WEAVER,KYDELE, CHOSEN OF KRUPHIX  |    2.38 |   930.0 |    765.25 |
| cedh-tuvasa-bantchantress                                          | TUVASA THE SUNLIT                           |    2.65 |  926.75 |    729.72 |
| eb5butt                                                            | GENERAL TAZRI                               |    2.85 |  931.75 |    707.40 |
| Materpillar_GolosElfStorm                                          | GOLOS, TIRELESS PILGRIM                     |    2.25 |   811.0 |    680.13 |
| pokken_ephara                                                      | EPHARA, GOD OF THE POLIS                    |    2.83 |   872.0 |    664.54 |
| MarduSkies                                                         | TYMNA THE WEAVER,BRUSE TARL, BOORISH HERDER |    2.78 |   859.0 |    660.77 |
| pokken_Maelstrom Wanderer Elemental Landfall                       | MAELSTROM WANDERER                          |    3.44 |  975.75 |    655.30 |
| domwanderer00                                                      | MAELSTROM WANDERER                          |    3.97 | 1067.75 |    636.84 |
| wanderer02                                                         | MAELSTROM WANDERER                          |    3.88 |   946.0 |    575.65 |
| hapatra00                                                          | HAPATRA, VIZIER OF POISONS                  |    3.05 |  777.75 |    567.68 |
| ebkrenko01                                                         | KRENKO, MOB BOSS                            |    2.84 |  740.75 |    563.45 |
| pokken_Golos_blue_workshop                                         | GOLOS, TIRELESS PILGRIM                     |    3.48 |  843.75 |    561.64 |
| brago00                                                            | BRAGO, KING ETERNAL                         |    2.89 |  716.75 |    540.02 |
| ebbrago01                                                          | BRAGO, KING ETERNAL                         |    3.48 |   792.0 |    527.20 |
| mark_jin                                                           | JIN-GITAXIAS, CORE AUGUR                    |    3.41 |  766.75 |    518.36 |
| locust3                                                            | THE LOCUST GOD                              |    2.86 |  678.75 |    514.34 |
| wanderp                                                            | MAELSTROM WANDERER                          |    4.23 |  905.75 |    510.60 |
| domrashmi00                                                        | RASHMI, ETERNITIES CRAFTER                  |    3.33 |  711.75 |    489.69 |
| eboona01                                                           | OONA, QUEEN OF THE FAE                      |    3.26 |  670.75 |    468.52 |
| ebangrycyn01                                                       | ARCHANGEL AVACYN                            |    3.58 |   688.0 |    447.85 |
| narset01                                                           | NARSET, ENLIGHTENED MASTER                  |    3.80 |   720.0 |    446.05 |
| pokken_tymna_ludevic                                               | TYMNA THE WEAVER,LUDEVIC, NECRO-ALCHEMIST   |    2.48 |   534.0 |    432.60 |
| Plushpenguin_xen_bm                                                | XENAGOS, GOD OF REVELS                      |    3.37 |   612.0 |    417.40 |
| ebzada01                                                           | ZADA, HEDRON GRINDER                        |    2.84 |  539.75 |    410.56 |
| RUMPY5897_daxos                                                    | DAXOS THE RETURNED                          |    2.95 |   548.0 |    408.08 |
| vaev                                                               | VAEVICTIS ASMADI, THE DIRE                  |    3.61 |   618.0 |    399.58 |
| ebpurph01                                                          | PURPHOROS, GOD OF THE FORGE                 |    3.34 |   581.0 |    398.86 |
| dom_zegfixes00                                                     | PRIME SPEAKER ZEGANA                        |    3.48 |   590.0 |    392.73 |
| tromo                                                              | TROMOKRATIS                                 |    3.08 |   540.0 |    391.74 |
| ebvorel01                                                          | VOREL OF THE HULL CLADE                     |    3.19 |   533.0 |    377.90 |
| ebragemath01                                                       | OMNATH, LOCUS OF RAGE                       |    3.54 |   564.0 |    370.44 |
| grit_purph01                                                       | PURPHOROS, GOD OF THE FORGE                 |    3.36 |   528.0 |    360.90 |
| kalemne                                                            | KALEMNE, DISCIPLE OF IROAS                  |    2.97 |  463.75 |    343.98 |
| fishsticks                                                         | KUMENA, TYRANT OF ORAZCA                    |    2.74 |  439.75 |    340.76 |
| tasigur01                                                          | TASIGUR, THE GOLDEN FANG                    |    3.46 |  493.75 |    330.13 |
| zetalpa                                                            | ZETALPA, PRIMAL DAWN                        |    3.18 |  456.75 |    324.52 |
| domtromo00                                                         | TROMOKRATIS                                 |    3.58 |   498.0 |    324.17 |
| ebanimar01                                                         | ANIMAR, SOUL OF ELEMENTS                    |    3.82 |   525.0 |    323.79 |
| domghired                                                          | GHIRED, CONCLAVE EXILE                      |    3.72 |  506.75 |    319.64 |
| mathas                                                             | MATHAS, FIEND SEEKER                        |    3.52 |   483.0 |    318.66 |
| ebthromok00                                                        | THROMOK THE INSATIABLE                      |    3.89 |  521.75 |    316.78 |
| domdaxos00                                                         | DAXOS THE RETURNED                          |    3.30 |  450.75 |    312.15 |
| Dragoon_Golos_Erratic_Pilgrimages                                  | GOLOS, TIRELESS PILGRIM                     |    4.50 |   579.0 |    308.97 |
| xantcha                                                            | XANTCHA, SLEEPER AGENT                      |    3.26 |  440.75 |    307.86 |
| mishra01                                                           | MISHRA, ARTIFICER PRODIGY                   |    3.81 |  493.75 |    305.20 |
| RUMPY5897_proliferate                                              | GHIRED, CONCLAVE EXILE                      |    3.59 |   467.0 |    303.31 |
| RUMPY5897_FlavourTown                                              | EUTROPIA THE TWICE-FAVORED                  |    2.11 |  353.75 |    302.32 |
| 3Drinks_Kairi-Sane                                                 | KARI ZEV, SKYSHIP RAIDER                    |    2.83 |   393.0 |    299.50 |
| oloro03                                                            | OLORO, AGELESS ASCETIC                      |    3.42 |   442.0 |    298.16 |
| meren01                                                            | MEREN OF CLAN NEL TOTH                      |    3.48 |  447.75 |    298.05 |
| lurking_taniwha00                                                  | TANIWHA                                     |    3.71 |  467.75 |    295.71 |
| grit_norin01                                                       | NORIN THE WARY                              |    3.35 |  425.75 |    291.64 |
| Materpillar_GolosWorstManaCurve                                    | GOLOS, TIRELESS PILGRIM                     |    6.42 |  652.75 |    276.89 |
| golos-5c-screwsabout                                               | GOLOS, TIRELESS PILGRIM                     |    5.70 |   613.0 |    274.42 |
| iroas                                                              | IROAS, GOD OF VICTORY                       |    3.28 |   391.0 |    271.94 |
| purph11                                                            | PURPHOROS, GOD OF THE FORGE                 |    3.24 |   383.0 |    268.67 |
| doran00                                                            | DORAN, THE SIEGE TOWER                      |    3.34 |   384.0 |    263.62 |
| seton00                                                            | SETON, KROSAN PROTECTOR                     |    3.35 |   360.0 |    246.60 |
| rorseph_mr_dead_man                                                | JARAD, GOLGARI LICH LORD                    |    3.36 |   355.0 |    242.65 |
| ebxenagod02                                                        | XENAGOS, GOD OF REVELS                      |    4.54 |  455.75 |    241.32 |
| zegana                                                             | PRIME SPEAKER ZEGANA                        |    3.85 |  382.75 |    234.48 |
| sheoldred14                                                        | SHEOLDRED, WHISPERING ONE                   |    3.51 |  353.75 |    233.91 |
| nahiri02                                                           | NAHIRI, THE LITHOMANCER                     |    3.21 |   331.0 |    233.69 |
| RUMPY5897_orochi                                                   | PATRON OF THE OROCHI                        |    3.67 |   354.0 |    225.82 |
| rorseph_wrath_of_nature                                            | URO, TITAN OF NATURE'S WRATH                |    2.71 |  288.75 |    224.96 |
| Dragonlovers Golos Tireless Pilgrim                                | GOLOS, TIRELESS PILGRIM                     |    3.92 |   360.0 |    217.12 |
| gahiji03                                                           | GAHIJI, HONORED ONE                         |    3.41 |   321.0 |    217.01 |
| zur01                                                              | ZUR THE ENCHANTER                           |    2.76 |   278.0 |    214.63 |
| RUMPY5897_PAPER-Marchesa-EDH                                       | MARCHESA, THE BLACK ROSE                    |    3.22 |  292.75 |    206.24 |
| ragemath01                                                         | OMNATH, LOCUS OF RAGE                       |    3.76 |  328.75 |    205.51 |
| kozilek                                                            | KOZILEK, THE GREAT DISTORTION               |    4.51 |  375.75 |    200.12 |
| edric01                                                            | EDRIC, SPYMASTER OF TREST                   |    2.26 |   234.0 |    195.96 |
| darien06                                                           | DARIEN, KING OF KJELDOR                     |    3.20 |  254.75 |    180.24 |
| sram                                                               | SRAM, SENIOR EDIFICER                       |    2.95 |  235.75 |    175.55 |
| zozu03                                                             | ZO-ZU THE PUNISHER                          |    3.30 |   250.0 |    173.13 |
| spellzirilan01                                                     | ZIRILAN OF THE CLAW                         |    4.79 |   322.0 |    162.91 |
| zacama-boring                                                      | ZACAMA, PRIMAL CALAMITY                     |    4.31 |  292.75 |    162.30 |
| horobi01                                                           | HOROBI, DEATH'S WAIL                        |    3.13 |   226.0 |    162.26 |
| Materpillar_ChromiumArtifactGoodstuff                              | CHROMIUM                                    |    4.09 |  270.75 |    157.28 |
| Materpillar_Shirei                                                 | SHIREI, SHIZO'S CARETAKER                   |    3.03 |  185.75 |    136.13 |
| Darrenhabib_Niv-Mizzet-Reborn-Astral-Living-Genesis                | NIV-MIZZET REBORN                           |    4.68 |  260.75 |    134.51 |
| rorseph_colossal_kaiju_revue                                       | ANIMAR, SOUL OF ELEMENTS                    |    3.70 |  198.75 |    125.93 |
| RUMPY5897_simon-aurelia2                                           | AURELIA, THE WARLEADER                      |    3.73 |  193.75 |    121.94 |
| RUMPY5897_FUTURE-Mayael-EDH                                        | MAYAEL THE ANIMA                            |    4.73 |   235.0 |    120.15 |
| kemba04                                                            | KEMBA, KHA REGENT                           |    2.24 |  136.75 |    114.84 |
| simonscion02final                                                  | SCION OF THE UR-DRAGON                      |    4.67 |   206.0 |    106.46 |
| 2005                                                               | DRAGONLORD DROMOKA                          |    4.17 |   182.0 |    103.92 |
| hugslug                                                            | GROTHAMA, ALL-DEVOURING                     |    3.92 |   166.0 |    100.11 |
| feldon04                                                           | FELDON OF THE THIRD PATH                    |    4.03 |  169.75 |     99.91 |
| RUMPY5897_EMO-Paper-EDH                                            | RAVOS, SOULTENDER,TANA, THE BLOODSOWER      |    3.52 |  150.75 |     99.46 |
| RUMPY5897_joehydra                                                 | ROSHEEN MEANDERER                           |    3.11 |  137.75 |     99.31 |
| xenagod04                                                          | XENAGOS, GOD OF REVELS                      |    4.38 |  169.75 |     92.77 |
| pillow04                                                           | RUNE-TAIL, KITSUNE ASCENDANT                |    3.37 |  128.75 |     87.81 |
| griffins01                                                         | ZUBERI, GOLDEN FEATHER                      |    3.50 |  125.75 |     83.33 |
| skittles03                                                         | SKITHIRYX, THE BLIGHT DRAGON                |    3.46 |  123.75 |     82.74 |
| RUMPY5897_PAPER-Gisa-EDH                                           | GHOULCALLER GISA                            |    3.73 |   130.0 |     81.82 |
| Dragonlovers Molimo Maro Sorcerer                                  | MOLIMO, MARO-SORCERER                       |    3.92 |   124.0 |     74.78 |
| Materpillar_TheUrDragonChangelingTribal                            | THE UR-DRAGON                               |    3.89 |   94.75 |     57.53 |
| Dragonlovers Lathliss Dragon Queen                                 | LATHLISS, DRAGON QUEEN                      |    4.75 |    98.0 |     49.93 |
| materpillar_GishathDinoBeats                                       | GISHATH, SUN'S AVATAR                       |    4.94 |   87.75 |     43.30 |
| omnath03                                                           | OMNATH, LOCUS OF MANA                       |    3.66 |    24.0 |     15.34 |
| Dragonlovers Virtus and Gorm                                       | GORM THE GREAT,VIRTUS THE VEILED            |    3.73 |    17.0 |     10.70 |
| Dragonlovers Monowhite Legends                                     | AKROMA, ANGEL OF WRATH                      |    4.39 |   15.75 |      8.59 |
| Materpillar_LazavMultifarious                                      | LAZAV, THE MULTIFARIOUS                     |    2.72 |    10.0 |      7.78 |
| happylands00                                                       | KARONA, FALSE GOD                           |    3.14 |   10.75 |      7.70 |
| flame                                                              | JIWARI, THE EARTH AFLAME                    |    3.37 |     7.0 |      4.77 |
+--------------------------------------------------------------------+---------------------------------------------+---------+---------+-----------+
Last edited by pokken 4 years ago, edited 34 times in total.

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

Hooray! Now just fifty billion iterations to go :P

Will likely need copious commander scoring eventually. As an example nitpick, why's Kenrith there, but not Golos? They both win just as well infinite mana and are 5c.

Feature request - seeing how uploading a list in text is dependent on you crunching it, ingest it directly within the google doc somehow? And probably encourage google doc copying for individual running?
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Rumpy5897 wrote:
4 years ago
Hooray! Now just fifty billion iterations to go :P

Will likely need copious commander scoring eventually. As an example nitpick, why's Kenrith there, but not Golos? They both win just as well infinite mana and are 5c.

Feature request - seeing how uploading a list in text is dependent on you crunching it, ingest it directly within the google doc somehow? And probably encourage google doc copying for individual running?
I didn't get that far in the commander list lol, Golos should definitely be in there.

Got some bugs already in that the way I ingested the card_data doesn't handle duplicates--data modeling is fundamental boys ;) I wanted it indexed by name so it's super fast, guess I am gonna just have to have two dictionaries instead of one big dict to be clean.

I think making a drop folder for them is a good idea; right now I am keeping a folder of them locally so I can just run them really fast - ideally I'd like to have a very large dataset that I can run and compare over and over again.

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

Hey, I'd still like to see the scores of stuff :P

How much do you need? I can easily send you every single thing I've ever built, plus I'm pretty sure I could bug my playgroup to do the same. The question becomes do you just want lists for the sake of having lists, or do you need external information on the builds too.
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
darrenhabib
Posts: 1812
Joined: 4 years ago
Pronoun: Unlisted

Post by darrenhabib » 4 years ago

I do feel like your target for everything at the moment is "how much of my deck has some cEDH staples?".
And in that respect its never going to be a true "rate my deck".

You could literally have a deck that has zero points and be better than a deck that happens to score high because it has Kenrith the Returned King at the helm even though its complete jank.

If looking for the most competitive decks to find out benchmark "top results" you should run it against a number of them listed here => https://cedh-decklist-database.xyz/primary.html

Another resource you can use is http://tappedout.net/mtg-decks/list-mul ... s-by-tier/

I do think the literally points system is just a bit too ambitious and definitely far too subjective, as I would argue almost every card value you've assigned. They just feel a little bit too arbitrary. I consider myself an expert at commander and I know personally I would never be able to assign points +10/-10 (probably more realistically +20/-20) in a meaningful way, and therefore will be of no help to this dataset.
I get that you are just trying to get things into a ball-park, but at the end of the day if users of the system don't agree with the points then you'll never have a system that people are willing to put stock into.

I'll reiterate from that other thread that I do think its better to recognize that the best you can do is put cards into a ballpark, those being "Maximum power", "Competitive", "High power", "Mid power", "Casual", if going by the commander tiered list way of labeling cards.
Then you show decks based upon these numbers and its going to be actually far more accurate a system in the long run.

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Rumpy5897 wrote:
4 years ago
Hey, I'd still like to see the scores of stuff :P

How much do you need? I can easily send you every single thing I've ever built, plus I'm pretty sure I could bug my playgroup to do the same. The question becomes do you just want lists for the sake of having lists, or do you need external information on the builds too.
No info, send it all in that format and I'll get it in. I'll PM you my email address.

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

darrenhabib wrote:
4 years ago
I do feel like your target for everything at the moment is "how much of my deck has some cEDH staples?".
And in that respect its never going to be a true "rate my deck".

You could literally have a deck that has zero points and be better than a deck that happens to score high because it has Kenrith the Returned King at the helm even though its complete jank.

If looking for the most competitive decks to find out benchmark "top results" you should run it against a number of them listed here => https://cedh-decklist-database.xyz/primary.html

Another resource you can use is http://tappedout.net/mtg-decks/list-mul ... s-by-tier/

I do think the literally points system is just a bit too ambitious and definitely far too subjective, as I would argue almost every card value you've assigned. They just feel a little bit too arbitrary. I consider myself an expert at commander and I know personally I would never be able to assign points +10/-10 (probably more realistically +20/-20) in a meaningful way, and therefore will be of no help to this dataset.
I get that you are just trying to get things into a ball-park, but at the end of the day if users of the system don't agree with the points then you'll never have a system that people are willing to put stock into.

I'll reiterate from that other thread that I do think its better to recognize that the best you can do is put cards into a ballpark, those being "Maximum power", "Competitive", "High power", "Mid power", "Casual", if going by the commander tiered list way of labeling cards.
Then you show decks based upon these numbers and its going to be actually far more accurate a system in the long run.
If I don't like how points works out the code is pretty flexible, easy enough to change to a ranking. I feel pretty comfortable with my rough point ballparks at this point.

I'll tell you, re: Kenrith the Returned King -- it doesn't take much to make him utterly savage casual decks. Much like Tymna and Golos the decks are just hard to screw up. I am not going to obsess over the outliers of chair tribal with Kenrith or whatever.

I'm pretty confident I can get this to be 80% correct at assessing a 0-10 ranking for a deck with two major iterations, one of raw card values and two of adding combos.

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

In case any of ya'll are sitting on a fat stash of Cockatrice files and have Python, this Python snippet converts all the .cod files in the same folder as the script into matching pokken-formatted text files. This assumes the commander placed in the sideboard and no further sideboard cards. I'll collect my group's decks and toss you a big email tomorrow.

Code: Select all

from xml.etree.ElementTree import parse
import os

def print_section(root, zone, fid):
	for subroot in root:
		if 'name' in subroot.attrib:
			if subroot.attrib['name'] == zone:
				for child in subroot:
					fid.write(child.attrib['number']+' '+child.attrib['name']+'\n')

for filename in os.listdir('.'):
	if not filename.endswith('.cod'):
		continue
	with open(os.path.splitext(filename)[0]+'.txt', 'w') as fid:
		tree = parse(filename)
		root = tree.getroot()
		#sideboard = commander location
		print_section(root, 'side', fid)
		fid.write('\n')
		#main = deck proper
		print_section(root, 'main', fid)
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
BaronCappuccino
Posts: 246
Joined: 4 years ago
Answers: 1
Pronoun: he / him
Location: Quiet Corner

Post by BaronCappuccino » 4 years ago

Down the line, would it be possible to account for commanders such as Zada who not only can, but have to, use complete and utter trash to work, and are quite competent while doing so? The best measure of a card is in its environment. Since my Chandra list was just too clunky, I've been working on Torbran, and he too, makes use of a bunch of cards that would typically underperform in Commander. There's no shortage of such commanders in the format. All that said, this effort is going to be awesome for deck strategies named after their color combination. If you're looking for, and there's nothing wrong with it, the components of a generalized good stuff deck, you'll find what you need here.

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

BaronCappuccino wrote:
4 years ago
Down the line, would it be possible to account for commanders such as Zada who not only can, but have to, use complete and utter trash to work, and are quite competent while doing so? The best measure of a card is in its environment. Since my Chandra list was just too clunky, I've been working on Torbran, and he too, makes use of a bunch of cards that would typically underperform in Commander. There's no shortage of such commanders in the format. All that said, this effort is going to be awesome for deck strategies named after their color combination. If you're looking for, and there's nothing wrong with it, the components of a generalized good stuff deck, you'll find what you need here.
Yes, absolutely. The next step is adding card combinations.

First step, I can make Zada worth 200 points by herself as a commanderjust to illustrate that she has a lot of raw power to her strategy. That ought to capture it for most of the implementations. Then the main differentiation between her and other better Zada decks is if they've got the necessary good stuff plumbing like mana crypt and gauntlet of might.

Easy enough to transition Zada's hypothetical 200 point cushion to a list of 10 or 20 powerful interactions but I feel like just giving a raw point value will capture the power of buildaround commanders to the 80/20 rule of design most likely.

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Anyone is welcome to attach stuff to their posts here and I'll get them, or PM me and I'll send you my email. Once we have a sufficiently large dataset I think we can make some major refinements pretty fast.

I'd like to see a big dataset; if I have to I'll write something that crawls Tappedout, or maybe I'll contact Feyd or the boss over at EDHrec.

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

If you're a python programmer and want to lols at my sloppy code I can send you a bitbucket invite as well, just Pm me and I'll get it out there.

also lol @ myself for forgetting to normalize case before comparisons...that fixed some stuff, and also got some small updates to the dataset based on adding some more decks.

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

So I just remembered that there is a thing called a zip archive. Figured I may as well publicly dump the lists in case anyone else wants to ingest them for anything else later. This is a collection of 85 decks, some currently seeing play in my playgroup, others being abandoned fluke ideas from 2014. Power ranges from aggressively nonfunctional trash to some pretty pubstompy stuff.
Attachments
deckdump.zip
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
Rorseph
Compleat Fool
Posts: 147
Joined: 4 years ago
Pronoun: they / them
Location: The Sixth Sphere of Phyrexia
Contact:

Post by Rorseph » 4 years ago

I'm curious to see if my most successful decks are as good as I think they are. Thank you in advance, @pokken!

"From void evolved Phyrexia. Great Yawgmoth, Father of Machines, saw its perfection. Thus The Grand Evolution began."
—Phyrexian Scriptures


Aurelia | Maelstrom Wanderer | Primer: Thassa | Uro | Primer: Volrath

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

I scored all of these, thanks guys. I probably need to go through and give them some more meaningful titles and such but no time for that today.


Rorseph, since yours are your decks, here's yours specifically.

Deck name: rorseph_wrath_of_nature Points: 252
Deck name: rorseph_mr_dead_man Points: 190
Deck name: rorseph_colossal_kaiju_revue Points: 162

My read on skimming your decks is that I might need to add some points for various creature tutor effects, and that animar's power level as a commander may be slightly underrated until I get the synergy data started.

Overall all three decks look fairly synergy driven; I think if I'm off it's not by *that* far though.

On my Todo list for today or tomorrow:
* Spit out a tabular report of what each deck's score breakdown looks like (requires changing the card storage for each deck object into a tuple or some other data rich structure so I can store the data for each card instead of just tabulate it)

* Start working on getting a full dataset of cards so I can plot curves and add a multiplier for curve

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Rumpy's highest scoring deck was DomSkies4.txt @ 771 pts, a bruse and tymna deck loaded with fast artifact mana, powerful interaction and tutors and hatebears. Its lack of traditionally strong win condition is the main thing that concerns me about the deck's high ranking. That said, it's a well tuned deck with lots of powerful effects, and surely could close out the game fairly quickly with combat damage, particularly nasty is the infect+bruse kill off of exoskeleton. That could come out of nowhere.

I believe it is a very good test case for refining the algorithm/points and I will spend quite a bit of time looking. The key takeaways I have from that are:

* I am undervaluing strong win conditions
* I may need to add some of the hatebears to the interaction list
* Some medium power interactive spells probably could get some number of points (e.g. terminate)
* Tymna may be slightly overcosted?

I do feel like the algorithm is correctly identifying most mid-powered decks a 200-800 points which is a good start.

The key to being able to tell which mid powered decks are more powerful than each other is going to be understanding curve and synergy, and those things are going to take time to gather the dataset.

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

I'd be most interested in: daxos.txt, feather.txt, FlavourTown.txt, orochi.txt, proliferate.txt, EMO-Paper-EDH.txt, FUTURE-Mayael-EDH.txt, PAPER-Gisa-EDH.txt, PAPER-Marchesa-EDH.txt, simon-aurelia2.txt and joehydra.txt, as those are the largely accurate meta decks. Assuming this wouldn't be too much trouble :P
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Rumpy5897 wrote:
4 years ago
I'd be most interested in: daxos.txt, feather.txt, FlavourTown.txt, orochi.txt, proliferate.txt, EMO-Paper-EDH.txt, FUTURE-Mayael-EDH.txt, PAPER-Gisa-EDH.txt, PAPER-Marchesa-EDH.txt, simon-aurelia2.txt and joehydra.txt, as those are the largely accurate meta decks. Assuming this wouldn't be too much trouble :P
Deck name: RUMPY5897_feather Points: 434
Deck name: RUMPY5897_daxos Points: 387
Deck name: RUMPY5897_proliferate Points: 381
Deck name: RUMPY5897_orochi Points: 284
Deck name: RUMPY5897_FlavourTown Points: 283
Deck name: RUMPY5897_PAPER-Marchesa-EDH Points: 177
Deck name: RUMPY5897_FUTURE-Mayael-EDH Points: 159
Deck name: RUMPY5897_EMO-Paper-EDH Points: 115
Deck name: RUMPY5897_joehydra Points: 110
Deck name: RUMPY5897_PAPER-Gisa-EDH Points: 90
Deck name: RUMPY5897_simon-aurelia2 Points: 65

I also added them to the OP.

At first glance they identify that I'm missing a few cards like tooth and nail, skullclamp, rings of brighthearth and thousand-year elixir and many of these decks would rate higher with some synergy points.

But again I think we're in the right ballpark for many of these.

Additional note: I also added the bitbucket URL to the OP in case anyone is interested in looking at a particular deck (in the decks folder).
https://bitbucket.org/pokken/cmdrdeckrank

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

I'm not fully sold on the power rankings, that Aurelia's caused lots more trouble than the Ghired for example. Still, the fact even the highest ranked of these is below your Ephara makes sense to me. Might just need more granularity on some cards you're missing.
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

Rumpy5897 wrote:
4 years ago
I'm not fully sold on the power rankings, that Aurelia's caused lots more trouble than the Ghired for example. Still, the fact even the highest ranked of these is below your Ephara makes sense to me. Might just need more granularity on some cards you're missing.
Yeah, I think it's very clear that the dataset is nowhere near good enough. I think there's a power band of high to CEDH that it will be pretty accurate on, but the lower power level stuff is a complete crapshoot.

I think one thing that would help more than anything is to get a list of say, the 500 most played commanders, and give them points. Aurelia, the war Leader is a lot of raw power in the command zone even if her deck is bad - extra combat steps are big.

The synergy scores are going to take forever to get a good dataset, but I can certainly finish the code for them next.

User avatar
Rorseph
Compleat Fool
Posts: 147
Joined: 4 years ago
Pronoun: they / them
Location: The Sixth Sphere of Phyrexia
Contact:

Post by Rorseph » 4 years ago

pokken wrote:
4 years ago
My read on skimming your decks is that I might need to add some points for various creature tutor effects, and that animar's power level as a commander may be slightly underrated until I get the synergy data started.
I didn't realize that creature tutors were missing until just now! I agree that Animar might be slightly under, but I think that might even be when synergy gets sorted.
pokken wrote:
4 years ago
Overall all three decks look fairly synergy driven; I think if I'm off it's not by *that* far though.
Absolutely agreed. Those decks are definitely synergy driven which is why I was most curious about them. I agree. I imagined them to be in the 250 (plus or minus 50) range. They work, but they're not astounding.
"From void evolved Phyrexia. Great Yawgmoth, Father of Machines, saw its perfection. Thus The Grand Evolution began."
—Phyrexian Scriptures


Aurelia | Maelstrom Wanderer | Primer: Thassa | Uro | Primer: Volrath

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

I cloned your repo, and took a look at the scores to see if I could catch any other stuff I could feed back. That Xantcha list (xantcha.txt, 303 points) does literal actual nothing, and died as it felt consistently 2+ turns behind whatever else the rest of the table (with the lower-scoring decks) were up to. Meanwhile, hugslug.txt (116 points) was obnoxiously consistent and quick, and was boycotted by the group as a result. It somehow scored less points than 2005.txt, a complete meme of a deck.

This loops back to assessing the functional modules of each deck to get some sort of more grand vision. The fact Xantcha has a Vamp ultimately doesn't mean anything.
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
Rorseph
Compleat Fool
Posts: 147
Joined: 4 years ago
Pronoun: they / them
Location: The Sixth Sphere of Phyrexia
Contact:

Post by Rorseph » 4 years ago

Rumpy5897 wrote:
4 years ago
This loops back to assessing the functional modules of each deck to get some sort of more grand vision.
This is going to be the part that takes the most work, and, ultimately, where all the heavy lifting will occur. I wish I had more free time at the moment (home ownership kinda sucks, btw) because I'd volunteer to get a start on the synergy entries from the samples we've gathered so far.
"From void evolved Phyrexia. Great Yawgmoth, Father of Machines, saw its perfection. Thus The Grand Evolution began."
—Phyrexian Scriptures


Aurelia | Maelstrom Wanderer | Primer: Thassa | Uro | Primer: Volrath

User avatar
Rumpy5897
Tuner of Jank
Posts: 1854
Joined: 4 years ago
Pronoun: he / him

Post by Rumpy5897 » 4 years ago

Synergies are one thing, and would likely need to happen at a lower level than this. Once there'd be scores for cards, synergies, what have you, those scores would then get lumped into draw, ramp, interaction, tutoring, winning, whatever else. And then the scores of those would somehow made to interact with each other, possibly with the utility stuff (draw, ramp, tutoring) having a multiplicative effect on the "business" side of things? Would also probably need to account for curve somewhere around here in combination with ramp, and probably also land count? This overarching concept would help out in cases like that do-nothing Xantcha with the Vamp, or a deck I remember from a local group that was every single combo the guy could fit into the 99 with pretty much zero draw, ramp and tutoring.

I'm spitballing stuff here by the way. I'm in that awkward spot where I'm scientific enough to not feel comfortable with just pulling up my sleeves and going all heuristic here, with arbitrary thresholds and multipliers and stuff, but that might well be the correct course of action. Simultaneously I'm not scientific enough to actually pull out some appropriate modelling approach. The beauty of being a computational jack of all trades who gets to work with biologists, I guess.
 
EDH Primers (click me!)
Deck is Kill Club
Show
Hide

User avatar
pokken
Posts: 6276
Joined: 4 years ago
Answers: 2
Pronoun: he / him

Post by pokken » 4 years ago

So what I think is that we can get a really good baseline by looking at raw card power and then baseline synergy of pairs or groups of cards. If a deck has kiki as commander and zealous conscripts in it that means something even if the rest is jank.

What I currently have planned is card pair synergies and commander card pair synergies, and then a curve multiplier that scales logarithmically; I forget the formula but it's in one of the spreadsheets.

What I expect is that a series of multiplicative algorithms can be developed based on the modules that work kind of like curve; but I truly believe that just looking at the cards, curve and card pairs will yield 80% accuracy if the dataset is big enough.

My intention code wise is to make the multipliers in the deck class so that you can get score adjusted by each multiplier to compare and contrast them.

I think the three biggest multipliers are curve, ramp and tutoring with card advantage as the fourth. So I intend to work on them in that order.

One of the reasons for categorizing the cards as I add them is to allow for that to be added easily; totaling the points in tutoring for example should be a good way to compute a multiplier for that module.
Last edited by pokken 4 years ago, edited 2 times in total.

Post Reply Previous topicNext topic

Return to “Commander”