[Home]Movement/FlatMovementProfile

Robo Home | Movement | Changes | Preferences | AllPages

Difference (from prior major revision) (author diff)

Changed: 1,62c1
This is a term describing a movement as it is observed from a robot shooting with StatisticalTargeting in general and GuessFactorTargeting in particular. To trick these targeting methods you should try get as "flat" a profile as possible. To illustrate what it means let's look at a movmenet profile of Mako 1.3.1:

http:/robocode/uploads/pez/Mako1.3.1-251-490.jpg

This profile graph is drawn from data collected by StatistRobot. Never mind the blue curve. The red curve shows the "guess factors" visited by Mako as measured after StatistRobot has fired a virtual bullet, or 6792 virtual bullets to be more exact. Like so:
# StatistRobot fires a bullet and looks at where the enemy bot is heading lateraly.
# When the bullet is at the same distance from the firing location as the enemy the bullet can be said to be "finished".
## If the enemy bot has continued in the same lateral direction as it was when the bullet was fired it registrers a point at the far right end of the graph. (Guess factor 1.0)
## If the enemy bot has changed direction and traveled the full distance it possibly could a point is registrered at the far left of the graph. (Guess factor -1.0)
A bot that manages to flatten this curve distributes its movement evenly over the guess factors from -1.0 to 1.0. The Mako graphed above obviously fails to do this and is often moving near guess factor 0.0 (meaning you would hit it a lot using HeadOnTargeting). Other profiles might show spikes at guess factor 1.0 (meaning the bot is very often traveling in the same lateral direction for the full BulletTravelTime, like Walls). Or spikes at -0.3 (meaning the bot often changes direction after being fired at, but doesn't travel the full distance).

For a comparison check this profile which is from Mako 1.5 (not released as of June 8 2003). It is from a longer run against StatistRobot so it looks smoother. But it's also much flatter. I think it's the flattest I've managed to create so far.

http:/robocode/uploads/pez/Mako1.5_251-490.jpg

The curve showing SandboxDT 1.81 at this distance (and near and far distances) for a comparison can be found on the SandboxDT page.

You will note that acording to statistRobot, Mako's movement at this range is better than DT's - (acording to DT's internal stats Mako has better movement than DT between the range of 360 and 440) alot of battle takes place in this range. Why does Mako lose?

Is it:
*DT does not fire 3.0 bullets at this range (and Mako is good at movement only against 3.0 bullets).
*DT has better movement against 3.0 bullets than Mako at ranges 0-360 and 440 and above.
*StatistRobot only does guess factors for what I call Absolute GuessFactorTargeting and not Linear GuessFactorTargeting (see SandboxMini source for more details). (if your robot does not always move at right angles it is more susceptable to linear guess factors and StatistRobot underestimates the hit rate.
*DT has better guns
*all of the above :)

Even so Mako has reasonably sound movement and is not very susceptable to the highly segemented guns of DT well done PEZ. However the bad news is that Mako has also shown that there is room for DT movement to improve (especially against 3.0 Bullets) so watch out for the next version of DT if you fire 3.0 bullets. -- Paul Evans

Thanks! I don't mind making you feel you must improve DT. =) After all DT has been forcing me to keep improving my bots all the time. Also thanks for feeding the wiki with all this valuable knowledge of yours. I have suspected Mako is weaker against bullets fired with other power than 3. I will work on that. Though I think most of the difference between Mako and DT performance is due to the guns. Especially the later versions of Mako have crippled guns and they can never even start to compare with the best guns in the population. It's amazing Mako gives DT the fight it does. -- PEZ


OK PEZ, according to Paul's latest post on the repository you have managed to flatten your curve out to the point you are close to matching DT. Would you care to share some tips? jim

Did I say that - I think I was refering to DT1.81 --Paul Evans

Sorry jim, but right now I'll keep it a secret. It has been hard work for my PowerBook and straining on my sanity to tune this movement and I think it right now gives Marshmallow an edge that it needs to kling on to a top-5 ranking. I can say this much:
* Make heavy use StatistRobot
* Don't misinterpret the scale of StatistRobot's graphs
** Think of -49 as -1.0 and +49 as +1.0. They are guess factors. A spike at the +1.0 end says that you often complete your travel in the same direction as you where traveling at the time the virtual bullet was fired at you. Negative factors occur when you have changed direction since the virtual bullet was fired.
* Try different tuning factors and be careful with how you measure their performance.
** I use a simple but slow measure: the win ratio of my robot. Like so:
*** Choose a factor
*** Run 1000 rounds against SandboxDT
*** Note the factor and the win ratio
*** Repeat (I think I have gone through this loop 100 times, and that on my Java-slow PowerBook...)
** I combine this with DynamicFactors, much like Kawigi does with his DynamicDistancing

Further, if you run Marshmallow against StatistRobot you will notice that it is not a very flat profile at all. I've seen other bots have flatter profile, including some of my own. Flattness is only a means to an end. The end in my case being to avoid DT's bullets.
-- PEZ

Paul has also tested Kawigis HT-movements and said that it is good, even better than DT 1.71 at close ranges. So it can be worth studying the movement code in MakoHT/Code. All of Kawigis' bots are OpenSource so you could also check FloodMini I guess. -- PEZ

Thanks for the pointer guys. I am interested in techniques on controlling my movement profile and these are all good suggestions. I am going to suspend development on Jekyl a bit as I work on my Poison movement system. These are all ideas that should find their way into it. Thanks again. (PS: Congrats PEZon getting M to #4) jim




I'm still confused about the blue curve. What does 'the more increasable probability' mean? - Vuen

I can't remember precisely how it's done, but i remember reading somewhere that the blue curve shows the data when the virtual bullets are weighted according to some factor. All i know for sure is that the blue curve tends to make my movement look bad so i tend to ignore it... --Brainfade

The red curve is the entire history of dodging statistics. However, the blue curve is the curve the bot actually uses to fire. It is "weighted" in a sense in that the most recent values get the most weight. It uses what Paul Evans calls "rolling averages". -- nano

Just ignore the blue curve as long as you are using the graphs to tune your movement profile. It's impossible to keep the blue curve flat. -- PEZ
See MovementProfile

See MovementProfile

Robo Home | Movement | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited November 5, 2003 9:52 EST by PEZ (diff)
Search: