Aussie AI boffins let fly with Angry Birds automation code
See pigs squashed by scrolling code
Java code used in last year's Angry Birds artificial intelligence competition has been released into the wild.
The Australian National University's Artificial Intelligence Group last year decided the game would be a fine way of testing just how brainy artificial intelligences have become, because as anyone who's played the game can tell you that figuring out just how to squash pigs isn't easy for organic intelligences.
The competition will now be repeated this August, in Beijing.
Would-be-entrants, or anyone interested in pig-squashing automata, can put last year's code into action by downloading it from here and following these installation instructions.
Jochen Renz, convener of the competition and an associate professor at the Australian National University said the code released today has been completely re-written in Java. It's also been freed from dependence on the costly Matlab product, so anyone can run it without needing to buy a licence.
Speed has been greatly improved, with image analysis now taking "about 1/10s per image, previously it took over 10s." The code can only play the SD version of the game, as in that mode the game always offers a fixed resolution. The certainty of 840x480 action makes it easier for the trajectory calculation code to get to work.
"No reverse engineering of the game is used," Renz wrote. "We only play on top of the game, just like any human player would. You can also join in and make some shots yourself if the agent takes too long or cannot solve a level."
In The Reg's experience, the agent can get a little tiresome: we've waited an hour for it to solve level seven of "Poached Eggs". If that's too boring, the AI code also offers the chance to watch its calculations in a terminal window.

At last, an improved interface for Angry Birds
To run the software you'll need Google's Chrome browser and the version of the game dedicated to that environment. ®
COMMENTS
It does also need to compute strategies, decide how to use the different bird powers to help the following birds to accomplish the total goal, essentially it does need to properly rcognize complex causal-chains.
If you think that understanding that if I throw a small bird at that anonymous block instead of at that uncovered pig, I will then open a path to throw the bomb-bird at the base of the pillar that falling will knock out the whole lot of pigs included that protected one that I would have no chance to hit does not involve a good level of AI, I don't know what it does...
Even in nature only very few animals, all considered pretty intelligent, understand the concept of causation at more than few steps of separation.
Re: Why so long?
@Ragarath: I think you misunderstand a key aspect of these challenges: they have no special "visibility" into the internal game state. They don't get to read the internal structures that the game maintains, they only get to look at the screen, just like you and I.
I suppose you could try to make a "player" that would inspect the screen, apply image recognition, build up its own model of the various objects internally, run internal simulations, and get it "right" the first try, but then that would break the first time the game logic changed the slightest bit.
@Fizz
"It does also need to compute strategies, decide how to use the different bird powers to help the following birds to accomplish the total goal"
Does it actually do that?
Or does it (from the snippet of debug output that's given) try randomly throwing birds (presumably random birds when there is a choice) and see what the result is, discard ones with no effect, and keep replaying the level using known 'good' shots until random chance results in it stumbling on a winning formula.
The "changing target at random" doesn't sound very much like causal reasoning to me, it sounds like either a depth or breadth first search of all the possible game states, they are just enumerating the game state tree at some sort of defined level of granularity (ie how much it moves the target each time).
Re: Why so long?
Or is it trying the level multiple times to see what works and what doesn't? If it is doing this why does the article not mention it?
It tries shot after shot and sees how well it goes, sets angle and power and fires away.
This computation they have shortened down from 10sec to 1/10 because they have probably taken away the presentation and go directly onto the physics computation of the impact.
The nice thing is that they do not bend the rules just try and try, although it is not much AI in this because it is easy to compute the successrate for each shot. Try 10 shots then take the one that destroys most objects and go to next shot ets. it is static and not more than 5-6 birds. This is no chess solver like deep blue.
But it is cool and fun to watch.
We need an "open mouth; insert foot" icon
When faced with the choice of me being dumb or somebody else being dumb, I always chose to assume the other person is dumb and end the algorithm.
(Disclaimer: I've not played angry birds, but the screenshot suggests the targets move. And I'm sure the game wouldn't be addictive if the physics were trivial; it is a puzzle which confounds wetware and so is no doubt hard for computers, too. Finally, I dispute the fact that image recognition isn't AI; a sizeable chunk of your brain is given over to it.)
