Discussion about chess v. A&A AI has already been discussed at length, elsewhere.
Let every eye negotiate for itself
And trust no agent; for beauty is a witch
Against whose charms faith melteth in blood.
Much Ado About Nothing (II, i, 178-180)
Like you, I thought A&A AI would be easier, but after reading all the arguments, I changed my mind.You weak minded fool! He's using an old Jedi mind trick!
- Jabba the Hutt, "The Empire Strikes Back"
I have played thousands of games of chess in the past few years, and I've played about 200 A&A games.
If eating M&Ms made me an expert on making
them, I would be the mother of all M&Ms. Or the father, as it were.
There are a lot of similarities, and many of the analogies are relevant and worth discussing.
(Bunnies adjusts soapbox stands on it, and opens a notebook titled "Lecture on Programming")
Let us suppose you are in a room with a tile floor. Any given tile may or may not be trapped to fire a steel dart at anything that touches it. Let us now also suppose that you have a cute furry hamster and a small supply of hallucinogenic drugs.
Now, there are different approaches to programming.
Most people would say "The h*** with this", leave the room, and go off somewhere nice to use up the supply of hallucinogenic drugs. This explains the great surge in economics majors in recent years.
Of those that remain -
Those that understand how funding committees work know that it isn't necessarily actual progress that funds research. What is required is the *perception* that work is being done. So clever budding programmers pump the hamster they have with drugs, and let it loose on the floor. If the hamster is shot, success! A trap has been detected! If the hamster lives, success! A safe square has been detected! Of course, with the hamster staggering around, in time, the hamster will almost certainly be shot, but it is a staggering success all the same! With success comes approval for further funding, which leads to further hamsters and hallucinogens, which feed more test results, which feed more funding, etc. etc. Then comes the inevitable funneling of hamsters and hallucinogens into black market pet stores and pharmaceutical companies, the reaping of profits, the bribes, the intern set up to take the fall, the convenient accident the intern has before being able to testify in court, the trophy wife, the hot intern with whom an affair is messily covered up, and finally retirement from a happy life of programming, pet stores, and pharmaceuticals, into a respectable life of academia and executive board membership in which no one questions or blinks an eye at twenty thousand dollar "consultation fees".
Which explains rather a lot about how programming is funded. But how does programming work in theory? How do you make it all sound so very impressive to the bright eyed hard bodied young girl or guy who tells you "programming is soooo interesting, why don't you tell me more about it?" (For such students, I recommend the Barry White "Can't Get Enough Of Your Programming Baby" album. Worked for me seventeen times, until the headboard on my bed broke off and hit the record player.)
Programming, chess programming. Throw a million hallucinogenic hamsters on a trapped floor, and see which ones survive. The survivors are picked up and thrown into another trapped room, then another, then another. Finally, only a couple of dazed and terrified hamsters are left, which we call "Viable Options". What is the programming part? Making sure there is one hallucinating hamster for each tile in each room. Tracking each hamster. The ability to tell which hamsters are dead, which are alive, and which are merely passed out / faking dead / apathetic.
There are other methods to programming.
Some programmers attempt to engineer the hallucinogens so they no longer induce random behavior in the hamster. Instead, exposure to the hallucinogen causes a hamster to act predictably - say after a hamster lands, it always walks straight due north. Since the point the hamster is dropped is known, and since its path is known, any tile between the tile the hamster was dropped on and that the hamster ended up on (or met its end on) is safe. With such hallucinogens, there no longer need be a hamster for each tile, so fewer hamsters are needed overall. Thanks to advances in virtual hamster cloning technology, though, it has been pointed out that developing advanced hallucinogens is far more expensive and time consuming than merely whipping up a batch of a couple billion hamsters.
Some programmers attempt to engineer hamsters. Daring hamsters with fedoras and whips that can detect traps safely. Such programmers are almost inevitably sneered at by funding committees that demand to know when the hamster is going to get up off its a** and make them a sandwich. Frustrated programmers that fail to obtain funding often go on to have successful careers writing scripts for movies such as "Indiana Jones and the Temple of Doom", "Terminator", and "Planet of the Apes".
As far as comparing and contrasting chess AI and Axis and Allies AI -
There are SOME similarities. But NOT so much so that you could easily apply one to the other.
First, I would say - is Axis and Allies different from chess? I think so. Demonstrably very much so. No "light tweak" would allow Fritz or Chessmaster to play Axis and Allies with any degree of real "skill". Nor would a heavy tweak do. In fact, I am very much persuaded that nothing short of two cases of Jack Daniels would do the trick.
Second, consider funding. Funding is proportional to perceived marketability. Chess is much, much more marketable than Axis and Allies. Chess is the bucket of funding, Axis and Allies the drop of water.
True, programming techniques applicable to Axis and Allies and not to chess could be developed and sold were Axis and Allies AI to be developed. But specific programming techniques could just as easily be developed for other projects entirely - other higher-profitability projects, that is.
So what we have so far is - Axis and Allies AI will require significant unique development, and that funding and resources for such development will be very limited.
That means A&A AI must deliberately be developed to be simple. More complex than is currently available in TripleA, but still very simple. A programming environment will not be created for the purpose of Axis and Allies programming. With calculation abilities limited to piggybacking on existing program shells, the program will not have the resources, and therefore should not be written, to encompass all possibilities from each point, because calculation times will be too long.So the best direction for Axis and Allies AI, considering the real-world resource limitation, is the writing of a framework through which the AI can efficiently execute several different predefined strategy scripts. With a limited (although still quite wide) number of variables to check, the program can evaluate conditions and select an appropriate stage of an appropriate strategy, and execute a move in a reasonable amount of time. This should give the Axis and Allies AI reasonable efficiency, but should not be anywhere near as difficult as scratch-building an effective chess AI.
To put it in hallucinogenic hamster terms - instead of throwing mass hamsters (calculation power), re-engineering hallucinogens (complex AI scripts), or re-engineering hamsters (giving an AI the ability to understand the concepts behind the game and the ability to derive principles therefrom), we are instead throwing down a lot of sets of unconnected colored tubes (setting predefined strategy sets that transpose into one another). All hamsters start in a tube (the opening position for each power can be predicted, although there are many possibilities so many tubes are needed. From that opening position, the game can be steered along certain "safe" paths). A certain minimal amount of hamster and hallucinogen engineering is needed to get the hamsters to jump from one tube to another (although much less than if there were no tubes). There is always a danger that a hamster may wander out of a tube where it will quickly die, but given our limit on hamsters and limited engineering capability, that can't be helped.
As far as Axis and Allies *inherently* being harder to program than chess -
Even in the 1950s there existed a literature of tens of thousands of good, solid books on chess. Programmers did not have to figure out how to use rook and king to checkmate a king. It was in the literature. They did not have to figure out how to use bishop and knight and king to checkmate a king. It was in the literature. They did not have to figure out the deviations fourteen steps deep into a Sicilian Dragon, and how to exploit significant deviations from the line. It was in the literature.
To my knowledge, Axis and Allies has nothing like that. Oh, there's a bit here and a bit there, but it's mostly fundamentals conceptually equivalent to knowledge of pinning, or the first three moves of the Spanish/Ruy Lopez. There is nothing THERE.
So in practical terms there is groundwork to be laid, and I think (among other factors) that is one of the major contributing factors to why the competitiveness of Axis and Allies AI does not compare to the competitiveness of chess AI.
But is Axis and Allies *inherently* harder to program?
First, check conditions (ABCDEFGHIJKLMNOP). Second, set strategy (X) based on checked conditions. Use tactical database to evaluate best use of available resources. Execute.
That's all there is.
I've heard people say that
Too much of anything is not good for you, baby
But I don't know about that
There's many times that we've programmed
We've shared programs and made programs
It doesn't seem to me like it's enough
There's just not enough of it
There's just not enough
Oh oh, babe