For Java Robots, It’s a Battle to the Death

In a climactic showdown at Linuxworld in San Francisco this week, Yngwie destroyed Vapour, MorbidPriest and six other Java robots to win IBM’s Robocode Rumble, a Java programming competition based on its Robocode programming game.

Robocode is a Java teaching game which help developers learn the programming language as they create Java ‘robots,’ which are actually Java objects that battle onscreen.

“The bots are Java classes,” explains Dennis McFarlin, a systems supervisor on IBM?s alphaWorks developer Web site, “which appear as if they’re little tanks. They look around to see if there are any other Java classes, or bots, in the same space, and when they find another opponent, they shoot bullets at it and try to disable or destroy it.”

“Robocode has developed quite a following,” McFarlin says. “The challenge is to write an algorithm that most efficiently finds and attacks other bots, while avoiding getting hit itself. Really what we’re doing is pitting two different algorithms against each.”

More than 500 robots have been battling since the competition kicked off at IBM developerWorks Live! Conference in May. IBM divided the competition into three different levels, based on the skill of the programmer. Eight finalists in each level faced off at Linuxworld. Dutch developer Enno Peters’ “Yngwie” ‘bot claimed victory in the advanced category, while bots from programmers in Germany and Singapore won the intermediate and beginning levels.

The competition was a good way to “further my Java knowledge,” says David Karlov, a computer science student at the University of Technology, in Sydney, Australia. It was also “a lot of fun,” he added. Karlov’s robot, named Joker, finished third in the intermediate category.

Robocode is one of IBM alphaWorks’ most successful downloads, with more than 155,000 copies downloaded since it was first posted. Recognizing Robocode’s potential as a way to teach Java, IBM has begun distributing academic licenses for the program.