News

IBM's CodeRally takes it to the streets

Any teacher knows that one way to speed the learning process is to make it into a game. And if the students (depending on their age) grew up on Atari, Nintendo and PlayStation, it follows that creating a video game is a good way to reach them. That's the plan with CodeRally, a Java-based, real-time programming game based on IBM's Eclipse platform. Built for the Java Challenge at the 2003 ACM International Collegiate Programming Competition, CodeRally is now available for download for programmers who want to create their own Java-powered hot rods.

"When you start off, it provides you with a simple Java interface for programming a race car," said Tim deBoer, team lead for the deployment and publishing of tools in IBM's WebSphere Studio product line.

Thereafter, he said, "you can pick some sample [competitors] and test your car against [them]. You watch and see how your car does, and you may notice that it runs into the corner and doesn't do anything. So you go back and make changes to it."

But there is only so much one can learn from a robotic opponent. So, said deBoer, CodeRally combines competition with collaboration in networked races of up to 100 human-controlled cars, all Java-coding their way around the same crowded course.

"You can watch other people's cars go around the track and notice that they have a cool algorithm that detects when they're about to hit something [so they can] drive around it instead of plow into it," he explained. "You can learn from what they're doing, and go back and add stuff to your own car. The competition and competitiveness actually makes [users] end up coding better and faster."

The story of CodeRally began with the accidental success of its combative predecessor, Robocode, in which players build Java-powered humanoids to battle each other on screen. Created by IBM developer Mat Nelson in his spare time, Robocode took its keepers at alphaWorks by surprise shortly after its release in July 2001.

"By September, there were already Web sites being formed [and] discussion forums ran rampant at 3 o'clock in the morning," said Marc Goubert, manager of the alphaWorks program. "That was a real shock to see -- here's a pet project of an IBMer that we reluctantly published on alphaWorks, considering that it seemed to lack strategic IBM value. And suddenly there's a huge community of people out there that are supporting and leading this on."

Just a few weeks into its release, it is still too early to say if CodeRally will be as popular as Robocode, which IBM officials said has been downloaded 215,000 times and has spawned a number of Web sites for competitors, most notably Robocode Central. But Goubert said that the gaming-as-learning concept, at least, has already been proven successful.

"I think this environment is a real good entry point for IBM to make more entertaining value from some of the platforms it supports, like Eclipse and Java, because entertainment seems to engage people with their work functions or programming concepts," said Goubert. "I think this is actually a good spot for developers to pick up new concepts and to learn well laid out, modular programming constructs -- and to also have a little fun in the process."

"It provides an easy entry for somebody to start learning the language," noted deBoer. "Before you know it, you've written a hundred lines of Java code, and maybe you haven't before."

"And the next thing you know," added Goubert, "you're done writing a program."


Related Links:

CodeRally home page
www.alphaworks.ibm.com/tech/coderally

Robocode Central
www.robocode.net


For other Programmers Report articles, please go to www.adtmag.com/article.asp?id=6265