The idea of getting the computer to play itself in order to test answer the question, “Which deck is better?” is very difficult. Even if you could create an AI good enough, what would it matter if one deck always won? If you wanted to play the deck in a tournament you would have to learn how to play the deck yourself, which would be complicated.
I don’t think computer vs. computer games are interesting or even possible. One, you have to program a great AI. I think writing a good AI is possible, but a tournament winner would require the computer to use the sideboard also, which seems impossible to me. Two, you would have to implement all of the cards for a couple of blocks, which is about 1000+ cards and have them all work correctly.
Three, watching the computer play itself is boring. I think everyone would agree that playing Magic is more fun that watching Magic. The idea of the computer playing against itself is theoretically interesting, much like a chess program that plays itself, but in reality it wouldn’t mean much. Tournaments have a decent amount of luck involved even if you are piloting the best deck, since you are paired against other random decks which would increase/decrease your chances of winning that match.
I respectfully disagree. Getting a computer to play itself has one important function: comparing various AIs. If you come with a tweak to AI, you can let a computer with old AI play computer with new AI, let's say for a hundred games, with various decks, and find out which performs better. It's faster than testing both against human players (plus, you can't ensure consistent performance for humans).
ReplyDeleteFinally, I don't think it would be so hard to program it. The Magic AI, at it's core, is a function that has game state as its input, and outputs the optimal action that should be taken. If you already have such a function, it's only a question of feeding output of the first one to the second one instead to human player, right?
I agree with Marek14. It would definitely be very interesting for some people, to have computer vs computer Magic. From an Artificial Intelligence perspective, it would be cool to play a bunch of AIs against each other in a tournament.
ReplyDeleteAs Forge implies by stating how many cards would have to work right, Magic is a pretty deep game. There are lots of details.
I also agree with Marek that would be relatively easy to program a computer to play another computer (or itself). If you design the User Interface such that there is one layer of functions that both the human and computer call to make things happen, then it would be easy to make 2 humans play, or 2 computers play. It requires some programming discipline to get to that point though, since it is easier to program different functions for the human player and the computer player.
For example, playing a spell, tapping cards, sacrificing creatures, etc. would be common functions.
Moving cards on the board would be for a human player, or in the case of computer vs computer, for a referee.
The devil is in the details of course...
I do not think having computer vs computer is an easy thing to do, but I do think it is a very good goal to have for version 2.
ReplyDeleteI also disagree with you... You can then tweak your AI.. if you see situation where you would play different then AI - you can change it to play better.
ReplyDeleteAlso with that option, you are one step closer to genetic programing :D
100 iteration , evaluation, mutation and repeat.. :D
Nastyboy
Ha, well I don't mind being wrong sometimes. Version 2 will not support Computer vs. Computer but it should make it easier to write your own computer AI.
ReplyDeletebut will Computer vs. Computer games appear in Version 3? ;)
ReplyDeleteVersion 3, hm...who knows.
ReplyDeleteI like the idea of the computer testing my decks, and it's already being done by Battlestar's Deckbot:
ReplyDeletehttp://www.deckbotarena.net/DeckBot/index.html
Wagic has a computer VS computer mode, and I actually enjoy it, like some kind of "screen saver" :D.
ReplyDeleteIt's also a good way to test your own AI, and the game engine itself, by having a constant loop of AI vs AI games running (will it crash at some point ? Does it eat up memory after a few games ? etc...)
I agree with Marek14. Having a computer vs computer match would allow people to compare possible game strategies and compare deck building options.
ReplyDeleteHmmm... I assume this post was heavily influenced by my e-mail to you. I, of course, also respectfully disagree that pursuing the goal of creating an MTG AI would only serve boring purposes.
ReplyDeleteIn the computer chess world, numerous amounts of people are fascinated by games played by AIs and not all of these people are going to use these programs to improve their own real-life play, which means there can be an appeal beyond using AI to help yourself become better at a game.
For those of you interested in the programming of an AI for MTG, I will be tracking my progress over at my blog. I have not yet started, however.
And this DeckBot program intrigues me. Can anyone tell me how good the AI in it is?
JW
http://www.barragecafe.com