Jump to content

  • Log In with Google      Sign In   
  • Create Account


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.

  • You cannot reply to this topic
5 replies to this topic

#1 Billda   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.



Sponsor:

#2 Paradigm Shifter   Crossbones+   -  Reputation: 5095

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: 11714

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)

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

#4 Norman Barrows   Crossbones+   -  Reputation: 1835

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.


Norm Barrows

Rockland Software Productions

"Building PC games since 1988"

 

rocklandsoftware.net

 


#5 Druzil   Members   -  Reputation: 560

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.



#6 Billda   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)

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

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