(redirected from TAOW)

[Home]TheArtOfWar

Robo Home | Changes | Preferences | AllPages

Questions and Comments

Just curious: has anyone used code from TheArtOfWar? Is it just too big and bloated, or are the copyright restrictions too cumbersome? Would switching to a GPL-style license encourage people to use the code? I don't have time to compete, but it would be nice if even just a little piece of TAOW contributed to the bot that some day knocks SandboxDT off the 1-on-1 throne. :-) -- Ray Vermette

Ummm, I often dig in the code to see how you have solved on or other issue I stumble across. It's inspiring to read the code and see how I should have structured my own. =) I think I might some day soon base a robot entirely on TheArtOfWar code structure and then add aiming techniques and movement from there. Not that I have too high hopes to knock down DT, but I just might. =) What are the copyright restrictions anyway? -- PEZ

You know PEZ, I found out that structurisation (is that a valid word?) is a bad thing. Just read through fushi's pvp bot and found out that it consists only of pattern matching gun, random movement and centre orbiting movement. But "thanks to" its structure the codesize is about 8500... -- lRem

Well, I see nothing bad with 8500 codesize. Unless you're making a MiniBot of course. Noone sane would base a mini on TAOW. But even with minibots structure can sometimes save bytes. -- PEZ

How does it move?

Its movement is based almost entirely on AntiGravity. AntiGravity points are assigned to enemy robots, the predicted paths of enemy bullets, walls, and the battlefield center in a melee battle.

How does it fire?

TheArtOfWar has a pretty complex algorithm for Targeting and SelectingFirePower, which in retrospect, could be much simplier. It uses a number of different Aiming? techniques, and keeps track of hits and misses to help it select the best aiming algorithm for each opponent.

How does it dodge bullets?

When TheArtOfWar detects a drop in the opponent's energy which might indicate a bullet being fired, it plots three possible bullet paths: one fired using LinearAiming? (i.e.: straight at TheArtOfWar's current position), one fired based on TheArtOfWar's average speed, and one using an interative aiming technique. If AntiGravity forces were assigned to the bullets' current positions, the combined forces would cause TheArtOfWar to move backwards (bad!) instead of dodging left or right (good!), so I assign AntiGravity forces to the points where I expect the bullets to impact TheArtOfWar.

How does the melee strategy differ from one-on-one strategy?

If I remember correctly, the only difference is in melee, TheArtOfWar assigns a weak AntiGravity force to the center of the battlefield to encourage it to stay in the corners (where it is safe!).

Where did you get the name?

From "The Art Of War" by Sun Tzu, the world's oldest military treatise.

Can I use your code?

Sure. The source code is available on the RobocodeRepository.

What's next for your robot?

I think I will leave it alone. It serves as a useful milestone for robot development and just goes to show you how far robots have advanced since TheArtOfWar was written. It use to rank near the top; now it's lucky if it cracks the top 35 in one-on-one. It's still half-decent in melee.

What other robot(s) is it based on?

TheArtOfWar is based on two previous robots I wrote: [RayBot] and a one-on-one robot called, oddly enough, "One".

TheArtOfWar is open source and the code for it can be found on the RobocodeRepository . You can read more about it at [The Art of War Home Page].

-- Ray Vermette

Comments

Half-decent in Melee? Nah! It's one of the very best melee bots out there. And this without updates for what in Robocode land must count as ages. -- PEZ

This bot won the ChampionsLeague? on EternalRumble June 12 2003. It does this at times. This is one strong Melee bot! -- PEZ

And it's still ranked 4th in Melee on the EternalRumble. -- Kawigi


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited January 15, 2007 19:00 EST by Starrynte (diff)
Search: