← Back to context

Comment by armchairhacker

3 years ago

I wonder if you could adopt AlphaZero to this. Something like:

- Train a model using MCTS to play MtG games. The model takes an MtG game state and estimates the “value” (how likely current player will win) and “policy” (ideal move for current player)

- Each “game” has 2 phases: drafting cards to create a deck, and then playing the actual deck. So the model learns to both a create deck and play its deck well

- After training, you input a state where both players have “drafted” their decks, right before the actual gameplay. The output “value” is the power of Player 1’s deck relative to Player 2: ideally you want this to be as close to 0 as possible.

As a bonus you also get a model capable of actually playing MtG.

One nuance is that the “value” are not a complete ordering: comparing the values, you could get a situation where deck A > deck B > deck C > deck A. Honestly this is probably a benefit because it forces the players to use “skill” vs choosing the right deck for the right opponent.