I know. I know. I too cringe when I see AI topic headers, usually from someone new asking how to make an AI for some complicated game and knowing that it is almost impossible to answer.
This thread isn't about that. I want to engage some more broad techniques with you guys to see if I can learn from the masters.
In a game I am making, you control a penguin and walk across a grid of ice blocks. You battle other penguins and smash the blocks to cause the other penguins to fall. Getting some general stuff down was easy, now the AI is proving to be a stumbling block...
I dislike using randomness in AI's (where possible) as to me a computer should make logical decisions above all else, introducing failure in different increments for difficulty. Having randomness for an AI seems to lend that you have no idea what would be a good move for the computer.
Currently, in my basic AI, I have the computers move in a straight path unless they encounter the end of the board, or they encounter an edge where blocks have fallen. Now, without attacking this causes the AI to basically patrol the perimeter of the grid (starting at the corners) unless I smash some blocks causing them to change direction. However, as soon as the blocks recover and they walk into the edge of the grid the return to their perimeter patrolling ways...
Introducing the enemies attacking or shattering the blocks has also caused problems because they tend to get into face offs where both pretty much face each other and constantly attacking.
The problem lies is that the AI's are far too predictable, and also they don't follow natural paths. An AI should (at best) simulate a human opponent.
The problem now lies how to correct this.
So perhaps you could lend me some techniques you use to help the opponent react to his enemies, and in the case of games where enemies fight each other too, how an AI can react to another AI.
I'm looking for broad suggestions, as this is a discussion on general AI tip's. Such as using multiple AI types? Or by having specific checks to have the computer estimate opponents moves? Or is randomness just the flat out easiest way to make an AI less predictable.
"Damn had to remake account!" direct quotation from previous account.