That's right, it's WAR!

 


"War! Huhh! Good god! What is it good for!?" I'll tell you what it's good for, it's good for showing off your Java, that's what it's good for...

This is the final (double) practical project for this course. In it we'll be building Artificial Intelligence tanks for a right royal ruck at the end of the course.


In this practical and the next we'll be building what is loosely known as an "Intelligent Agent" - that is, a rule-based piece of autonomous code that interacts with its environment. This will probably be your first experience of programming an "Artificial Intelligence" (AI). In our case the AI will be a small, but deadly, tank. Your mission, as a team, is to develop the tank which beats the other teams' tanks in a battle situation.

At the end of the last practical we'll have a battle royale to see which team comes up with the best tank.

These two practicals are really an introduction to the Advanced Skills course and the kinds of practicals we'll be doing on that course, which are much more about playing around with technologies (it's "advanced" in the sense of progressing, not in the sense of difficulty -- you've done the difficult bit!).

Screenshot: Danger!

The last third of the Advanced Skills course will introduce you to some of the theory around geographical, environmental, and ecological modelling, using Agent-based modelling as the main example. You'll learn a lot more about Intelligent Agents, and solutions to some of the problems you'll come across in this practical: How do we model social and environmental interactions? Why would we want to make computers act like they're thinking? What kinds of real behaviour can we replicate and how can we tell when we're doing it well?


You're in the army now.

To survive the war and gain your marks you must develop tanks that run in the IBM Robocode environment. Robocode is a battlefield simulation environment plus an API for writing small intelligent tanks that run in the simulation.

Unfortunately because of the way the file permissions work, you'll have to install it in your "m" local directory. You can download the setup jar from our website here or download it from the Robocode site. Either way, once you've downloaded it, double click the file in Windows Explorer and install it in the directory m:/robocode/. It is ~3.5Mb, so shouldn't stretch your filespace too much.

If it doesn't install when you double-click on the file, right click on it, and select to open with the Java SE or javaw, or run javaw -jar robocode-1.9.2.4-setup.jar At worst, change the file extension to .zip and extract the files to the above location.

It is important everyone installs it in the same directory. During the install process, don't add a shortcut to the desktop or any file associations, instead, to run the program look in the install directory for a file called robocode.bat and double click that.

The environment comes with a set of example tanks for you to battle against for practice. However, the first thing you'll need to do is learn about the API and how to program the tanks.

To do this you'll need to work through the Beginners' tutorial for a first robot.

Once you're happy you understand the idea behind the tanks, the best bet is to divide the different methods controlling them between your group, coming together to discuss behaviour conflicts. To start you off, there is a three-fold process of adding a tank to the environment...

  1. Edit your tank.
  2. Compile your tank.
  3. Package your tank.

 

Each team should also make a team website where people can download their tanks (including source code) from towards the end of the second practical. You can find details of how to write webpages at this tutorial which includes details of how to set up your own website if you have access to the Uni "m" drive.


The Final Countdown.

 

The following table details the conditions the battles will be run in.

Battlefield size 800 by 600
Gun cooling rate 0.1
Inactivity Time 450
Number of tanks Each team may submit two tanks.

Teams.

 

Prepare for trouble, and make it double; it's Team Rocket.

Ahh, look, a lovely helpful robot, bringing... is that... a gut-strewn massacre? Why, it's Team Old School Robot.

They came from Mars! (the god of war, not the confectionery company!) It's Team Robot Red Panther!

Fighting a lone battle against all-comers, it's Team RoboCorp!

They Destroy; they Wreck; they Kripple; they Shred! They may not be able to spell their own names, but they can surely kick ass, it's Team DWKS!

Send Andy your team websites when you have them.

May the gods be with you. Good luck!