A while ago there was a bevy of articles on Starcity on the subject of Magic Theory. Some of these were very interesting and created some excellent discussion on the threads associated with them. It's a lot of reading, but goodness, it's fascinating if your into that sort of thing. At any rate it got me thinking. And for the past year and half or so I've been thinking about constructing a calculus of magic strategy. Some of the articles linked at the bottom of this post touch on the idea, some even try out some notation, but none seem to really appreciate the potential power of a true formalization of strategy. The assumption of course is that whenever a player recieves priority there is a unique play that player can make (usually passing priority) that is the best play they could make at that moment. This strategy would have to encompass an evaluation of every card left in that player's deck and it's potential interactions with every other card those cards could possible interact with (including a projection on what cards are most likely to be in the opponent's deck). The calculus of Magic Strategy would obviously be too complex to allow calculations to be carried out in game, but I think that the creation of a program that could perform those calculations would have astounding implications. Deck building, metagame predictions, play-by-play analysis, etc. At any rate, I realize that given my other time commitments, and my loathing of computer programming, it's not feasible for me to work this out on my own. So, anyone interested? Here are some of the articles that springboarded this idea (I couldn't find the one that actually used notation):
(I don't know what your mathematical and computing background is like, so apologies if I say things you already know.)
As I see it the main difficulty with a "calculus of magic" is the fact that it seems pretty unlikely to me that there are any worthwhile theorems of Magic.
What I mean by this is: there clearly exists a unique "best play" in any situation which arises because the state space of all finite sequences of Magic card interactions is itself finite. But unfortunately it's vast. Any attempt to get even a computer to do this would require massive compression of that state space into much simpler rules.
Thing is, there is no guarantee that Magic strategy can be expressed in terms of simple rules. Indeed, it would be very surprising if it could since we haven't even managed this with comparatively simple games like Chess or Go.
With this is mind, what is it that you're actually proposing here ? If the intention is to write an AI player for Magic, I suspect you'll find lots of people interested but nobody willing to do the work !
Private Mod Note
():
Rollback Post to RevisionRollBack
--
(I'm on on this site much anymore. If you want to get in touch it's probably best to email me: dom@heffalumps.org)
Forum Awards: Best Writer 2005, Best Limited Strategist 2005-2012
5CB PotM - June 2005, November 2005, February 2006, April 2008, May 2008, Feb 2009
MTGSalvation Articles: 1-20, plus guest appearance on MTGCast #86!
<Limited Clan>
how to know what is in your opponents deck/hand/graveyard/in play of course 2 of those can be gathered but the main one (the deck) cannot... so this might be a bad idea
Private Mod Note
():
Rollback Post to RevisionRollBack
Asking people to remove quotes in their signatures is tyranny! If I can't say something just because someone's feelings are hurt then no one would ever be able to say anything! Political correctness is stupid.
If you're playing in a Pro Tour (Esp. Top 8), don't you know what is in you opponent's deck?
Also, I think this would be to be able to see how this would work for metagaming.
yeah because you bring your laptop with you to a PTQ and know everyone's exact decklist *not meant to be a flame just sarcastic willing to remove if it is taken as a flame*
Private Mod Note
():
Rollback Post to RevisionRollBack
Asking people to remove quotes in their signatures is tyranny! If I can't say something just because someone's feelings are hurt then no one would ever be able to say anything! Political correctness is stupid.
When I finish this stupid HUAC paper/discussion, I'm going to try playing myself in a game with two Tier 1 Type 2 decks, stop in the middle of it, and try to figure out what the optimal play is. I find that if you are programming something, it helps to do what you are programming by hand first.
@DMMBY: What ever gave you the idea that I go to PTQs anyway?
If you somehow development a calculus of Magic, you'd not only be able to assertain the best play for any situation, but you'd also be able to create AI systems that are adept at playing the game. However, that would be an enormous task.
There are too many factors to create a theorem or equation or even substantial set of rules or logic parameters to instruct someone how to play the "perfect" magic game. You can have foreknowledge, you can get misinformation, you can do anything. You'd need a system which could recognise the most popular decks in the format, realize their decklists, then calculate probabilities based on whats in the grave, number of cards in hand, and all kinds of other things you'd know.
So yes, it is possable to devise such a system, but then again, it's possable to generate an AI system to replicate every person on the earth, and the latter would be likely easier than the former.
Private Mod Note
():
Rollback Post to RevisionRollBack
...
I have no extendo-sig. Sorry, I'm just not vain enough to think someone will click on it.
I'm intrigued by this idea (and I would actually attempt to work on it with you if you like).
Obviously you couldn't totally construct something for every possible scenario. So perhaps you would have to "teach" it how to play? (Think of the 20q game on the net.) Or some other method in which it "learns" on its own and develops once it has the basics (like the new "Spore" game).
Unless...well, you'd have to use the base of card advantage.
The problem with this would be the program would need to be taught the interaction of cards (similar to that on Mtgo) in order to be able to create an suitable AI. This is a massive undertaking. The comparitively easy writing of a program for chess and the like stems from the simplicity of the actually game (although the strategy is nowhere near as simple)
I wonder what would happen if you made two of those AI's, made some basic programming, and let them play each other many many times...Would you end up with a random result? Or would they get better?
With the true-vs-false thing, you could base it on something that is constant for all of Magic and not just a specific environment, for example card advantage, or some other such thing.
This way, each color gets something it's uniquely good at and the game will still have interesting play situations, but the computer can easily parse the cards and no subtlety is required. Deck probabilities and card advantage will still enter into calculations.
Private Mod Note
():
Rollback Post to RevisionRollBack
Quote from morgan_coke »
not to be overly picky, but do you mean "weird" to be "wierd"? I'm just trying to figure out if thats a type or if they're just being wierd by making a creature type thats really wierd because its a misspelled wierd.
Like designing a Magic player, from newbie to pro...
In that case, you might even want to take it slower than that, just to see how it works, and if how it works is consistent with what we want at the basic level, before making it more advanced. Something like starting with Basic Land, Vanilla Creatures, Flying Vanilla Creatures, and maybe Burn and +X/+X.
This like the system, by which, players developed AIs for that "Prison Game," where you have to decide whether to defect or remain true. Long story short, there was a tournament, in which many players developed many models. Even though in that example, the choice is much more simple, one of two choices, looking at the development of Blue, the chess supercomputer would probably help us the most, if we were to develop this.
Another thing that I don't understand, is the human act of bluffing, going into combat with your lands open and several cards in hand. Computers can't give their opponent the stare down, to decide whether to chump or not.
This like the system, by which, players developed AIs for that "Prison Game," where you have to decide whether to defect or remain true. Long story short, there was a tournament, in which many players developed many models. Even though in that example, the choice is much more simple, one of two choices, looking at the development of Blue, the chess supercomputer would probably help us the most, if we were to develop this.
Another thing that I don't understand, is the human act of bluffing, going into combat with your lands open and several cards in hand. Computers can't give their opponent the stare down, to decide whether to chump or not.
It's called an Axelrod tournament, I believe. Each strategy, however, was very simple, and the idea was that each strategy play other random strategies a random number of times. The reason that worked was that there is no solution for a non-zero-sum repeated game.
In this case, you have a complex, but zero-sum game. That is, there is always a best play for you to make given the knowledge you have.
Bluffing can be solved by allowing the computer to emulate the thoughts of the other player, and calculate what he is likely to have in hand.
I think we should make a project to program a simple game of Magic that a computer can play.
It's not really freaky to play a computer- chess, for example.
Private Mod Note
():
Rollback Post to RevisionRollBack
Quote from morgan_coke »
not to be overly picky, but do you mean "weird" to be "wierd"? I'm just trying to figure out if thats a type or if they're just being wierd by making a creature type thats really wierd because its a misspelled wierd.
the human act of bluffing, going into combat with your lands open and several cards in hand. Computers can't give their opponent the stare down, to decide whether to chump or not.
Bluffing in this context could be roughly defined (for computational purposes) as follows:
For each card legal in a given format, a bluff is the act of playing in such a way as to indicate that you have that card in hand. This is most relevant when dealing with instant "combat tricks," especially those that have disctinct or easily recognizable mana costs (like Mirrodin's Soul Nova, or Champion's Devouring Rage or Strength of Ceders). "Bluffing" is an appropriate course of action when the bluff can be executed without hampering the further strategic development of your "actual" game.
Obviously that's not a formal definition but it's a start.
Similarly, I think that it's important to formally define other important game concepts before we start trying to "teach" an ANN (artificial neural net) to play. As Geordie Tait demonstrated excellently in his series of articles on card advantage that I linked at the beginning of this thread, the concept is not so easily defined as one might think.
Most of important game concepts have been discussed at enough length that I think arriving at formal definitions for them should not be too difficult.
As for programming a computer to play a simple game of magic. Start very small as per fadeblue's MTGS article "Magic Theory From the Ground Up."
This is most probably an area where I am totally out of my depth. Partly because I have done some reading and know that I don't know very much. Not that that will stop me from speaking my mind
I believe that the first step in a venture like this is to create a consistent notation of the concepts. This will firstly clarify and define the concepts that have been mentioned above and those still unmentioned. Secondly it will clarify the inetarctions and operations between the concepts.
Once this notation is in place real life games can be anlaysed based on this notation. As the analysises (how would you say yhis ) are evaluated rules might/might not evolve. These rules can then be tested empiricaly (spelling) and verified.
And yes this whole enevour (spelling) is huge but I think worth while and most importantly FUN. I might even get some ideas for a PhD out of it :))
This like the system, by which, players developed AIs for that "Prison Game," where you have to decide whether to defect or remain true. Long story short, there was a tournament, in which many players developed many models. Even though in that example, the choice is much more simple, one of two choices, looking at the development of Blue, the chess supercomputer would probably help us the most, if we were to develop this.
Another thing that I don't understand, is the human act of bluffing, going into combat with your lands open and several cards in hand. Computers can't give their opponent the stare down, to decide whether to chump or not.
What was interesting about that tournament is that the most complex strategy got last place, and the simple "tit for a tat" strategy, punshing your opponent for defecting(doing the negative option), won. Now, I don't expect this strategy to work in Magic, but you could develop about 10 "personalities" and have them play each other with simple decks.
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
http://www.starcitygames.com/php/news/article/6374.html
http://www.starcitygames.com/php/news/article/6432.html
http://www.starcitygames.com/php/news/article/6631.html
As I see it the main difficulty with a "calculus of magic" is the fact that it seems pretty unlikely to me that there are any worthwhile theorems of Magic.
What I mean by this is: there clearly exists a unique "best play" in any situation which arises because the state space of all finite sequences of Magic card interactions is itself finite. But unfortunately it's vast. Any attempt to get even a computer to do this would require massive compression of that state space into much simpler rules.
Thing is, there is no guarantee that Magic strategy can be expressed in terms of simple rules. Indeed, it would be very surprising if it could since we haven't even managed this with comparatively simple games like Chess or Go.
With this is mind, what is it that you're actually proposing here ? If the intention is to write an AI player for Magic, I suspect you'll find lots of people interested but nobody willing to do the work !
(I'm on on this site much anymore. If you want to get in touch it's probably best to email me: dom@heffalumps.org)
Forum Awards: Best Writer 2005, Best Limited Strategist 2005-2012
5CB PotM - June 2005, November 2005, February 2006, April 2008, May 2008, Feb 2009
MTGSalvation Articles: 1-20, plus guest appearance on MTGCast #86!
<Limited Clan>
how to know what is in your opponents deck/hand/graveyard/in play of course 2 of those can be gathered but the main one (the deck) cannot... so this might be a bad idea
Also, I think this would be to be able to see how this would work for metagaming.
Avatar by Grey. Banner by spiderboy4 from High~Light Studios
@DMMBY: What ever gave you the idea that I go to PTQs anyway?
Avatar by Grey. Banner by spiderboy4 from High~Light Studios
That's a good one.
There are too many factors to create a theorem or equation or even substantial set of rules or logic parameters to instruct someone how to play the "perfect" magic game. You can have foreknowledge, you can get misinformation, you can do anything. You'd need a system which could recognise the most popular decks in the format, realize their decklists, then calculate probabilities based on whats in the grave, number of cards in hand, and all kinds of other things you'd know.
So yes, it is possable to devise such a system, but then again, it's possable to generate an AI system to replicate every person on the earth, and the latter would be likely easier than the former.
I have no extendo-sig. Sorry, I'm just not vain enough to think someone will click on it.
And, I don't even expect getting to a programming part of this for another year or so. I actually have to try it by hand first.
Avatar by Grey. Banner by spiderboy4 from High~Light Studios
Obviously you couldn't totally construct something for every possible scenario. So perhaps you would have to "teach" it how to play? (Think of the 20q game on the net.) Or some other method in which it "learns" on its own and develops once it has the basics (like the new "Spore" game).
Unless...well, you'd have to use the base of card advantage.
Avatar by Grey. Banner by spiderboy4 from High~Light Studios
With the true-vs-false thing, you could base it on something that is constant for all of Magic and not just a specific environment, for example card advantage, or some other such thing.
This version could have:
Basic Land
Vanilla Creatures
Flying Vanilla Creatures
Burn
+X/+X
Creature Kill
Mass Creature Kill
Conditional Creature Kill
Simple Discard
Counterspell
Draw
This way, each color gets something it's uniquely good at and the game will still have interesting play situations, but the computer can easily parse the cards and no subtlety is required. Deck probabilities and card advantage will still enter into calculations.
In that case, you might even want to take it slower than that, just to see how it works, and if how it works is consistent with what we want at the basic level, before making it more advanced. Something like starting with Basic Land, Vanilla Creatures, Flying Vanilla Creatures, and maybe Burn and +X/+X.
Another thing that I don't understand, is the human act of bluffing, going into combat with your lands open and several cards in hand. Computers can't give their opponent the stare down, to decide whether to chump or not.
It's called an Axelrod tournament, I believe. Each strategy, however, was very simple, and the idea was that each strategy play other random strategies a random number of times. The reason that worked was that there is no solution for a non-zero-sum repeated game.
In this case, you have a complex, but zero-sum game. That is, there is always a best play for you to make given the knowledge you have.
Bluffing can be solved by allowing the computer to emulate the thoughts of the other player, and calculate what he is likely to have in hand.
I think we should make a project to program a simple game of Magic that a computer can play.
It's not really freaky to play a computer- chess, for example.
For each card legal in a given format, a bluff is the act of playing in such a way as to indicate that you have that card in hand. This is most relevant when dealing with instant "combat tricks," especially those that have disctinct or easily recognizable mana costs (like Mirrodin's Soul Nova, or Champion's Devouring Rage or Strength of Ceders). "Bluffing" is an appropriate course of action when the bluff can be executed without hampering the further strategic development of your "actual" game.
Obviously that's not a formal definition but it's a start.
Similarly, I think that it's important to formally define other important game concepts before we start trying to "teach" an ANN (artificial neural net) to play. As Geordie Tait demonstrated excellently in his series of articles on card advantage that I linked at the beginning of this thread, the concept is not so easily defined as one might think.
Most of important game concepts have been discussed at enough length that I think arriving at formal definitions for them should not be too difficult.
As for programming a computer to play a simple game of magic. Start very small as per fadeblue's MTGS article "Magic Theory From the Ground Up."
I believe that the first step in a venture like this is to create a consistent notation of the concepts. This will firstly clarify and define the concepts that have been mentioned above and those still unmentioned. Secondly it will clarify the inetarctions and operations between the concepts.
Once this notation is in place real life games can be anlaysed based on this notation. As the analysises (how would you say yhis ) are evaluated rules might/might not evolve. These rules can then be tested empiricaly (spelling) and verified.
And yes this whole enevour (spelling) is huge but I think worth while and most importantly FUN. I might even get some ideas for a PhD out of it :))
What was interesting about that tournament is that the most complex strategy got last place, and the simple "tit for a tat" strategy, punshing your opponent for defecting(doing the negative option), won. Now, I don't expect this strategy to work in Magic, but you could develop about 10 "personalities" and have them play each other with simple decks.