AI takes on Pac-Man - well in fact it plays both sides! An annual competition challenges participants to write Java programs to control Pac-Man or the ghosts!
Pac-Man might not seem like a problem that is in the same league as, say, chess. In fact you might not even see it as a two player game but it is and always has been Pac-Man versus the Ghosts. So what could be a better idea that trying to create some AI that plays either side. This is what is happening at the annual Congress on Evolutionary Computation.
Competitors were challenged to create Java programs that took control either of Pac-Man or the team of four Ghosts. Previous competitions only allowed the AI to control Pac-Man so controlling the team of ghosts extended the task to multi-agent and co-operative strategies.
If you want to have a go at creating your own controller then you can download the software and read the rules and try it out. There are also some sample controllers that implement simple strategies - random Pac-Man. The controller is informed of the current game state and responds with a simple action for the agents it controls. If you look at one of the examples you can see how simple it is to interface. This is how it should be as it leaves you to spend the hours of programming on your controller to be ready for next year.
Top Pac-Man v top ghosts
The contest for this year is now over. The highest scoring Pac-Man controller only notched up 69,000, which isn't a high score compared to human players. However you have to take into account that the ghost algorithm is more aggressive than the original which was intended to make the game fun to play. The aim of the ghosts in this AI version of the game is eat Pac-Man as quickly as possible.
There are also papers describing the approaches include the genetic algorithm, ant colony optimization, rule based and so on.
You may not like web pages that keep on trying to get you to install the app, but as programmers we know apps have advantages. Now Google is undoing all your hard work and turning your app back into a [ ... ]