Admittedly, the most relaxing and fun way to learn something is by playing a game that encapsulates the concept/logic behind it. Robocode is an open source game that lets you easily set and tweak the movements and firing behavior of a virtual robo-tank, thus helping you to enter the world of basic artificial intelligence development.
The aim of the game is to create the “smartest” robot that will be in a position to kill any kind of enemy before it gets destroyed. Characteristically, the motto of the game is “build the best, destroy the rest”
What you see in the above screenshot are some sample robots with different behavior pattern, fighting each other in a ten-round game of virtual destruction. Our job here is to determine how “MyFirstRobot” could change behavior in order to become better against all the other robots, taking into account all the different fighting characteristics that our enemies exhibit.
Creating a new robot on Robocode is a piece of cake, but creating the ultimate fighting machine may take some constructive and logically imaginative time :)
This is how a new robot sample looks like. You can keep tweaking movement and gun rotating values, load the other included robots to see how to implement new abilities or use other commands for your bot, or just go ahead and dig in the API to find all you’ll ever need. Compiling your newly created robot is done in-game, by the included Robocode java compiler.
There are also many physics factors to take into account when programming a robo-tank on Robocode like the bullet velocity and its power, or the turning speed and forward speed and how all these values are connected mathematically to create precisely what you want.
Other more advanced abilities include guessing technics for robots.
An illustration of GuessFactors, in this case using precise-predicted max escape angles
You will find yourself spending hours of “coding” your robot and after you created the best killing machine you may want to create its nemesis etc. It’s a never ending story of limitless imagination and creation joy.
The only thing that I found to be missing really from Robocode is the ability to go multi-player. It would be fantastic if I had the ability to connect to the internet and fight other people’s robots, but the ability to compile, package and upload your robot somewhat mitigates the misfortune of the multi-player absence.
Other than that, Robocode is a simple and straight forward way to start developing basic AI and one of the best ways for children to learn basic programming and how words and numbers reflect into real motion and behavior changing.