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.
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