as promised I want to give you a look behind the curtains of intelligent playing. Before that you have to know something 'bout artificial intelligence in general.
Artificial Intelligence (AI) is a branch of computer science, which aims to let unintelligent systems act like human or other intelligent races. Such a system is a so called intelligent agent (ia). So what we develop is an ia, which should be as good as a normal player. An ia has a specific perception, which lets him know something about his environment and effectors, which enables him to perform actions, which interact with this envorinment. Equipped with that, our ia should be able to marry well.
Here are all the basic actions a bomberman can perform:
- Walk to a specific point
- Drop a bomb
- Do nothing/Stay still
The ia, lets call him bob (bomberman bot)... So bob needs some special information to know what to do next. This includes:
- position and status of himself
- position and status of all the other players
- status of the game map
This is exactly the information a human player needs to keep up with the other players in the game. So now bob can find out some very usefull things, e.g. which way he should take or what player he should attack first.
His integrated pathfinding module tells bob, which way is the best. The best means not necessarily the shortest path, but the safest one. So usually the so created path might be without any bombs or explosions.
The algorithm of trust is A*. It's easy to implement and doesn't use to much cpu usage - predestinated to make realtime decisions. Now as we know, how to get to an enemy an item or to anywhere on the map, we have to face to the next item of our todo-list.
If there are more than one other players on the map, bob has to decide which one he should attack first. As you might guess, attacking the nearest one is not really intelligent game playing, as you disregard all information you gained beforehand. Anyway bob has a more complex way to decide which one he should attack.
There is one rule of thumb: The nearer a player is to bob, the more angrier he gets. Cause the player, which is next to him can attack him with his bombs. So a player next to him is more dangerous than anyone, which is far away. So this is one criterion for his decision. Another criterion is the status of the player. The less healthpoints another player has, the easier is it to kill that player. So the finally choice is a realtionship of the two createria.
Now bob needs to know what action might be the best. So we need to use an algorithm, which tells bob, what action is how usefull. Before we can do that, we have to remember that the game is called RPGBomber2009. Bob has healthpoints, that means he can endure some pain to kill another player. And he will. Bob balances pros and cons of each action (hiding from bombs, attacking an opponent, getting some items) and chooses dynamically between an offensive and a more devensive strategy.
This is a more detailed approach indeed, but the most detailed paper I wrote is attached to this article. For those who are interested: have a look :) But may I have your attention please: This article is completely in GERMAN. But I hope there will be a english version rather soon.