Bomberman AI approach

Started by
4 comments, last by Billda 10 years, 12 months ago

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.

Advertisement

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

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)

If anyone has better links for MCTS, please post them.

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

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

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.

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)

If anyone has better links for MCTS, please post them.

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

This topic is closed to new replies.

Advertisement