Difference between revisions of "Dookious/DookiCape"

From Robowiki
Jump to navigation Jump to search
(DookiCape subpage for Dooki's movement - wiki table converter working well)
 
m (reformatting this page a little)
Line 1: Line 1:
 +
== Background information ==
 +
 
Count Dooku travels through space on a Geonosian Solar Sailer; thus, Dookious's movement class was originally called "[[Dookious/DookiSailer|DookiSailer]]". After a full (and slightly painful) rewrite, it is called [[Dookious/DookiCape|DookiCape]]. It is a WaveSurfing movement. It is one of the best movements in the RoboRumble; in terms of collecting RR points, it's almost certainly the best right now.
 
Count Dooku travels through space on a Geonosian Solar Sailer; thus, Dookious's movement class was originally called "[[Dookious/DookiSailer|DookiSailer]]". After a full (and slightly painful) rewrite, it is called [[Dookious/DookiCape|DookiCape]]. It is a WaveSurfing movement. It is one of the best movements in the RoboRumble; in terms of collecting RR points, it's almost certainly the best right now.
  
----
+
== Challenge results ==
  
 
'''[[MovementChallenge2K6]]'''
 
'''[[MovementChallenge2K6]]'''
 
+
<small>
 
{| border="1"
 
{| border="1"
 
|align="left"|Version
 
|align="left"|Version
Line 29: Line 31:
 
|'''47.77'''
 
|'''47.77'''
 
|align="center"|'''61.30'''
 
|align="center"|'''61.30'''
|
 
 
|-
 
|-
 
|''0.965''
 
|''0.965''
Line 42: Line 43:
 
|'''47.95'''
 
|'''47.95'''
 
|align="center"|'''60.85'''
 
|align="center"|'''60.85'''
|
 
 
|-
 
|-
 
|''0.95''
 
|''0.95''
Line 55: Line 55:
 
|'''46.86'''
 
|'''46.86'''
 
|align="center"|'''60.68'''
 
|align="center"|'''60.68'''
|
 
 
|-
 
|-
 
|''0.94''
 
|''0.94''
Line 68: Line 67:
 
|'''47.72'''
 
|'''47.72'''
 
|align="center"|'''60.74'''
 
|align="center"|'''60.74'''
|
 
 
|-
 
|-
 
|''0.93''
 
|''0.93''
Line 81: Line 79:
 
|'''46.81'''
 
|'''46.81'''
 
|align="center"|'''60.99'''
 
|align="center"|'''60.99'''
|
 
 
|-
 
|-
 
|''0.905''
 
|''0.905''
Line 94: Line 91:
 
|'''44.73'''
 
|'''44.73'''
 
|align="center"|'''58.99'''
 
|align="center"|'''58.99'''
|
 
 
|-
 
|-
 
|''0.90''
 
|''0.90''
Line 107: Line 103:
 
|'''48.22'''
 
|'''48.22'''
 
|align="center"|'''61.52'''
 
|align="center"|'''61.52'''
|
 
 
|-
 
|-
 
|''0.86''
 
|''0.86''
Line 120: Line 115:
 
|'''44.76'''
 
|'''44.76'''
 
|align="center"|'''60.13'''
 
|align="center"|'''60.13'''
|
 
 
|-
 
|-
 
|''0.851''
 
|''0.851''
Line 133: Line 127:
 
|'''41.59'''
 
|'''41.59'''
 
|align="center"|'''56.80'''
 
|align="center"|'''56.80'''
|
 
 
|-
 
|-
 
|''0.83''
 
|''0.83''
Line 146: Line 139:
 
|'''42.75'''
 
|'''42.75'''
 
|align="center"|'''59.05'''
 
|align="center"|'''59.05'''
|
 
 
|-
 
|-
 
|''0.791'' *
 
|''0.791'' *
Line 159: Line 151:
 
|'''39.52'''
 
|'''39.52'''
 
|align="center"|'''56.29'''
 
|align="center"|'''56.29'''
|
 
 
|-
 
|-
 
|''0.72'' *
 
|''0.72'' *
Line 172: Line 163:
 
|'''41.06'''
 
|'''41.06'''
 
|align="center"|'''57.30'''
 
|align="center"|'''57.30'''
|
 
 
|}
 
|}
 
+
</small>
 
<nowiki>* = WaveSurfingChallenge2K6 was 1,000 rounds initially, but is now 500 rounds</nowiki>
 
<nowiki>* = WaveSurfingChallenge2K6 was 1,000 rounds initially, but is now 500 rounds</nowiki>
  
----
+
== How it works ==
  
 
I went through a lot of phases in my quest to implement WaveSurfing, beginning with a version of it hacked into a highly customized AntiGravityMovement system. The current system uses [[WaveSurfing/PrecisePrediction|PrecisePrediction]], courtesy of [[Albert]]'s [[FuturePosition]] class, and implements a kinda-sorta [[WaveSurfing/TrueSurf|True Surfing]].
 
I went through a lot of phases in my quest to implement WaveSurfing, beginning with a version of it hacked into a highly customized AntiGravityMovement system. The current system uses [[WaveSurfing/PrecisePrediction|PrecisePrediction]], courtesy of [[Albert]]'s [[FuturePosition]] class, and implements a kinda-sorta [[WaveSurfing/TrueSurf|True Surfing]].

Revision as of 22:39, 11 November 2007

Background information

Count Dooku travels through space on a Geonosian Solar Sailer; thus, Dookious's movement class was originally called "DookiSailer". After a full (and slightly painful) rewrite, it is called DookiCape. It is a WaveSurfing movement. It is one of the best movements in the RoboRumble; in terms of collecting RR points, it's almost certainly the best right now.

Challenge results

MovementChallenge2K6

Version WSCBotA WSCBotB WSCBotC WSC APMC CassiusClay FloodHT Shadow CFC Overall Score
1.111 99.87 98.67 95.74 98.09 38.04 48.55 64.35 30.41 47.77 61.30
0.965 99.13 98.44 96.23 97.93 36.67 47.64 63.94 32.29 47.95 60.85
0.95 99.96 98.30 96.14 98.13 37.06 45.95 63.27 31.36 46.86 60.68
0.94 99.78 98.30 95.85 97.97 36.55 46.60 65.49 31.07 47.72 60.74
0.93 99.55 98.58 96.49 98.20 37.96 47.28 63.30 29.86 46.81 60.99
0.905 97.60 98.12 95.92 97.21 35.03 43.31 60.27 30.63 44.73 58.99
0.90 99.69 97.97 95.03 97.56 38.79 46.40 66.58 31.69 48.22 61.52
0.86 99.76 98.33 96.17 98.08 37.56 45.20 59.87 29.21 44.76 60.13
0.851 99.45 98.70 96.44 98.19 30.62 44.38 52.98 27.43 41.59 56.80
0.83 99.54 97.13 92.98 96.55 37.85 43.23 55.73 29.28 42.75 59.05
0.791 * 99.44 96.48 91.61 95.84 33.52 41.57 51.71 25.28 39.52 56.29
0.72 * 99.09 97.90 93.92 96.97 33.86 38.27 58.91 26.00 41.06 57.30

* = WaveSurfingChallenge2K6 was 1,000 rounds initially, but is now 500 rounds

How it works

I went through a lot of phases in my quest to implement WaveSurfing, beginning with a version of it hacked into a highly customized AntiGravityMovement system. The current system uses PrecisePrediction, courtesy of Albert's FuturePosition class, and implements a kinda-sorta True Surfing.

For the first (closest) wave, it checks the danger (GuessFactor score) for the precise spots where the wave would intercept it if it stopped, orbited clockwise, or orbited counterclockwise. For each of these locations / times, it makes a recursive call to find the danger for each of those options on the next wave; it takes the minimum of the dangers on the second wave and adds it to the danger for that movement option on the first wave. The two dangers are weighted by how far away the wave is to the bot, some other distancing factors are multiplied in, and it moves to the safest spot.

Frankly, the second level was originally going to take the lowest score anywhere in the range of GuessFactors that Dookious could get to. The choice to only test the maximum, minimum, and "stop == 0" factors was a quick hack just to test out. It seems to consistently work better, though, for reasons that I cannot explain. :) So that is how it has been left.

The movement certainly takes ideas from a lot of parts of this wiki, including all the sub-pages of WaveSurfing. Thanks to everyone who contributed all of that info! And major props go to ABC, the inventor of WaveSurfing.