Difference between revisions of "Dookious"

From Robowiki
Jump to navigation Jump to search
(2 other categories)
(Fix word cloud link)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Infobox Robot
 +
| author          = [[Voidious]]
 +
| extends        = [[AdvancedRobot]]
 +
| targeting      = [[GuessFactor Targeting|GuessFactor Targeting]]
 +
| movement        = [[Wave Surfing|Wave Surfing]]
 +
| best_rating    = 1st (Apr '06 - Mar '08)
 +
| current_version = 1.573c
 +
| license        = [[RWPCL]]
 +
| isOpenSource    = yes
 +
| isOneOnOne      = yes
 +
| download_link  = http://robocode-archive.strangeautomata.com/robots/voidious.Dookious_1.573c.jar
 +
}}
 +
{{Navbox small
 +
| title        = Sub-pages
 +
| page1        = Version History
 +
| page2        = DookiCape
 +
| page3        = DookiLightning
 +
| page4        = DookiSaberRRGC
 +
| page5        = Archived Talk 20060413
 +
| page6        = Archived Talk 20061129
 +
| page7        = Archived Talk 20071111
 +
}}
 
== Background Information ==
 
== Background Information ==
  
==== Bot Name ====
+
; What's special about it?
Dookious
+
{| cellspacing="0" cellpadding="0" border="0"
 +
|    
 +
|
 +
* It's the first bot I ever released publicly and the first bot that I entered into the [[RoboRumble]].
 +
* It was once the General 1v1 champ, for almost 2 years.
 +
* It was the first bot to break the [[The 2100 Club|2100 barrier]].
 +
* It is by far the hardest bot to hit in the [[Anti-Surfer Challenge]]. =)
 +
|}
  
==== Author ====
+
; Great, I want to try it. Where can I download it?
[[Voidious]]
+
: Best version: [http://robocode-archive.strangeautomata.com/robots/voidious.Dookious_1.573c.jar 1.573c]
  
==== Extends ====
+
; How competitive is it?
AdvancedRobot
+
: It's very competitive. It's currently #9 in RoboRumble General 1v1.
 
 
==== What's special about it? ====
 
It's currently the 1v1 champ in the RoboRumble.
 
 
 
==== Great, I want to try it. Where can I download it? ====
 
Current version:
 
http://www.dijitari.com/void/robocode/voidious.Dookious_1.56.jar
 
 
 
Best version:
 
http://www.dijitari.com/void/robocode/voidious.Dookious_1.56.jar
 
 
 
==== How competitive is it? ====
 
It's quite competitive, currently atop the RoboRumble general 1v1 rankings (since 4/18/2006).
 
  
 
== Strategy ==
 
== Strategy ==
  
==== How does it [[Movement|move]]? ====
+
; How does it [[:Category:Movement|move]]?
It uses WaveSurfing. See the [[/DookiCape|DookiCape]] sub-page for more details.
+
: It uses [[Wave Surfing]]. See the [[/DookiCape|DookiCape]] sub-page for more details.
  
==== How does it fire? ====
+
; How does it [[:Category:Targeting|fire]]?
It uses GuessFactorTargeting. See the [[/DookiLightning|DookiLightning]] sub-page for more details.
+
: It uses [[GuessFactor Targeting]] with two [[Virtual Guns]], one tuned to hit [[Wave Surfing|Wave Surfers]]. See the [[/DookiLightning|DookiLightning]] sub-page for more details.
  
==== How does the [[Melee|melee]] strategy differ from [[OneOnOne|one-on-one]]  strategy? ====
+
; How does the [[Melee|melee]] strategy differ from [[OneOnOne|one-on-one]]  strategy?
There is no melee strategy - it's only designed for 1v1.
+
: There is no melee strategy - it's only designed for 1v1.
  
==== What does it save between rounds and matches? ====
+
; What does it save between rounds and matches?
It saves all the GuessFactorTargeting, VirtualGuns, and WaveSurfing data, and some general hit statistics (percentages and damages) between rounds. Some recent versions also contain a WikiTargeting-inspired form of data saving in the gun.
+
: Between rounds, it saves all the targeting, virtual guns, and Wave Surfing data, plus some general hit statistics (percentages and damages). Between matches, it saves the best GuessFactor bin for all segments in the gun that were visited more than a certain amount (i.e., [[SuperNodes]]).
  
 
== Additional Information ==
 
== Additional Information ==
  
==== Where did you get the name? ====
+
; Where did you get the name?
I named the tank after [http://www.starwars.com/databank/character/countdooku/ Count Dooku], since he seems like a bit of a duelist in the Star Wars mythos, and adapted that to a style that fits my own handle.
+
: I named the tank after [http://www.starwars.com/databank/character/countdooku/ Count Dooku], since he seems like a duelist in the Star Wars mythos, and adapted that to a style that fits my own handle.
  
==== Can I use your code? ====
+
; Can I use your code?
Yes, feel free! It's released under the [[RWPCL]]. The gun and the movement are pluggable, a la [[CassiusClay]], so knock yourself out if you're so inclined.
+
: Yes, feel free! It's released under the [[RWPCL]]. The gun and the movement are pluggable, a la [[CassiusClay]].
  
==== What's next for your robot? ====
+
; What's next for your robot?
For now, I'm happy with its rating =) But trying to rise to the top of the PL is always in the back of my mind...
+
: Maybe an overhaul some day. I wish it weren't so slow. I have some ideas and there are elements of [[Diamond]]'s surfing that could be rolled back into Dookious. But no immediate plans.
  
==== Does it have any [[WhiteWhale]]s? ====
+
; Does it have any [[White Whale|White Whals]]?
It would be nice to one day beat [[Shadow]] consistently... [[Phoenix]] has become a WhiteWhale in both head to head and in terms of RoboRumble rating.
+
: [[DrussGT]] surely tops the heap, as it dethroned Dookious. But [[Shadow]] and [[Phoenix]] are long-time rivals, as well.
  
==== What is your [[TestBed]] looking like right now? ====
+
== Credits ==
Most recently, I used the TargetingChallenge to test some changes to the gun. But it gets harder and harder to find any general purpose TestBed as you move up the rankings, so this changes with whatever I'm working on.
+
Dookious is not directly based on any other robots; I have, however, learned a TON of information from this site. As far as using other people's code, the only direct code I'm using is [[Albert]]'s [[FuturePosition]] classes, which I am very grateful for.
 
+
==== What other robot(s) is it based on? ====
+
I also simply *must* say thanks to everyone who has contributed to this site, and to PEZ for hosting it.  Robocode just wouldn't be the same experience for me without it. That goes for [[PEZ]], [[Kawigi]], [[Pulsar]], [[David Alves]], [[Paul Evans]], [[ABC]], [[Axe]], [[Corbos]], [[wcsv]], [[Martin Alan Pedersen|The Martinator]], [[GrubbmGait]], [[Kev]], [[Simonton]] - ok, '''everyone''' that's part of this great community. Hopefully I can give back at least some fraction of what I have taken from this wiki.
It's not directly based on any other robots; I have, however, learned a TON of information from this site. As far as using other people's code, the only direct code I'm using is [[Albert]]'s FuturePosition classes, which I am very grateful for.
+
 
+
Explicit credits need to go to:
I also simply *must* say thanks to everyone who has contributed to this site, and to PEZ for hosting it.  Robocode just wouldn't be the same experience for me without it. That goes for [[PEZ]], [[Kawigi]], [[Pulsar]], [[David Alves]], [[Paul Evans]], [[ABC]], [[Axe]], [[Corbos]], [[wcsv]], [[Martin Alan Pedersen|The Martinator]], [[GrubbmGait]], and everyone else that's part of this great community. Hopefully I can give back at least some fraction of what I have taken from this wiki.
+
* [[WaveSurfing]] - invented by [[ABC]]
 
+
* [[GuessFactor Targeting]] - invented by [[Paul Evans]]
Maybe this should become a separate sub-page, but for now I'll leave it here... credits need to go to:
+
* [[FuturePosition]] - A great piece of code from [[Albert]] to predict the result of different movements.
* WaveSurfing - invented by [[ABC]]
+
* [[RollingAverage]] - A simple, elegant concept from [[Paul Evans]] that made its way into Dookious. I also adopted a very minor, but notable, implementation idea from [[PEZ]].
* GuessFactorTargeting - invented by [[Paul Evans]]
+
* WikiTargeting - methods for analyzing GuessFactor data invented by [[Vic Stewart]], used in Dooki's data saving.
* FuturePosition - A great piece of code from [[Albert]] to predict the result of different movements.
 
* RollingAverage - A simple, elegant concept from [[Paul Evans]] that made its way into Dookious. I also adopted a very minor, but notable, implementation idea from [[PEZ]].
 
* WikiTargeting - methods for analyzing GuessFactor data invented by [[Vic Stewart]], used in [[Dookious]]'s data saving.
 
 
* [[CassiusClay]] - I have learned many, many things from this excellent tank, from general code structure, to very specific segmentation methods for certain types of data (especially wall distance!), to various other small details that go into making a great tank. Thanks, [[PEZ]]!
 
* [[CassiusClay]] - I have learned many, many things from this excellent tank, from general code structure, to very specific segmentation methods for certain types of data (especially wall distance!), to various other small details that go into making a great tank. Thanks, [[PEZ]]!
 
* [[Ascendant]] - I'm almost positive that [[Mue]]'s comment about using a second gun tuned for AdaptiveMovement was my initial inspiration to try my hand at an AntiSurfer gun, so props to him for sharing that insight.
 
* [[Ascendant]] - I'm almost positive that [[Mue]]'s comment about using a second gun tuned for AdaptiveMovement was my initial inspiration to try my hand at an AntiSurfer gun, so props to him for sharing that insight.
Line 72: Line 85:
 
* [[David_Alves/DrawingBot]] - Much thanks to David for saving me time developing drawing methods for the new Robocode graphics capabilities! It was very helpful when rewriting Dooki's movement.
 
* [[David_Alves/DrawingBot]] - Much thanks to David for saving me time developing drawing methods for the new Robocode graphics capabilities! It was very helpful when rewriting Dooki's movement.
  
[[Category:Bots|Dookious]]
+
== Word Cloud ==
[[Category:1-vs-1 Bots|Dookious]]
+
 
[[Category:Open Source Bots|Dookious]]
+
I was playing around with [http://www.wordle.net Wordle.net] and made a word cloud from all Dooki's code concatenated together. I thought the result was pretty damn cool, so here it is. Click for a gigantic 5512x2962 version. :-)
 +
 
 +
[https://i.imgur.com/YgleNLr.png Image]
 +
 
 +
[[Category:MegaBots|Dookious]]
 +
 
 +
__NOTOC__  __NOEDITSECTION__

Latest revision as of 10:44, 22 August 2017

Dookious
Author(s) Voidious
Extends AdvancedRobot
Targeting GuessFactor Targeting
Movement Wave Surfing
Best Rating 1st (Apr '06 - Mar '08)
Current Version 1.573c
Code License RWPCL
Download
Sub-pages:
Version History - DookiCape - DookiLightning - DookiSaberRRGC - Archived Talk 20060413 - Archived Talk 20061129 - Archived Talk 20071111

Background Information

What's special about it?
   
  • It's the first bot I ever released publicly and the first bot that I entered into the RoboRumble.
  • It was once the General 1v1 champ, for almost 2 years.
  • It was the first bot to break the 2100 barrier.
  • It is by far the hardest bot to hit in the Anti-Surfer Challenge. =)
Great, I want to try it. Where can I download it?
Best version: 1.573c
How competitive is it?
It's very competitive. It's currently #9 in RoboRumble General 1v1.

Strategy

How does it move?
It uses Wave Surfing. See the DookiCape sub-page for more details.
How does it fire?
It uses GuessFactor Targeting with two Virtual Guns, one tuned to hit Wave Surfers. See the DookiLightning sub-page for more details.
How does the melee strategy differ from one-on-one strategy?
There is no melee strategy - it's only designed for 1v1.
What does it save between rounds and matches?
Between rounds, it saves all the targeting, virtual guns, and Wave Surfing data, plus some general hit statistics (percentages and damages). Between matches, it saves the best GuessFactor bin for all segments in the gun that were visited more than a certain amount (i.e., SuperNodes).

Additional Information

Where did you get the name?
I named the tank after Count Dooku, since he seems like a duelist in the Star Wars mythos, and adapted that to a style that fits my own handle.
Can I use your code?
Yes, feel free! It's released under the RWPCL. The gun and the movement are pluggable, a la CassiusClay.
What's next for your robot?
Maybe an overhaul some day. I wish it weren't so slow. I have some ideas and there are elements of Diamond's surfing that could be rolled back into Dookious. But no immediate plans.
Does it have any White Whals?
DrussGT surely tops the heap, as it dethroned Dookious. But Shadow and Phoenix are long-time rivals, as well.

Credits

Dookious is not directly based on any other robots; I have, however, learned a TON of information from this site. As far as using other people's code, the only direct code I'm using is Albert's FuturePosition classes, which I am very grateful for.

I also simply *must* say thanks to everyone who has contributed to this site, and to PEZ for hosting it. Robocode just wouldn't be the same experience for me without it. That goes for PEZ, Kawigi, Pulsar, David Alves, Paul Evans, ABC, Axe, Corbos, wcsv, The Martinator, GrubbmGait, Kev, Simonton - ok, everyone that's part of this great community. Hopefully I can give back at least some fraction of what I have taken from this wiki.

Explicit credits need to go to:

  • WaveSurfing - invented by ABC
  • GuessFactor Targeting - invented by Paul Evans
  • FuturePosition - A great piece of code from Albert to predict the result of different movements.
  • RollingAverage - A simple, elegant concept from Paul Evans that made its way into Dookious. I also adopted a very minor, but notable, implementation idea from PEZ.
  • WikiTargeting - methods for analyzing GuessFactor data invented by Vic Stewart, used in Dooki's data saving.
  • CassiusClay - I have learned many, many things from this excellent tank, from general code structure, to very specific segmentation methods for certain types of data (especially wall distance!), to various other small details that go into making a great tank. Thanks, PEZ!
  • Ascendant - I'm almost positive that Mue's comment about using a second gun tuned for AdaptiveMovement was my initial inspiration to try my hand at an AntiSurfer gun, so props to him for sharing that insight.
  • TheArtOfWar - This is the tank I most remembered from my initial stint in Robocode a few years ago, and it set the bar relatively high in the early days of benchmarking Dookious. The (admittedly cheesy) Count Dooku quotes that Dookious prints to the console on victory is a bit of an homage to this classic tank.
  • Corbos and wcsv - I've topped them in rating for now, but these guys provided some much needed, active competition when I was really gaining traction with Dookious. I look forward to vying for rating with them once they catch up =)
  • PEZ for Iterative WallSmoothing algorithm, Kawigi for entropy routines - I'm no longer using a version of PEZ's iterative WallSmoothing, but many previous versions did, and I used it as reference to write a faster method that does the same thing. I also made use of some entropy routines that Kawigi posted in my early research into segmenting a GuessFactor gun.
  • David_Alves/DrawingBot - Much thanks to David for saving me time developing drawing methods for the new Robocode graphics capabilities! It was very helpful when rewriting Dooki's movement.

Word Cloud

I was playing around with Wordle.net and made a word cloud from all Dooki's code concatenated together. I thought the result was pretty damn cool, so here it is. Click for a gigantic 5512x2962 version. :-)

Image