Quote Originally Posted by Didz
The key pre-requisites for an effective AI are 'Situational Awareness' and 'Behaviour Modification'. Chess programs do quite well only because the improvements in processor technology now allow them the assess the possible consequences of every potential move they can make virtually to the end of the game and then choose the option that gives them the best chance of success. This gives chess programs a massive advantage in situational awareness that most human players could never match. However, in most other games the AI's level of situational awareness is extremely limited and most AI's are restricted to very simple reaction triggers.
Sorry to nitpick, but you understate the complexity of chess. To an extent that stands out to me even though I play very little chess and suck at it. I'm also not very good with math. Regardless, "Situational Awareness" is a lot easier to implement in chess than M2:TW.

For a really casual 5 minute estimation of the impossiblity of assessing the consequences of every possible move to the end of the game, read the below "spoiler". Anyone who knows more about how Chess AIs work or is just better with the associated math may correct me or actually do the math involved and enlighten us all.

Spoiler Alert, click show to read: 
For the first move of a chess game, you have 20 possible moves. After that, it only get's more complicated especially if you open up diagonals for the Queen and Bishops early. Remember, that you have evaluate your opponent's moves too. That's around to 100 total moves for a long game. So, 20+ to the power of 100 different positions to evaluate.

BTW, I'm also assuming that someone wins the game or a draw is reached byt agreement or stalemate instead of the 50 move rule. (After either player has made 50 moves, during which no pieces have been taken and no pawn has moved, the game is considered a draw. IIRC)

Memorywise the most efficent way of recording the position (that I can think of) of the pieces is recording the square it is on(1-64 for the bard squares from a1 to h8, with 0 being out of play), for each piece. thats 7 bits (practically a byte) for 32 pieces. So about 32 bytes.

So, in a very simplified way, we can say that the memory requirement for calculating a full game of chess is a lot more than (and we are rounding down a huge amount for simplicity sake here) 32 * N to the power of (about) 100 bytes, where N is the average number of available moves during a game. (Propably only 25-35 due to end games being simpler)

If you round that down further to a single integer followed by zeroes, the number would propably have around 140 zeroes in it. A gigabyte rounded in that fasion has only 9 zeroes. My hard drive's free space has only 11 zeroes in it.

No point in going on with that.

To be sure, chess AIs see a long way into the future. Freeware PC chess programs go 9 moves (for each player for a total of 18) deep in a few seconds, super computers built specifically for chess can do a lot better.

The advantage that humans have over computer (according to one of my computer science professors) is our ability to handle large chunks of related data (like a chess position to an experienced player) as easily as small ones. (like a number between 1 and 10) Also we can perform more complex operations on that data. For example, in chess, a human player has an easier time disregarding obviously bad moves than an AI, who has to study every move to a deep level before it can disregard it or it risks missing good sacrifices that can lead to a forced mate or forcibly recuperating material with interest.


To summarise, I've heard (from a person that actually plays chess) that someone at IBM actually calculated that their newest super computer couldn't have calculated all the possible moves in chess, even if it had been calculating to this day since the big bang. To me that sounds like an overestimation, but I wouldn't be at all suprised if it was true.

AFAIK, the focus of current Chess AI development is in finding better algorithms for evaluating moves and positions. "Short cuts" to attaining "Situational Awareness", so to speak.

The problem here is that Medieval 2 is a lot more complex than chess in terms of the amount of possible "moves" and the fact that the state of the game, the outcomes of possible actions and pretty much everything involved in strategic decicion making is a lot harder to abstract into something mathematical that a computer can calculate in M2:TW than it is in a simple, strictly logical game like chess that has only 2 players.

Also, the mathematical nature of chess makes tracking a player's behaviour and weak spots easier. I have a massively hard time playing white against a Sicilian Defence and as a result, every time I play e4 as my first move, I get served with c5 and eventually take it in the *&%

Despite the fact that it needs more work, just getting the AI on M2TW to the level that it is in now is a great achievement already, IMO. Due to the complex nature of M2:TW, I think that the easiest way to improve the AI would be to concentrate on "Behaviour Modification" in lieu of situational eawareness.