Need your help building a model for META decks

+
I have some experience with machine learning/ai and programming. I started working on a model / program that would find META decks. However, quickly discovered it is very difficult and time consuming.

I am asking this community for some help. Here is what needs to be done.

1. Determine a scoring system for every card. (eg, strength, armor, poison, purify, etc...). Will need input and consensus from this community.
2. Then need volunteers to enter cards / verify entries into a google spreadsheet based on the scoring system. (this is the time consuming part)
3. Determine scoring system for decks, basically it must account for synergy or lack thereof. (eg deck only has 1 poison card)
4. Create the program that parses the data and creates the META decks. I can do this. This is basically done by randomly generating (w/ decision tree) decks and scoring them. The best ones are kept and the worst ones are tossed. This is brute forcing but it works quite well. I have used similar techniques on other projects.

Anyone that contributes will be given a copy of the program AND spreadsheet to do with as they please. I will also share my results (for those that dont want to run the program themselves) with this group prior to making it public. This gives the group an advantage. I would imagine this project would take 2-3 months. I am not sure if it would be performed on this forum or elsewhere (?slack).

I can manage the project, just need help with #1,2,3.
 
This is an interesting idea, and I tried something similar myself. Not with a program but with a simple system of assigning values to cards and then putting them together in a way that maximised synergy, consistency, versatility and a bunch of other factors.

It seemed pretty straightforward at first. If you take Scoia'tael neophyte, which has 2 power and spawns a copy of itself on deploy, you can assign it a value of 4, which is the point ceiling.

However i quickly realized that it isn't possible to assign reasonable values to the utility factor of a lot of cards in the game.

For example Malena, which allows you to move any unit on the board once per turn. she has a power of 4. However her point ceiling is indeterminable because it changes with every game. If you played malena and used her ability to move an enemy cahir from the melee to ranged row, suddenly her value goes from 4 to 84 (assuming that you get 80 points of boost over the entire round) because of her base 4 power plus the 80 points you denied the opponent.

Another example is An Craite Greatsword whose point ceiling is essentially the sum of the amount of damage your hand can deal in a given game and assuming you position him correctly, and also assuming he doesn't get locked/destroyed.

So because the value/score of a card is situational, you wouldn't be able to create a deck this way imo. The most we can do is identify those cards with the greatest floor to ceiling discrepancy, and then test them for how consistently they can achieve those ceilings.

If we look at Greatsword again, what makes it so good (or broken as most call it) is not actually its effect but the consistency with which it can achieve a high ceiling with that effect. This consistency comes from Skellige being given so many options for mass damage (morkvarg, wild boar, hemdall and so on) that it is almost always going to achieve a high ceiling for a low provision cost.

Tl;Dr to properly assess the value of a card aka the score, you would have to evaluate every card both on its own and in the context of the synergies available from the card pool, and then factor in the consistency with you can actually achieve those synergies based on the meta.
 
Not only is step 1 very challenging, step 3 is also problematic.

For one thing, the value a deck can vary greatly based upon what it opposes. A lock deck is strong against engines and weak against point spam. Poison is very powerful against tall decks and very weak against cheap spawn.

It also depends upon the consistency of drawing combos within the round framework. This can potentially be measured, but the probability calculations are overwhelming.
 
Interesting idea, but as others have stated, it's very difficult to achieve. It's already an arduous task to rate a deck because of the various match-ups, but rating cards is even more complex.

What you can try, however, is starting with an established meta deck and swap one card and determine if the deck's performance has improved or not. Then you can switch another card and repeat the process. This gives every card a relative value. Unfortunately, you need countless of permutations and, at some point, when you "break" the deck too much, every subsequent card will have a lower value. This means you have to go back to the established meta deck and rerun it again with other cards, meaning even more permutations.
 

DC9V

Forum veteran
Wow! you're crazy! (in a positive way.) Imagine the synergy part including all possible timings of every single playable card... you would also need to include posibilities of passing (including effects that activate after having passed, like vitality, bleeding, traps, resilience, etc) And then you have invisible synergies (between the player and the opponent): phenomenons like removals - cards that are intended to be removed by the opponent, that often don't play out their ability, in order to prevent negative effects on important cards during round 3... Or slow plays that make passing more likely. So you would need to create keywords like "threat" that can be tagged to a card-ID, or even tags like "slow/fast play" for card combinations...
 
Last edited:
This is a great idea. I believe you want to create that app for new players, to encourage them to build something of their own, rather than copying something blatantly from the web?

I thought you could create an average score for all cards of the same cost. For example every 4P card usually generates 6 value, some could go up to 7, but usually require an interaction with hero abilty or other cards.

So let's say, for SK faction, Pact of value 6 could have a score of 6 - 1 for Banish side effect(you should not use it on GS for example). But this -1 score could be erased if you used Pact card on Dimmun Drakkar or Drummond Berseker(cause this extra power can be converted into huge values for cards like GS, Heymaey Defender or Dagur).

But, how would you evaluate these scores? I'm afraid making this right is impossible or at least very very hard.

I think something of sort "This card is good for..." would be easier. For example, if player is making a MO deck and he picks Beast and his hero ability is Carapace, he would immediately get a suggestion of synergy for him, for example Caranthir(to dupe) or Kayran for Domination.

Just throwing in ideas, maybe these could help you get somewhere?
 
Top Bottom