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:
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...
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
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!
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
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
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
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
(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