• Create Account

Need scary sound effects or creepy audio loops for your next horror-themed game? Check out Highscore Vol.3 - The Horror Edition in our marketplace. 50 sounds and 10 loops for only \$9.99!

# Bomberman AI approach

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

5 replies to this topic

### #1Billda  Members   -  Reputation: 110

Like
1Likes
Like

Posted 18 April 2013 - 02:33 AM

Hi, I am writing bachelor thesis about different approach of AI in clone of Bomberman game. My clone is simplified with few things. Every player has to make some action every second and moves are discrete from one tile to another.

First approach that I tried was A* pathfinding. At the start of game cycle, player checks if he isnt in range of some bomb. If he is, A* for hiding is started. If no bomb is around and he cannot kill anybody with placing bomb right now, he try to find best way to nearest player. This approach is good enough and player is quite smart.

Next approach i was planning to try was with game tree algorithms - minimax, alpha-beta pruning... At this point i realized that every article i found about minimax assumed that players alternate with moves. In bomberman this isnt true, everybody make action at the same time. With that information. If i have 4 players and 5 actions (moves and bomb place), at every cycle there could be 5^4 possibilities of actions. It is quite a large number and in game tree with depth 3 it is impossible to search.

So my question is - is there any better way? Or any algorithms that are based on this type of game where everyone make move at the same time?  Or game tree is in this situation bad idea?

Thanks for all suggestions.

### #2Paradigm Shifter  Crossbones+   -  Reputation: 3963

Like
0Likes
Like

Posted 18 April 2013 - 03:01 AM

Do you really need everyone to move at once? Can't you move each player in turn and then do an update once everyone has moved? You could also randomise the turn order for each player per round to make things less predictable.

Everyone moving at once can cause complications, can 2 players pass through each other if they are adjacent and both move towards each other? How do you resolve the situation where 2 or more players try to move onto the same tile?

Also, there are 6 possibilities per turn, you forgot the "don't do anything" action.

"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley

### #3Álvaro  Crossbones+   -  Reputation: 7938

Like
2Likes
Like

Posted 18 April 2013 - 08:48 AM

Next approach i was planning to try was with game tree algorithms - minimax, alpha-beta pruning... At this point i realized that every article i found about minimax assumed that players alternate with moves. In bomberman this isnt true, everybody make action at the same time. With that information. If i have 4 players and 5 actions (moves and bomb place), at every cycle there could be 5^4 possibilities of actions. It is quite a large number and in game tree with depth 3 it is impossible to search.

So my question is - is there any better way? Or any algorithms that are based on this type of game where everyone make move at the same time? Or game tree is in this situation bad idea?

Not only does minimax require alternating turns, but it also only works for two players. There is another paradigm for building AI for board games that is way more flexible: Monte Carlo Tree Search. It can handle multiple players, simultaneous decisions and randomness without much trouble.

The best go programs use MCTS, even though it is in the class of games where minimax can be applied. The main reason for this is that, unlike minimax, MCTS doesn't require an evaluation function, and nobody knows how to write a decent evaluation function for go.

http://senseis.xmp.net/?MonteCarloTreeSearch
http://senseis.xmp.net/?UCT (UCT is a specific algorithm of the MCTS family)

### #4Norman Barrows  Crossbones+   -  Reputation: 1378

Like
0Likes
Like

Posted 18 April 2013 - 01:17 PM

for almost any type of AI, i've found hierarchies of behavior tree driven expert systems hard to beat.

"DirectX is like a belt fed machine gun, where every texture change is like hand loading in a new belt of ammo. worse, every mesh (vb) is a new belt of ammo, and a texture is like breaking the gun down, and setting it up again elsewhere, then loading it, then spraying triangles again. so you want to setup the gun once, string all your belts together, load it once, then just spray."

Norm Barrows
Rockland Software Productions
"Building PC games since 1988"

### #5Druzil  Members   -  Reputation: 439

Like
0Likes
Like

Posted 18 April 2013 - 07:02 PM

While there are multiple player versions of minimax (namely MaxN and Paranoid search), it doesn't handle simultaneous moves very well.  Past researchers have introduced an artificial ordering when simultaneous moves are needed, which has its own problems.

### #6Billda  Members   -  Reputation: 110

Like
0Likes
Like

Posted 19 April 2013 - 10:22 AM

Next approach i was planning to try was with game tree algorithms - minimax, alpha-beta pruning... At this point i realized that every article i found about minimax assumed that players alternate with moves. In bomberman this isnt true, everybody make action at the same time. With that information. If i have 4 players and 5 actions (moves and bomb place), at every cycle there could be 5^4 possibilities of actions. It is quite a large number and in game tree with depth 3 it is impossible to search.

So my question is - is there any better way? Or any algorithms that are based on this type of game where everyone make move at the same time? Or game tree is in this situation bad idea?

Not only does minimax require alternating turns, but it also only works for two players. There is another paradigm for building AI for board games that is way more flexible: Monte Carlo Tree Search. It can handle multiple players, simultaneous decisions and randomness without much trouble.

The best go programs use MCTS, even though it is in the class of games where minimax can be applied. The main reason for this is that, unlike minimax, MCTS doesn't require an evaluation function, and nobody knows how to write a decent evaluation function for go.

http://senseis.xmp.net/?MonteCarloTreeSearch
http://senseis.xmp.net/?UCT (UCT is a specific algorithm of the MCTS family)

Thank you very much, it seems like exactly what i need

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

PARTNERS