This is an idea that I've been thinking about, and I'm interested to hear people's thoughts on it.
I think it would be cool to create an application/bot that is capable of automatically building kick-*** sealed decks or drafting picks that would make an awesome build. The goal would be to basically try to emulate the decision process of an expert limited player, the same way a chess simulator emulates the behavior of expert chess players. This would rely on creating a very intelligent set of rules that the bot would use to make decisions.
A few of the things that might go into the programs decision-making process would be:
- Obtaining a proper mana curve
- Obtaining a proper composition of card types (enough creatures, control, ect)
- Identifying card strength (ie, is a given card a bomb or crap? does it play well with other cards in deck?)
- Archetypes for the given format
- many more
So... why would we want to create this? Well, besides the fact that you'd feel like a total bad-*** if you managed to pull of a program that could do this *WELL*, there are two other viable uses I see for such a tool:
1) Improved Draft Simulators (now you're playing against draft bots who actually know what they are doing)
2) MTGO limited players who want help in drafts/sealed (heck, or even have the bot do the whole thing for them if its good enough).
Where to start?? The process seems like it would be overwhelming, so to start I'd limit the scope of the program to a single format (ex. M13 6 pack sealed). Then start with a simple rule-set to start out, then expand the rule-set, then expand to other formats if it really got down well.
Soooo, thoughts? What obstacles might make this task difficult/impossible, have there been any other attempts to build such a program, what other factors might need to be considered?
This is obviously in very, very early stages of brainstorming, but is something I'd consider attempting (I'm a programmer), if I had enough support and had a strong enough vision for what it would be. Also, if anyone wants to dedicate some real time and collaborate the development with me (maybe with strong grasp of probability/statictics/programming/AI and limited MTG), I'd be happy to have the help. If it was REALLY good there might be money to be made selling it to MTGO limited players (I know for a fact that they are willing to spend good money on MTG )
The only part I can really think through right now is draft pick selection. For drafting, what we need is a huge sample size of simulated drafts and the 'best' or 'exceptional' picks (per set), then we train a simple machine learning algorithm with those selections. That isn't too bad on it's own.
Building the deck seems to be an extremely harder process. We could train it in a similar way but getting the proper curve and ratios would be hard to analyze, especially with more complex card reactions.
It would definitely be cool to try the machine learning route if a reliable data set of drafts could be collected. I doubt that such a data set exists already, so it would probably have to be created from scratch. It would also be far more valuable to have pick-by-pick records of the draft (ie, what choices did the drafter have in each pick) than just a snapshot of the end-result of the draft. You could record the results of an 'expert' drafting on a draft sim (is that what you were referring to?). It would also be preferable to have some evaluation of the quality of each draft (ie, how strong is the final pool). You could have the drafter 'rate' the end result himself (though this may not be so reliable).
Assuming the expert could draft at a rate of 1 draft every 10 minutes (this would be 1 pick every 13 seconds for a 3 pack draft), it would take about 17 hours for every 100 drafts. Not sure how large a sample size would be needed to start getting good results...
Another approach I was thinking about was creating an expert system by encoding rules, logic and weighted values for different cards and combinations. This would rely on careful consideration of all the factors that go into making draft or deck building decisions as well as how all the cards in the format play together. The more I think about it (especially the consideration of card combos and synergy) the more complex the problem seems... The idea of feeding a large data set into a learning algorithm seems so much easier, though I'm sure that would have its own challenges (besides the data colleciton part)...
it would be nice if we could "take" the deckbuilding algorithm used on Magic: Duels... it takes the few key cards you've added, and adds the rest of the cards from your collection.
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I think it would be cool to create an application/bot that is capable of automatically building kick-*** sealed decks or drafting picks that would make an awesome build. The goal would be to basically try to emulate the decision process of an expert limited player, the same way a chess simulator emulates the behavior of expert chess players. This would rely on creating a very intelligent set of rules that the bot would use to make decisions.
A few of the things that might go into the programs decision-making process would be:
- Obtaining a proper mana curve
- Obtaining a proper composition of card types (enough creatures, control, ect)
- Identifying card strength (ie, is a given card a bomb or crap? does it play well with other cards in deck?)
- Archetypes for the given format
- many more
So... why would we want to create this? Well, besides the fact that you'd feel like a total bad-*** if you managed to pull of a program that could do this *WELL*, there are two other viable uses I see for such a tool:
1) Improved Draft Simulators (now you're playing against draft bots who actually know what they are doing)
2) MTGO limited players who want help in drafts/sealed (heck, or even have the bot do the whole thing for them if its good enough).
Where to start?? The process seems like it would be overwhelming, so to start I'd limit the scope of the program to a single format (ex. M13 6 pack sealed). Then start with a simple rule-set to start out, then expand the rule-set, then expand to other formats if it really got down well.
Soooo, thoughts? What obstacles might make this task difficult/impossible, have there been any other attempts to build such a program, what other factors might need to be considered?
This is obviously in very, very early stages of brainstorming, but is something I'd consider attempting (I'm a programmer), if I had enough support and had a strong enough vision for what it would be. Also, if anyone wants to dedicate some real time and collaborate the development with me (maybe with strong grasp of probability/statictics/programming/AI and limited MTG), I'd be happy to have the help. If it was REALLY good there might be money to be made selling it to MTGO limited players (I know for a fact that they are willing to spend good money on MTG )
Building the deck seems to be an extremely harder process. We could train it in a similar way but getting the proper curve and ratios would be hard to analyze, especially with more complex card reactions.
Assuming the expert could draft at a rate of 1 draft every 10 minutes (this would be 1 pick every 13 seconds for a 3 pack draft), it would take about 17 hours for every 100 drafts. Not sure how large a sample size would be needed to start getting good results...
Another approach I was thinking about was creating an expert system by encoding rules, logic and weighted values for different cards and combinations. This would rely on careful consideration of all the factors that go into making draft or deck building decisions as well as how all the cards in the format play together. The more I think about it (especially the consideration of card combos and synergy) the more complex the problem seems... The idea of feeding a large data set into a learning algorithm seems so much easier, though I'm sure that would have its own challenges (besides the data colleciton part)...