INFO   Home   News   Info   Tutorials   Interviews   Forum   Mailing List   Contact leo
GAME   Downloads   Repository   Accounts   Uploads   Championship   Statistics

Italiano Italiano

MAKE a DONATION

INFO

Home
News

Info
Tutorials
Interviews

Forum
Mailing List
Contact leo
 
GAME

Downloads
Repository

Uploads
Accounts

Champions
 
HITS
Total 1262
Page 11

POWERED BY
APOCALYX 3D Engine

Visit the APOCALYX BLOG!
INTERVIEW

An Interview with Tobi, the author of i_bot,
one of the best teams of the first challenges

by leo (July 2004)

I have the opportunity to interview Tobi, author of i-bot. His team was one of the best performers in the May and June 2004 challenges gaining a second place in the "Fight" category, just behind my gunny, the winner. Let's hear the secrets of i-bot design and Tobi's opinions about the first GUN-TACTYX Championships.


leo: Tobi, I was very happy to see seven teams uploaded in the GUN-TACTYX repository to dispute the very first Championships. Can you tell us where did you hear about the contest and why did you decide to partecipate?

Tobi: Something like a year ago I first read about these programming games. There was CROBOTS by Tom Poindexter and of course JROBOTS.

I couldn't find any working version of CROBOTS, especially not the original one, so I decided to write one myself, because it would be a nice opportunity to test co-routines, ie. executing multiple functions parallel and jumping (setjmp(), longjmp()) between them. I used DJGPP (a DOS port of GCC) with DXE2 for dynamic loading of bots and the game programming library Allegro for graphics.

Around the same time I downloaded an offline version of JROBOTS and in both games I tried to write some average bots. I failed. It appeared to be very difficult to write a bot for CROBOTS or JROBOTS, mostly because of the lack of accurate sensors.

A few weeks before the first GUN-TACTYX championship I read about it on allegro.cc. Since I like programming, especially designing and programming artificial intelligence, and since I had seen games like this before, I decided to download and try the GUN-TACTYX package. Immediately, I was convinced to participate. This game has so much more realism than CROBOTS and JROBOTS, and of course, the bots have accurate sensors...


leo: I'm happy to hear that you decided to join the competition because of the thought design of the simulator.
Now I have a question that other players want to ask too: In the description of the bot you claim that i-bot is "a very simple bot made in one day". Is it true?

Tobi: Yes. i-bot has been made the last saturday before the competition, although I had been experimenting with GUN-TACTYX for a few weeks.

The tactic of my i-bot is essentially the same as rookie's, but instead of walking straight to its target it walks diagonally to its target with its torso rotated to face the target, plus a few degrees to correct the velocity component perpendicular to the aim beam:

The tactics of my "i-bot".
The (very simple) tactics of my "i-bot"

In this figure, you see my i-bot and a target. The dashed sinoid is the path i-bot will follow. As you can see, the bot's velocity vector lies, in general, not in the same direction as the vector from i-bot to its target. Because bullets fired by bots in GUN-TACTYX get a velocity vector relative to the bot's velocity, I've added the bullet velocity vector (length ~30 m/s) to the bot's velocity vector (length ~5 m/s), so that the end of the bullet velocity vector just hits the line from i-bot to its target. If we make sure i-bot rotates its torso to point parallel to the drawn bullet velocity vector, then, if it fires bullets, they will certainly fly parallel to the line i-bot -> target.

This brings me to two major weaknesses of my i-bot. The first weakness is the direction of the bullets. As you can see, the dashed line zigzags around the line i-bot -> target. This dashed line is the path i-bot will follow (1). I mentioned that my bot fires bullets parallel to the line i-bot -> target (2). So combining statements (1) and (2), you find that i-bot doesn't fire bullets straight at its target. Additionally, the angle between torso direction and line i-bot -> target is a constant in the current implementation, which is inaccurate if the velocity vector changes like in the corners of the zigzag.

The second weakness is the direction of the aim beam. Since i-bot doesn't change its aim beam to point to its target, it points in the torso direction (as drawn in the figure). Since its algorithm is much like rookie's, it checks if it will hit a mate by the return value of aim(). But this is just useless, since the aim beam has another direction than the bullets fired by i-bot.


leo: Well, the idea behind your tactic may seem simple, but I think that its implementation is not so simple, so my compliments for realizing it in a few hours.
Your i-bot took the second place of the "Fight" competition. How hard was it to get this result?

Tobi: Not too hard. Although I had been experimenting with GUN-TACTYX for a few weeks, my i-bot was coded and tested in only one day, and it got this result. So it couldn't be too hard. Of course, the other players helped a lot by submitting bots unable to defeat my i-bot ;-)


leo: In fact only gunny has got a few victories more than your bot, but i-bot has almost won the "Fight" category. Why has it missed?

Tobi: Probably the major reason for this is that i-bot hits its mates quite often. See above for an explanation of the tactics of i-bot and its weaknesses.


leo: You also said that i-bot is "almost the same as rookie and the other default bots, but this one runs diagonally to its target to avoid bullets". Which are in your opinion the possible future improvements in the behaviour of your bot?

Tobi: It shouldn't shoot at its mates. This could be acquired by directing the aim beam straight to the enemy, but this would require two extra rotations before each shot. A better solution would probably be to use the radio to communicate the positions of each mate.

Also (an improvent I made just after the first championship, though I didn't upload it) i-bot drops its weapon if it's empty and searches for a new weapon. (It's the ultimate tactic if each player initialially has only 10-20 bullets.)


leo: Among the bots of the other competitors did you like one in particular?

Tobi: I don't have really one bot that I like in particular. But in GUN-TACTYX, it is great to see bots walking in dense formations, like gunny and trooper, although it is questionable if this really is an advantage. It looks cool anyway.


leo: Players don't seem very interested in the Soccer competition. Even you haven't found the motivations to improve the behaviour of the basic bots. What do you think should be added to make Soccer matches more interesting?

Tobi: I think no one improved the behaviour of the basic bots in the Soccer competition because it is very difficult to code good Soccer bots. It's quite simple to make your bot hit the ball. But you don't win just by hitting the ball. A good Soccer bot needs an algorithm to kick the ball in a certain direction. A good Soccer bot needs communicate with its team mates. A good Soccer bot needs an algorithm to decide in which direction the ball should be kicked. Etcetera. I think the problem isn't in interest, I think the problem is in difficulty. Consider a bot and a ball rolling straight to that bot. I wouldn't know how to make that bot stop the ball. It would be easier if a bot could handle such things like stopping an incoming ball and kicking it in a certain direction automatically. You could then focus on tactics of the entire team. But this is IMHO.


leo: What could you tell us about yourself?

Tobi: I'm a student Mechanical Enineering at the Technical University of Delft. I live in the Netherlands and I'm currently 19 years old.


leo: What about your hobbies, favorite books and music?

Tobi: Currently, my favorite books are the discworld (I'm not sure if this is the correct English translation of the Dutch title schijfwereld, I'll have to look it up) series by Terry Pratchett. In short, it's fun and it's fantasy. Another great book is The Hitch Hikers Guide To The Galaxy. My favorite movies are definitely The Holy Grail and Life Of Brian. My hobbies include, but are not limited to: programming, reading, building robots (this wants to be a hobby of me but I haven't got the time yet, GUN-TACTYX was a cheap alternative).


leo: Do you have any particular suggestion to make GUN-TACTYX a better game?

Tobi: It has already been suggested on the forum by someone else: add some functions to read/write external data from file, so that genetic algorithms and neural networks can be implemented. Something like this for example (where xxx.dat is a datafile for each bot):

new data_array[10]
read(data_array, 10)
// Read xxx.dat and store the first 10 cells in data_array.
write(data_array, 6)
// Write the first 6 cells of data_array to xxx.dat.

Another suggestion would be to do "atomic sensors" or "atomic sensor mode": a way to make sure that, for example, yaw and pitch returned by watch() are measured at exactly the same time as x, y and z returned by getLocation(). You could add a function pollSensors() which reads all sensors and stores the results for retrieval via watch(), hear(), etcetera, but the game might become too easy with 100% accurate sensors. Also, it isn't quite realistic.

It's currently almost impossible to write bots which actively avoid bullets with the 1 sec delay between consecutive move actions. It could be an idea to shorten the delay or remove it at all.


leo: Thank you very much, Tobi, for your answers. I'm sure that the other players will read them with interest. Let's see in the next challenge if any player will succeed in writing a fighter better than i-bot.

Tobi: I suppose they'll do. (Unless I find the time to improve i-bot, hehehe, which I didn't, maybe next challenge...)

For more information
send an email to
APOCALYX 3D Engine
Copyright © 1999-2008 Leonardo Boselli
All rights reserved. Legal Terms.