Robo Home | Changes | Preferences | AllPages

A component of the MovementChallenge2K6:

The WaveSurfingChallenge2K6 gives you a way to measure your bot's ability to avoid getting hit by very predictable targeting systems. To measure your bot's movement against bots with advanced targeting systems, use other parts of the MovementChallenge2K6.

Avoiding HeadOnTargeting seems easy, while LinearTargeting does cost some more effort. CircularTargeting can hit you hard while on the (wall)smooth.


Your bot's score is average amount of life you had at the end of each round. 100 means that the reference bot never hit you. You calculate your score like this:

 100 - (reference bot's bullet damage score / 500)

You can use the MovementChallenge calculator for the calculations. Just upload the Roboleage results file to it: http://robowiki.net/cgi-bin/MCCalc

Nota bene! In this challenge it is very important that you run 500 round battles. No longer. No shorter. If your movement is the least bit adaptive your scores can be quite different with the amount of time your challenger has to learn.


Bot Name Author Type Score vs. Bot AScore vs. Bot BScore vs. Bot COverall Score Comment
DrussGT 0.3.10* Skilgannon WS-GT 99.95 99.71 99.24 99.63 2 seasons @ 500 rounds
Ugluk 0.15.8 Martin MM 99.44 99.93 98.49 99.29 500 rounds
Engineer 0.3.2 wcsv WS 99.69 99.42 98.62 99.24 500 rounds
Dookious 1.534 Voidious WS 99.99 99.50 98.02 99.17 5 seasons
Drifter 10 Tim Foden SS 98.72 99.94 98.83 99.16 1 season
Phoenix 0.512 David Alves WS 99.90 99.31 98.09 99.10 500 rounds
PowerHouse 1.7e3 wcsv WS 99.55 99.29 98.34 99.06 500 rounds
WaveSerpent 1.2 Kev WS 99.97 99.14 97.49 98.87 500 rounds
Chalk 2.3.He Corbos WS 99.25 99.08 97.98 98.77 2 seasons
CassiusClay 2theta* PEZ WS 99.84 98.30 97.16 98.43
CassiusClay 2eta* PEZ WS 99.93 98.07 97.06 98.35
Drifter 13 Tim Foden SS 99.04 99.90 95.51 98.15 3 seasons
Shadow 3.66 ABC WS 99.61 97.08 96.93 97.87
WSMini Simonton WS 99.10 97.41 96.88 97.80 Drawing in desired distance really helps
PowerHouse 1.5f3 wcsv WS 99.70 98.05 95.46 97.73 Same movement as 1.5f
Lukious 1.04* Voidious WS/DC 98.80 97.36 96.90 97.68
Cunobelin 0.1.0 Skilgannon WS 99.93 96.84 95.13 97.29 best distance = 400, max retreat = 0.3 radians
GresSuffurd 0.2.7* GrubbmGait WS 99.56 96.19 96.09 97.28 2 seasons 500 rounds
PulsarMax 0.8.9 Pulsar WS 99.41 97.86 93.33 96.86
Yoda v1.0 Gorded WS 98.66 98.14 92.66 96.53 500 rounds
Shadow 3.70e ABC WS 99.89 96.17 93.22 96.42
Krabby2 1.9g Krabb WS 96.74 97.95 91.67 95.46 1 season
Horizon 1.0dev AaronR WS/DC 99.84 89.29 93.61 94.25 500 rounds, desired distance = 500
RaikoMX 0.32 Jamougha WS 99.87 96.25 85.23 93.78
Cyanide 1.80.bTC Alcatraz WS 99.31 95.57 86.34 93.74
X2 0.13 Florent WS 99.36 95.58 86.07 93.67
Chalk<dev> Corbos WS 97.63 94.1 88.57 93.44
GrubbmGrb 1.2.1* GrubbmGait MM 89.69 95.88 93.77 93.11 5 seasons
SilverSurfer 2.53.33 Axe WS 99.87 89.85 86.41 92.04
Velshea 1.0.0 Chase-san WS 99.79 90.04 86.09 91.97 500 rounds
Puzzle 2.23 Kev MM 91.17 91.55 91.03 91.25
Gladiator dev KID WS 94.52 91.06 86.47 90.68
Pear 0.62.1 Tide WS 99.42 86.75 85.76 90.64
Waylander 0.3.2 Skilgannon S&G 88.82 89.26 89.81 89.30 1 season @ 500 rounds
WeeklongObsession Simonton S&G 87.55 86.56 86.85 86.99
Calculator Starrynte WS 91.26 84.19 76.83 84.10 15% score improvement
Komarious 1.23 Voidious WS 99.68 77.64 71.48 82.93 2 seasons
Strength 0.6* Greywhind WS 87.83 66.39 63.41 72.54
BasicSurfer 1.0 Voidious WS 91.59 58.87 61.09 70.51
Strength 0.7dev Greywhind WS 86.54 51.85 47.14 61.84
Evader Starrynte S&G 74.65 41.15 50.37 55.39
Freya 0.80 Loki MR 47.50 21.56 35.64 34.90

Movement types:

 S&G: StopAndGo
  WS: WaveSurfing
  SS: Shrapnel Surfing
  RM: RandomMovement
  MR: Minimum Risk


98.84 vs. Bot C? Wow, very nice! --David Alves

Hey thanks, man (and congrats to you too on the highest score so far). I guess it really pays to iron out as many bugs as possible in a surfer.

Well I seem to have re-introduced those bugs, I can't seem to get to that level with the current version (more like ~600 against bot B), so I think you'll definitely break 99 against Bot C before me... maybe you can get 99.5 overall? =) Although, we should really delete all those records and start using 500 round battles, as per the discussion on the MovementChallenge2K6/ResultsChat page. --David Alves

Yeah, it's a bit unclear though. Is it officially decided that 500 rounds should be used for the MC2K6? If so then we should change this page to reflect that. --wcsv

Yes, we discussed it when the challenge started, and agreed on 500... the template .xml with the reference bots has 500, too. Either we overlooked changing the instructions to 500, or it was reverted from a SPAM attack at some point. :-\ I just changed it to 500 above, since there were no objections, cool? -- Voidious

Thanks, I changed my results to reflect 500 rounds (although it didn't do much). I also changed the other references to 1000 rounds in the instructions. --wcsv

I can't come close to that BotC? score in 500 rounds... very well done! --David Alves

Yeah, you guys are crazy. :P I'll post updated MC2K6 scores for Dookious tomorrow, although his movement has hardly changed since 0.98. -- Voidious

I am running into an unforseen obstacle in pursuit of perfection in the wave surfing challenge. The targeting bot's gun is firing before the gun is aimed. This means that my prediction of the bullet's path is not always accurate. It usually is, and my dodging of the bullets is so scarily precise that it makes me nervous watching it. But on occasion a bullet is fired prematurely and off course, so I am dodging a ghost and likely to get smacked. If I really really wanted to go there, I could keep track of where the bot's gun is heading at the time of firing. But I don't. That's a bit too focused on challenge. -- Martin

Very nicely done, Martin! --David Alves

I think you should put the BasicSurfer on here just for reference. -- Chase-san

I added Velshea's new movement score, its alot better then I had ever expected or hoped for. Its still not the best but, I learned alot by studying CassiusClay, Komarious, Dookious, Chalk, and RaikoMX. David Alves also walked me through the original build. -- Chase-san

"WSMini" with scores like that? Uh oh.. =) -- Voidious

:) Hehe. Well it looks like that lands me in 4th place in the mini rumble (that's the movement I'm using for WeeksOnEnd). I'm just sitting down to work on it some more, but I don't ever expect to dethrone Komarious. That is one fine machine you've built. Much like Dookious, I guess. Maybe if I ever get around to a GFMini ... Pattern matchers can be good, but I just don't think the concept is as good as GF guns. -- Simonton

Yeah, evidence seems to point to GF guns simply being stronger than PM for 1v1. The PM could be smaller and allow you some extra polishing of your WaveSurfing, though. This discussion is a little dated, but this is a good discussion to check out on the issue: FeederOfRavens was a test of Pugilist with a nano-style PatternMatching gun and ranked quite a bit lower than Pugilist itself. There's a bit of chat about the test on that page. -- Voidious

I think 0.01 is within the margin of error =), but it's nice seeing Dookious with a respectable score here. Now we'll see if my harsh dive protection sends the rating plummeting... -- Voidious

Ok, replaced the 1 season of 1.53 with 5 seasons of 1.534. Down to third, but still very very happy with the scores and the rating. -- Voidious

Not bad Gorded, Yoda looks well on its way. --Chase-san

I just discovered that segmenting on AdvancingVelocity helps LOTS against bot C, but it seems that my 'rambot' problem has returned. Unless I get to subtract the 182 ram damage from his bullet damage? Then I'd be at 99.4% against bot C =). -- Skilgannon

Very impressive scores, I didn't think scores that high were even possible! Could you post the WSC version of your bot so I can watch it fight? I want to see how it copes with the unpredictability in B/C due to their aim accounting for walls. --David Alves

Crazy scores, I know. I'm testing it, and it now loses quite a few points to HawkOnFire. So it seems it has some WSC-specific PerformanceEnhancingBugs. I'll get a WSC-version out for you guys to test =). -- Skilgannon

And I think reducing the preferred distance makes it so that it doesn't wallsmooth as much, increasing the BotB? and C scores. Another advantage is that all the hits land in the same distance-segmented bins. Of course, it doesn't help in the actual rumble =) -- Skilgannon

Well, I screwed the code up somewhere, and can't get above 97.5% against bot c anymore. I got a backup of the code before I had changed very much, but otherwise I think that it may have just been a fluke season, just because those results are so amazing. I did get a screenshot of the results, so I don't think I'm going insane yet, but I don't know what changes I made. Grrr.... I'll run another season with an earlier version, and update the scores (which will definately come down). I don't feel right with unreproducible scores up there. -- Skilgannon

If you want to watch it in action.... [1] just rename to DrussGT.java, compile, and run =)-- Skilgannon

Hmm, against bot C and bot B, my current development bot is only scoring about 50% or so which is rather poor. Observing it battle, it appears to be nearly completely because of how bots B/C never ever shoot outside of the map bounds. I suppose the effect is so dramatic in this case, because my current development bot has a habit of staying as far away as possible and thus is up against walls or approaching them a lot of the time. Not only does it cause me to get hit near walls, but it also seems to cause data pollution making the ordinary shots harder to dodge properly. I suppose it's important to either have proper distancing that leads to less wall interaction, or to have some good wall segmentation going. I'm currently thinking a good wall segment would be timeToHitWall?()/distanceToEnemy?(), where the first is assuming linear movement and the second is from the wall impact point to the enemy. I guess I'll have to experiment with both of those :) -- Rednaxela

Or you could just set a closer default distance. Using distance as an attribute is also useful. It helps to differentiate the data from the noise. Once you do that, if your surfing is still getting bad scores, I would check that you have all your physics right, ie. taking data from 2 ticks ago, firing from one, and all that. -- Skilgannon

Well, I'm pretty sure I have my physics right, because firstly my waves are lining up properly, and because at once point I had no "tolerance" factor accounting for enemy inaccuracy, and I had it set up to dodge with advancing/retreating movement (yes, weird, I know, and note, advancing/retreating relative to the current enemy location rather than the wave) and when watching it battle against Walls, it was able to dodge perfectly with that movement alone and it would stop exactly when it knew it was safe, the great part was that virtually every bullet of Walls was passing over the "wheels" and such at least a pixel or two inside the image, but never quite hitting the bot. In other words, it appears my dodging is completely "pixel perfect" where the opponent's aim is perfectly predictable, probably partially thanks to my exact botwidth. I could just set a close distance indeed, except that sort of thing leads to a more perpendicular model. Currently I'm more curious about the what I can manage to do with it's current "free moving" model that is only motivated to keep distance by a tendency to flee when there are no waves in the air and how likely it is to get hit with given movements (generally far away, but strays closer when it seems the best way to get to a safe guessfactor). If wall segmenting doesn't work I'll probably indeed try a closer distance, but I think wall segmenting could make it perform well at the current distance. Also, it appears my bot was freezing up on rare occasion so it looks like I have some infinite loop somewhere causing problems from time to time, though much of my loss in score is not when that was happening anyways. Thanks for the tips in any case though. -- Rednaxela

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 23, 2008 7:14 EST by Tim Foden (diff)