[Home]Dookious

Robo Home | Changes | Preferences | AllPages

Showing revision 392
Version History - Archived Chat (through 4/13/06) - Archived Chat (through 11/29/06)
DookiLightning (gun) - DookiCape (movement) - DookiSaberRRGC

Bot Name

Dookious

Author

Voidious

Extends

AdvancedRobot

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.582.jar

Best version: http://www.dijitari.com/void/robocode/voidious.Dookious_1.582.jar

How competitive is it?

It's quite competitive, currently atop the RoboRumble general 1v1 rankings (since 4/18/2006).

How does it move?

It uses WaveSurfing. See the DookiCape sub-page for more details.

How does it fire?

It uses GuessFactorTargeting. 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?

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.

Where did you get the name?

I named the tank after [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.

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.

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...

Does it have any WhiteWhales?

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.

What is your TestBed looking like right now?

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.

What other robot(s) is it based on?

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.

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, 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.

Maybe this should become a separate sub-page, but for now I'll leave it here... credits need to go to:


Comments, questions, feedback:

Hmm, between 1.352 and 1.3666, my score against WaveSurfingChallengeBotC plummeted from like 97 to 90-92. It doesn't seem to mean much to RoboRumble rating, but it bothers me no less... This is starting to feel like a permanent stay in the MovementLaboratory! -- Voidious

Hmm. VirtualGuns are a very touchy issue, I already know, but I'm still surprised how hard 1.431 is bombing by giving a stronger bias to the Main Gun. It was a 15% penalty if Main Gun rating was above 22%, now it's a 10% rating if Main Gun rating is above 12%. -- Voidious

The current AntiSurfer gun code I've been working on began with a vague idea a few versions ago. My first attempts at putting the idea to use were buggy and completely inadequate, but I'm starting to think it has some merit. Here's how it works in 1.44...

I track some WaveSurfing stats from the enemy's perspective, just recording bullet hits. My AntiSurfer gun itself just has a really low rolling depth and some good segments. (The stats of these two things are completely separate.) Before I aim the AntiSurfer gun, I calculate a "mask" to apply to the gun bins before calculating the best one at which to aim. The mask contains a multiplier for each bin; so if the multiplier was 1 for each bin, it wouldn't affect aiming at all.

The mask is calculated (currently, quite crudely) like so:

I'm not doing any precise prediction here, at least not yet. These calculations are fairly crude even in a TC setting, and are made even more crude if the tank is moving around while firing, but it's such a fuzzy process anyway that it might not make so much of a difference. Anyway, we'll see what happens...

-- Voidious

Oh, to summarize what I'm trying to do with that algorithm =) ... Basically, a surfer is less likely to move where there is a high danger. Let's say one of the spots on a surfable wave in the air looks *really* safe from his perspective - that means he's likely to be at that spot when the wave intercepts, so when the bullet I'm currently aiming gets there, he's likely to be in one of the bins that he could still get to if he went to that safe spot on the wave in the air. Basically I try and average this likelihood out for each wave in the air. Note that I'm just comparing each wave in the air to the current wave, I'm not going through all permutations or anything... -- Voidious

Everyone can just stop running battles now - with Dookious 1.44, I've finally got an undefeated version! =) For now... -- Voidious

Congrats, great work, do you have 500/1000 round test results against Shadow? About the anti-surfer gun you describe, how well did you manage to make it hit surfers? It should theoretically be possible to hit a surfer better than a random mover... -- ABC

Thanks. I haven't tried 500 or 1000 rounds yet, but I will soon. I seriously doubt Shadow will lose =) The AntiSurfer gun isn't hitting surfers all that great yet - I cracked 71 once vs Shadow in a TC (usually get 69 or 70 these days), and cracked 81 vs CassiusClay (usually 77-79). But I'm optimistic about improving this method. I was actually more curious if it would totally ruin my rating to have such a weird gun in my VirtualGuns vs non-surfers, but thankfully it didn't, so now I will keep working on improving it. -- Voidious

Doh, I forgot to re-enable the battle results before running this (option in 1.2), but I can still bring up the final score via the Ranking Panel. For 500 rounds:

1st	abc.Shadow 3.66d	41881
2nd	voidious.Dookious 1.44	32292

-- Voidious

The last couple of days my client fails to retrieve bots from your webspace. When I try it manually it succeeds, but the speed is awfully slow (< 500 bytes/sec). Did you hear of others having problems like this? -- GrubbmGait

Hmm, no, I haven't. I haven't had any problems with my web host from my location recently, but you are on the other side of the Atlantic, after all. Anyone else in Europe tried downloading my bots lately? I'm not sure of a good solution other than hoping it fixes itself for the moment :-\ You could hack your client to just skip my bots if you need to, I won't be offended :-P -- Voidious

It only happens with Dookious, at approx 100kb (after several minutes) the server just hangs up, now also when downloading manually. Smaller bots like Komarious and BrokenSword are no problem. Oh well, you just lack my support to get to The2200Club ;-D -- GrubbmGait

I downloaded it yesterday and had no problems with it, but I have a nice connection (16k download). But I think it was pretty normal speed. -- Kenran

I did get the latest version (1.474) during the night, so no details at speed etc, but at least I got it. -- GrubbmGait

Hard to believe that you *lost* 9 point by the proper onDeath handling. You don't die that much, so it is supposed to have only a small gain. My gutt feeling says to leave it in, but if it would cost me that many points I'll reconsider to remove it. -- GrubbmGait

I doubt it's actually costing anyone any points. I have found very large fluctuations in rating ever since passing about 2105 - I have had two identical versions with 5 point differences (1.25 and 1.369), and many very minor tweaks with 5 or more point differences. In fact, 1.472 was at 2117 at one point with all its battles. I will leave it in a while and then re-release 1.472 exactly as 1.491 and we'll see what happens. It's quite frustrating, really, making it hard to find true improvements! It's also possible there's some unforeseen side effect in Dookious with the proper onDeath... -- Voidious

Well, 1.491 hit 2110, so I have to think that it really was a side effect and not just fluctuations. In 1.492, I try to adjust the hit-% thresholds accordingly - let's see what happens. -- Voidious

You know, these last changes - proper handling of onDeath (which affects enemy hit percentage tracking) and discarding bullet collisions when tracking enemy hit percentage - seem like very small things at first; but they directly affect the trigger that enables the flattener, always an *extremely* sensitive and dangerous move, so they may turn out to be worth a few points once I re-tune my hit percentage thresholds. -- Voidious

Lord knows you can't totally trust a rating jump until your tank's stabilized, but with 1.534 at +0.66% per bot after 250 pairings, I'm pretty sure this one is gonna be a jump. These last versions have reminded me just how touchy movement and dive protection can be, so I thought I'd share some recap...

I've noticed since the movement rewrite that Dookious only gets around 99% against WaveSurfingChallengeBotA (as opposed to 99.6% or more), and his WaveSurfing/BarracudaChallenge score is way down, too. I couldn't figure out where the behavior was any different after the rewrite; everything looked identical as far as decision making for dive protection against simple targeters. I tried (with 1.53 - 1.533) adding some kind of subtle danger for a movement option that strays from perpendicular, but it was bombing the rating by 5-10 points each time.

Dookious tries to surf a firing wave that's in front of him; if there is none, he tries to surf a non-firing wave that's at least 150 in front of him; if he's closer than that, he previously would just set the "attack angle" to something negative (meaning moving away from enemy) and continue in his previous direction. This was true pre- and post-rewrite. With 1.534, in this situation, he calculates the would-be movement angle for both directions (using the negative attack angle) after wall smoothing, and takes the one closest to moving directly away from the enemy. Awesome MovementChallenge2K6 scores, including a killer 99.99 against BotA? over 5 seasons, and looking like a solid rating boost. Yay!

-- Voidious

If I read this correctly, you don't use a favourable (or default) distance. If you get close, just move a bit away and thats it. Really amazing MC2K6 scores and an 2118 rating after 600+ battles, looks like this is a good tweak for a change ;-) -- GrubbmGait

Actually, I do use a default distance, which depends a bit on enemy hit-% and and average bullet power. But I have a special case for when I am too close and there is no real wave to surf. And thanks =) -- Voidious

2124 !! You keep setting new records. It is a hell of a tweak if it can get you 16 points, I want that too! Gimme gimme please . . . -- GrubbmGait

Well, my "long term" goal of 2125 came to me much more quickly than I expected. But it's made me curious if upgrading my clients to 1.1.5 had any side effect to help these jumps, so I'm going to re-release 1.522 as 1.542 and make sure it gets about the same rating as before with the upgraded clients... -- Voidious

I was just testing Dookious against Decado and I noticed that the flattener keeps getting enabled and then disabled...is this on purpose? Shouldn't you stick with one or the other? Also, it seems that it couldn't make up its mind to use the regular gun or the anti-surfer gun, which would lead me to believe that my RandomMovement is quite flat..true? -- Skilgannon

Well, the flattener kicks on based on the enemy's hit percentage, so the fact that it's getting turned back off probably means that it's helping, pushing the hit-% below that treshold. You're right, it might be better to just leave it on, but flatteners are so touchy that you just gotta live with getting them close enough and err on the side of leaving them off. Or at least, that's what I do... Phoenix leaves it on permanently once it decides to turn it on. As for the AntiSurfer gun being used, yes, I would say it probably means that your RandomMovement is pretty flat. That's another decision that could be a permanent one, but to me that seems risky - if you choose the wrong gun to start off, the whole match will go a lot worse. Ascendant makes a permanent choice about which gun to use once it decides. -- Voidious

Any changes? or is 1.554b just a re-release? --David Alves

It's just a re-release. -- Voidious

Version 1.56 gets quite a lot of xxxx to 0 scores on my client, with xxxx somewhere between 4800 and 6300. Your surfing is just too perfect. Maybe you could consider to let one low-power bullet hit you in round 35 or so. -- GrubbmGait

So no straight Simontious, Simonton's gun with Dookious' movement? --Chase-san

No, I didn't post one, but Simonton is welcome to, of course. =) -- Voidious

I did make an adapter class in an attempt to make it easier to plug my bots' components into normal bots. I suppose I ought to test it ... -- Simonton

At this point, Dookiton is in the lead, 94 battles, about 4 points above Dookious, but as it gains battles I expect this to drop considerabily. --Chase-san

Comparison link: http://rumble.fervir.com/rumble/RatingDetailsComparison?game=roborumble&name1=wiki.Dookiton%201.0&name2=voidious.Dookious%201.56 Dookiton is behind by a fair amount. --David Alves

Dookiton beats everything with over 50%, which was the same for Dookious until Dookiton arrived, luckly Dookiton is only temporary. --Chase-san

Yay! Now with your non-data-saving gun we can further compare Dookious & Dookiton. -- Simonton

Nice PL update. 1.57 beat both Shadow and Phoenix, which were both losses for 1.56. Congrats! --David Alves

Hmmm, nevermind... 1.571 got pounded by both Shadow and Phoenix... maybe 1.57 was just lucky? --David Alves

Yeah, I don't think we have nearly enough matches to get reliable results at the top of the PL. My own experience is that even 20 matches can be many percentage points off of what 100 matches will tell you... -- Voidious

So, Voidious, what you think about the fact that 8 of the 9 other top bots are being actively developed? -- Simonton

I think it's absolutely awesome! Most exciting times since I've been Robocoding, for sure. Wait... except for that time where I took the #1 spot. That was the most exciting for me =), but now is definitely second. -- Voidious

WoW? 2130!! Insane! --Krabb

Wow, I didn't realize your AntiSurfer gun would be so valuable. -- Simonton

I'm surprised! I wonder what you would get it you disabled the flattener as well. -- Skilgannon

Hang on, just comparing with the last version, and it seems like you broke something. You only got 91% against HOF, and several other questionable results. -- Skilgannon

Good catch. What the heck could I have done here... I'll have to check this evening when I get home. -- Voidious

I also just took a peak at Dookiton?, and it only got 93% against Barracuda. So it might pay to look a little deeper.. -- Skilgannon

(Edit conflict) I'm not going to do much debugging from work, but I did at least diff the source code briefly just now. I haven't the slightest idea what bug I could have introduced - it seemed like a pretty straightforward tweak. Maybe someone is running the rumble with only 256 megs and Dookious was running out of memory? Or it could just be a real bug in the movement... -- Voidious

If it was a memory issue surely it would be much worse against other memory-hoggers, not HOF. Did you entirely disable the anti-surfer, or just modify your VirtualGuns to not choose it for firing? There might be something in there that initializes a variable that your movement depends on (or maybe the rest of your gun depends on), and it throws an exception if it doesn't get initialized. -- Skilgannon

Ok, after 1.583b (rerelease) and 1.584, it looks like I get 5-6 points from my AntiSurfer gun and ~2 points (!!!) from my flattener. Two points! It's practically useless. Still only 2 losses (Phoenix and Shadow) in both cases, too. I'll have to look at the stats more closely before drawing any more conclusions, but some interesting data there, for sure. -- Voidious

Very interesting, have you tried running the TC/MC for those versions? I would suspect maybe the 35 round results won't change much, but in 500 rounds there must be a difference? -- ABC

No, I haven't. I suspect the gun would get crushed against the betters surfers in the TC, not sure about the movement. This was interesting, too... I compared 1.584 (no flattener) to 1.582 and sorted by average score. The 50 toughest bots were like -120 total (flattener good) and the 4th toughest segment (151-200) was +60 total (flattener bad); the rest of the segments were basically even. Makes sense, too: flattener helps a ton against the very toughest bots, but hurts a bit against the borderline bots. -- Voidious


Robo Home | Changes | Preferences | AllPages
Edit revision 392 of this page | View other revisions | View current revision
Edited December 10, 2007 17:29 EST by Voidious (diff)
Search: