[Home]Drifter

Robo Home | Changes | Preferences | AllPages

Difference (from prior author revision) (major diff, minor diff)

Changed: 17c17
http://www.7sun.com/robocode/robots/tcf.Drifter_13.jar
http://www.7sun.com/robocode/robots/tcf.Drifter_20.jar

Changed: 21,33c21,23
Drifter 1 -- 1764 after 2004 matches.

Drifter 2 -- 1774 after 2106 matches.

Drifter 3 -- 1839 after 2110 matches.

Drifter 4 -- 1877 after 1550 matches.

Drifter 5 -- 1870 after 840 matches.

Drifter 6 -- 1878 after 1361 matches.

Drifter 7 -- 1891 after 2032 matches.

Drifter 8 -- 1900 after 2011 matches.

Drifter 9 -- 1909 after 2123 matches.

Drifter 10 -- 1917 after 2144 matches.

Drifter 11 -- 1925 after 2191 matches.

Drifter 12 -- 1925 after 483 matches.

Drifter 13 -- 1936 after 815 matches.
Roborumble rating: Drifter 20 -- 1965 after 2047 matches.

For ratings for older versions, and for results in various challenges, see the /Results page.

Changed: 37c27,29
Its a GoTo type of bot, with Shrapnel Surfing against HOT, Linear, Circular and GuessFactor predicted bullets. It learns which of the bullets is closest to hitting the bot, and attempts to dodge it.
Before version 20, Drifter was a GoTo type of bot, with Shrapnel Surfing against HOT, Linear, Circular and GuessFactor predicted bullets.

Version 20 changed this to remove the Shrapnel, and to directly "surf" the GuessFactor data. It makes up guess factor data for the HOT, Linear and Circular predicted bullets, and basically does a simple form of CrowdTargetting to merge it's buffers into one.

Changed: 39c31
The arena area is divided up with a 25 pixel grid. The grid points are initialised by setting some of the points to 1. These points are: the points closest to the centre of each opponent, the points nearest to each prediticted bullet, and the points halfway between each opponent. A flood fill algorithm is then used to set all adjacent points to 2. This is then repeated with 3, and so on, until the whole grid is filled. Thus this gives an idea of where on the grid is close to and where is far from all dangerous places to be (higher numbers are better.)
The arena area is divided up with a 25 pixel grid. The grid points are initialised by setting some of the points to 1. These points are: the points closest to the centre of each opponent, and the points halfway between each opponent. A flood fill algorithm is then used to set all adjacent points to 2. This is then repeated with 3, and so on, until the whole grid is filled. Thus this gives an idea of where on the grid is close to and where is far from all dangerous places to be (higher numbers are better.)

Changed: 47c39
Fot each point to be searched, Drifter models how the robot would move to get to this point, and adds up the grid scores for each tick. The score for each tick also includes a negative bonus of -10000 for points near the position of each predicted bullet.
Fot each point to be searched, Drifter models how the robot would move to get to this point, and adds up the grid scores for each tick. The score for each tick also includes a negative bonus for points intersecting parts of a wave.

Changed: 51c43
GuessFactor gun (with 31 sectors). The available angle ahead and behind is calculated using a simple lateral acceleration model to predict reality a little better than using the simple asin(8 / bulletSpeed).
A DynamicClustering GuessFactor gun (with 31 sectors). The available angle ahead and behind is calculated using a simple lateral acceleration model to predict reality a little better than using the simple asin(8 / bulletSpeed).

Added: 58a51
|| 14..17 |abs lateral velocity (3 segs)|distance (5 segs)|lateral acceleration (3 segs)|distance ahead|

Changed: 97c90
Loads... For example:
Loads... For example (Drifter 13):

Drifter

Author

Tim Foden (tcf)

Extends

AdvancedRobot

What's special about it?

Nothing much.

Great, I want to try it. Where can I download it?

http://www.7sun.com/robocode/robots/tcf.Drifter_20.jar

How competitive is it?

Roborumble rating: Drifter 20 -- 1965 after 2047 matches.

For ratings for older versions, and for results in various challenges, see the /Results page.

How does it move?

Before version 20, Drifter was a GoTo type of bot, with Shrapnel Surfing against HOT, Linear, Circular and GuessFactor predicted bullets.

Version 20 changed this to remove the Shrapnel, and to directly "surf" the GuessFactor data. It makes up guess factor data for the HOT, Linear and Circular predicted bullets, and basically does a simple form of CrowdTargetting to merge it's buffers into one.

The arena area is divided up with a 25 pixel grid. The grid points are initialised by setting some of the points to 1. These points are: the points closest to the centre of each opponent, and the points halfway between each opponent. A flood fill algorithm is then used to set all adjacent points to 2. This is then repeated with 3, and so on, until the whole grid is filled. Thus this gives an idea of where on the grid is close to and where is far from all dangerous places to be (higher numbers are better.)

After the fill algorithm has completed, points near opponents are set to -999999, so as to avoid hitting them.

It then does a search for the path with the highest value.

It searches only 37 points from an (-8..8, -8..8) square. The point are (successive diamond shapes where manhattan distance = {0, 4, 8, 12}, and only even points (-8, -6, -4, -2, 0, etc.)

Fot each point to be searched, Drifter models how the robot would move to get to this point, and adds up the grid scores for each tick. The score for each tick also includes a negative bonus for points intersecting parts of a wave.

How does it fire?

A DynamicClustering GuessFactor gun (with 31 sectors). The available angle ahead and behind is calculated using a simple lateral acceleration model to predict reality a little better than using the simple asin(8 / bulletSpeed).

Version Segmentation
1..3relative heading (8 segs) distance (4 segs)
4 lateral velociy (5 segs) distance (4 segs)
5 abs lateral velocity (3 segs)distance (6 segs)
6..8abs lateral velocity (3 segs)distance (6 segs)lateral acceleration (3 segs)
11..13 abs lateral velocity (3 segs)distance (5 segs)lateral acceleration (3 segs)
14..17 abs lateral velocity (3 segs)distance (5 segs)lateral acceleration (3 segs)distance ahead

Firepower:
dist <= 100 -> 3
dist > 100 -> 2.5
max firepower = getEnergy() / 20

How does it dodge bullets?

See How does it Move above.

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

No difference at this time.

How does it select a target to attack/avoid in melee?

Fires at closest opponent bot.

What does it save between rounds and matches?

GuessFactor values are saved between rounds.

Nothing is saved between matches.

Where did you get the name?

Out of thin air.

Can I use your code?

Nope. It's too embarrassing to put on public display! :)

What's next for your robot?

Improvements to anything that can be improved. :)

Does it have any WhiteWhales?

Loads... For example (Drifter 13):

Krabb.sliNk.Garm 0.9rb -22.7
abc.Tron 2.02 -25.5
areb.Union 1.06 -20.3
chase.na.Seraphim 0.052c -34.2 !!
cx.micro.Smoke_0.96 -25.5
intruder.PrairieWolf 2.61 -29.7 !!
voidious.mini.Komarious 1.78b -20.7
mladjo.Grrrrr 0.9 -19.2

What other robot(s) is it based on?

None.


Comments, questions, feedback:

Hey, I suggest you segment your gun slightly differently. First things to try are LateralVelocity (3 - 5 segments) and distance ( 5-7 segments,). Next useful is probably acceleration (accelerating, constant velocity, decelerating - make sure to use absolute values of velocity! =) ), then something like time-since-deceleration or time-since-lateral-direction-change. But don't take this as gospel, you might find your own combination that works really well =) -- Skilgannon

Thanks for the comment. I'll certainly be looking into making my gun better at some point. As you've noticed... at the moment it's pretty basic! :) I literally just made it the simplest thing that could learn to hit SpinBot. Since then, I've just been working on the movement. I've got it doing pretty well on the (original -- read easy) WaveSurfingChallenge BTW :) I'll post some results at some point in the future. But your suggestion will be noted well, and in fact, I can probably use it in the movement, to get my GF based avoidance working. -- Tim Foden


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited June 5, 2008 23:56 EST by Tim Foden (diff)
Search: