|
Post by Rycchus on Aug 28, 2007 9:49:31 GMT -5
Sorry to be pedantic, and I have no clue on the technics of this, so I won't get involved, but... Doesn't 6 move history mean
WPFSSS XXXXXX
XXXXXC XXXXXC
there is no reason to mirror?
Edit: or to complete the FoD, if it were the AI attacking?
|
|
|
Post by awall on Aug 28, 2007 22:09:17 GMT -5
I think the idea is that FoD and Permanency could be special-cased. It'd be much less computationally expensive to have two special cases than to increase the search space by an additional two gestures per player.
|
|
|
Post by xade on Aug 28, 2007 22:13:40 GMT -5
Sorry to be pedantic, and I have no clue on the technics of this, so I won't get involved, but... Doesn't 6 move history mean WPFSSS XXXXXX XXXXXC XXXXXC there is no reason to mirror? Edit: or to complete the FoD, if it were the AI attacking? wait a minute... I threw 3 S's!! What the hell was I thinking? I can't do anything with that! Now a fireball, that would have been sweet! But now... ...! what was I thinking?
|
|
|
Post by Rycchus on Aug 29, 2007 8:07:53 GMT -5
Hahaha! ;D
|
|
|
Post by nawglan on Aug 31, 2007 10:46:18 GMT -5
Heh. Ok. 7 move history.
PWPFSSS
No need really to keep more than that I think. *shrug*
|
|
Derfel
Ronin Warlock
Did I Do That?
Troublemaker
Posts: 283
|
Post by Derfel on Aug 31, 2007 11:08:16 GMT -5
Maybe this was already mentioned, but what about an input dealing with current enchantments?
For example, the AI's opponent has a permanent Protection cast. Would the AI know to either avoid summoning monsters for the time being, and/or to try and remove that enchantment?
|
|
|
Post by nawglan on Aug 31, 2007 11:14:29 GMT -5
Ya, would need to add that to the list. Would also need to know that if it is subjected to amnesia that it makes same gestures as before. Or, confusion: Think carefully before using P. etc. Also, banked spells may pose a challenge to keep track of also.
|
|
|
Post by mpchatty on Sept 12, 2007 13:41:10 GMT -5
This is something I've given a lot of thought to over the last N months, although to this day I lack the available time to embark upon anything substantial.
It should be noted that I have been considering implementation of an AI as a fun project, and something of a learning experience (although I develop software for a living, its not even remotely in the field of AI, which has always interested me).
I came up with a couple of different options, all quite interesting to tackle.
1. An "experience based" approach, whereby a system would compare the current state of the game to previously played ones on record, and choose its next move based upon the most likely (long term) outcomes of different spells.
2. A "risk based" approach, where moves are selected based upon a combination of adversity to risk (e.g. play safe, live dangerously - style of play), the current risk situation (e.g. someone potentially aiming for FoD) and possibly the likely outcome of different moves (e.g. doing X now will do damage but leave me open to Y in 4 moves).
3. A "play style" approach, potentially blended with one of the above, so the AI warlock might prefer summoning, damage spells or elementals.
Really the options are quite endless, and I could go on for ever. The starting point of course, would be implementing an engine which follows the rules (ideally in a flexible way to incorporate future changes) - and thats a decent project on its own, given some of the subtle nuances. Flexibility would be key to me, allowing people to fairly easily make their own rule changes.
Ah. Well. Maybe one day I'll have time!
|
|
|
Post by Slartucker on Sept 12, 2007 22:22:54 GMT -5
You should definitely read the "Building a Warlocks AI" article on the Refuge, mpc.
|
|
|
Post by calicojack on Sept 14, 2007 9:11:13 GMT -5
This is at least the third time a long discussion about AI was held, and so far it's not really coming up with anything new. Ah, slartucker already pointed the way to the articles that I think were distilled from d-1337 discussion about the topic.
warlocks is AI hard for the following reasons:
1. unlike chess, there are multiple unrelated win conditions. You can health0 your opponent, you can FoD them, you can perma-something them, you can paragiant* chain them, and then there's poison and disease.
2. unlike chess, danger comes in different unrelated forms. Health damage can be done by monsters, elementals, and spells.
3. unlike chess, information is imperfect. Not so much your opponent's moves, but more so the invisibility and blindness issue. It's harder to deal with than you think. You probably need to special case the whole thing. Especially with blindness, this is hard.
4. It is virtually impossible to equate one thing to another. It's very hard to claim that 'having an ogre' is 'about equally valuable to' being invisible. It depends far too much on the situation that make that sort of assessment. In chess you can definitely trade position points to piece points (black is missing a knight, but he's got the 4 center squares covered with pinned pieces. Black's ahead, that's worth more than a knight. This analysis works pretty much always reasonably well, in chess. Not so much in warlocks).
In other words, the search space is multi-dimensional and this has very VERY bad side-effects for your search space. Not only are there even more spaces to search (situation with monster, situation without, etc etc) but more importantly at the end of a chain of analysis, how do you determine standing? That's a question that's answerable in chess (a combination of pieces and position). It's impossible to answer in ravenblack without intelligence of some sort.
The end result is that trying to see this as a chess game is unlikely to work. If you're going to build this at all, I'd come up with a fancy neural network to handle these situations and train the crap out of it. That might work well enough for a 1700 elo player.
*) Imagine I have a giant and a para chain, and you've got DDDD/PPPP going, with me paralysing the DDDDDs. You're not going to get out of this without taking at least 8 damage. In practice, this is as good as dead as a FoD. At least the AI can probably figure this out just from health if it's really good.
|
|
|
Post by nawglan on Sept 14, 2007 9:17:05 GMT -5
Question for those that know AI better than me: Does this project look like it is as promising as I envision it? leenissen.dk/fann/forum/viewtopic.php?t=47I'm still plugging away at using fann in some form to build a neural net for this game. My goal is to build a "master" net containing all knowledge, as well as individual nets for each warlock I come across. Then, when evaluating moves I'll load up the individual a's net, evaluate the position from that perspective, then individual b's net, and finally the master net. Then given the output from those, form a decision as to what to do. I know that this problem is a complex one, but as processing power increases, it should not be impossible, just difficult.
|
|
taliesin
Ronin Warlock
Grand Master
Posts: 156
|
Post by taliesin on Sept 14, 2007 10:30:36 GMT -5
Surial, please stop talking about chess AIs until you know more about them, and maybe a little more about the game of chess. We've had this discussion before. Also, it's worth noting before I start that when building a game AI for any game with discrete moves, the same process of state-space crunching aided by heuristics is standard. You're arguing not just against the process used to build a chess AI but to build an AI for pretty much any game of this type. 1. unlike chess, there are multiple unrelated win conditions. You can health0 your opponent, you can FoD them, you can perma-something them, you can paragiant* chain them, and then there's poison and disease. Chess however has multiple unrelated draw conditions. This isn't really a problem worth talking about - all of these things are potentially coverable by state-space search. 2. unlike chess, danger comes in different unrelated forms. Health damage can be done by monsters, elementals, and spells. But in chess, pieces can be taken by pawns, knights, bishops, rooks and more! Again, this isn't even vaguely relevant to AI design. 3. unlike chess, information is imperfect. Not so much your opponent's moves, but more so the invisibility and blindness issue. It's harder to deal with than you think. You probably need to special case the whole thing. Especially with blindness, this is hard. Partially true, but invis and blindness are not entirely information free. In any case, this just means you end up with a larger state-space to examine. 4. It is virtually impossible to equate one thing to another. It's very hard to claim that 'having an ogre' is 'about equally valuable to' being invisible. It depends far too much on the situation that make that sort of assessment. In chess you can definitely trade position points to piece points (black is missing a knight, but he's got the 4 center squares covered with pinned pieces. Black's ahead, that's worth more than a knight. This analysis works pretty much always reasonably well, in chess. Not so much in warlocks). No, this analysis only works in chess at all because people have spent decades developing workable heuristics, and the trade between position and pieces is much much harder to calculate than you suggest. Warlocks is obscenely easier to calculate on this score given the relatively small number of positions two warlocks can be in compared to chess. In other words, the search space is multi-dimensional and this has very VERY bad side-effects for your search space. Not only are there even more spaces to search (situation with monster, situation without, etc etc) but more importantly at the end of a chain of analysis, how do you determine standing? That's a question that's answerable in chess (a combination of pieces and position). It's impossible to answer in ravenblack without intelligence of some sort. Actually, it's very much easier to answer in Warlocks. Chess has a huge array of potential positions. Warlocks has a much smaller number. The heuristics needed to dominate in Warlocks are simpler than those needed in chess. You cannot mechanically calculate the value of a chess position unless there is a checkmate visible in the state-space - you must do so heuristically. It is much harder to do so in terms of sphere of influence of pieces, etc than it is in Warlocks to note that one side has a monster, is Diseased, or whatever. The end result is that trying to see this as a chess game is unlikely to work. If you're going to build this at all, I'd come up with a fancy neural network to handle these situations and train the crap out of it. That might work well enough for a 1700 elo player. No, neural nets are absurdly badly fitted for this purpose. The only truly successful use of them in game AIs that I'm aware of is to fine-tune evaluations of positions that are already approximately correct. They very easily converge on suboptimal solutions. Warlocks isn't likely to be easier than chess to develop an AI for, but it's worth pointing out that it's taken many years and teams of top AI researchers to create chess AIs that can successfully challenge a good human player. Creating a Warlocks AI is hard because creating a good AI for a complex game is hard. That's all there is to it.
|
|
|
Post by Dubber on Sept 15, 2007 19:37:40 GMT -5
Bah, Warlocks isn't all that complex -- even a Scotsman could learn to play it... *laughs maniacally* *ducks* *runs away from the Claymore-wielding lunatic*
|
|
|
Post by Rycchus on Sept 16, 2007 11:16:54 GMT -5
;D ;D *exalts Dubber*
|
|
|
Post by dni on Sept 27, 2007 3:20:38 GMT -5
2 nawglan: I think than neural net can be a part of system, but not all the system. Neural nets, especially with much of inputs (more than 100) and multiple outputs, are too unstable to predict acceptable, even not optimal, result. IMHO, the key is use complex of algorithmic and randomal self-teaching methods. 2 derfel: I can write this AI at 2 minutes. LH: P, RH: P. 2 taliesin: So what's about psychic influence? Making a game with one HP? Is you need to attack with one hand? Making shield or do a spellchain? The evaluation method is only half of game key...
|
|