Okay... so since we are dealing with a STRATEGIC level game, perhaps one way to look at the AI issue would be sort of similar to real life military chain of command...
Have several "layers" of AI decision making. Upper most level would make decisions or "orders" to t he lower layer, then that layer would take info and make decisions, and so on... let me explain in layman's terms.
Suppose you play AXIS and the AI opponent is the Allies.
Typically, Germany invades Poland first. The Allied AI upper layer decides to a) declare war, or b) not declare war. IF decision A is made then it orders it's military and production to a war footing (If "B", then Allies remain Pacificst for now). This changes IF Germany declares war on Allies of course... assuming that decision A is taken, the Allied AI now has to look at the Situation... there's no combat yet in Africa, so nothing is done there. But a lower AI layer could decide to A) use bombers to attack Germany, B) have France attack in the West, C) send out the fleet in Search & Destroy missions against Axis subs and surface shipts, etc, etc.
Let's say decision B above is activated, Now a lower level AI decides which French units will attack and which will remain in defensive positions. Which targets present a better attack outcome? An undefended German city? A weaker Axis unit? etc.
That's how AI should work. Yes it takes programming. If, Then, Else commands as noted elsewhere. When enough of these scripts are programmed the opponent will make very good decisions, whether it is what type of production to build, where to attack or defend, when and where to invade, etc. We were programming this kind of stuff way back in the 80's using Basic.
Puts on fire retardant suit...
CEaW is programmed in JAVA. Does that make a different to say, using C++? Forgive me, since I don't know anything about programming.
Does using JAVA mean that things such as "IF, THEN, ELSE" can't be used?
I am not a programmer...but I do know quite a few that are... JAVA is an open source software developed quite some time ago. It builds on modules. Many programmers like it as it can eaqsily be ported to other systems (i.e. MAC, Vista, etc). But it is this feature that also gives it inherent limitations from what I've been told. The modules must be scripted so that ALL systems can understand it.
Can "IF, THEN, ELSE" be programmed into a JAVA based application? I don't know that answer...waiting to hear from a buddy of mine. But I think the answer is no. Or atleast limited... which may explain some issues that can not be programmed.
This may also explain the way the difficulty setting only adjusts production and resources parameters. Fairly easy to do in comparison to a true "thinking" AI. I suppose you could tweak an Uber-Difficult setting where Allies get hundreds of land units and gazillion resources versus the Axis getting zilch. Taking the chess game references here it would be like playing chess with only one pawn against a full opponent set. That's not AI folks.
One last thing...I've always been a proponent of human vs. human play. A human has what I call the "stupid" factor...you know, when you make an obvious blunder of a move and regret it. We've all done it... THAT is the most difficult thing to program an AI to do. To make mistakes or changes in strategy that don't make sense.
Having said that, one reason people moved from board games to computer games was so that they can fire up a game and simply play. It's not always easy or convenient (even in this day and age of internet and PBEM) to find an opponent, let alone a worthy one who doesn't cheat.
Ease of play, good graphics, beautiful map, are all nice...but they don't amount to a $74 game.
Interesting post. Thanks for the reply.
Pity about JAVA. I would definitely like to learn more about it, so when your buddy responds to your questions, would greatly appreciate you letting us know.
It would be a pity if "IF, THEN, ELSE" can't be used in this game. I see so many easy solutions to some of the problems being encountered that I shake my head in dismay.
I think some of the problems in some current games may be due to the programming language, OS, and huge graphic limits.
For example, let's compare Civ2 to Civ3 or Civ4. In Civ2 the gamer could tweak almost every aspect of the game. The programming was sheer brilliance in itself for allowing the game to be so flexible and mod-friendly.
In contrast, not as many parameters in Civ3 or Civ4 can be tweaked.