Robo Home | FloodHT | Changes | Preferences | AllPages

FloodHT Pre-Release Hype

Ok, all of you other guys that are working on some huge, kick-butt, next-generation, never-yet-seen-the-light-of-my-computer robot that's going to end SandboxDT's reign already have made pages for them, so I thought it was about time to make the page for FloodHT. It will actually probably be done enough for a first release (0.8 or so, I was going to release an earlier version, but I just got carried away with guns the other night). So, without further rambling, I'll get to the cool graphic (can't let my bot be outdone by PhoeniX) and then I'll hype you up for a couple pages:

Curve Flattening

I've mentioned all over the wiki my intentions to make a MegaBot with the SandboxFlattener movement, and it's also in my signature on the RobocodeOutpost?. However, the SandboxFlattener movement, in a literal sense, is just a little last-season. Sure, FloodMini has been doing pretty well with it. It was my first attempt at the curve-flattening movement that everyone has since been trying to get (although I suspect that only a select few, including David Alves and Paul Evans ever gave it serious thought before I started working on the prototype). It's been said that if you don't throw away your first draft, someone else will. So, in all irony, FloodHT will not feature the FloodMovement that everyone has gotten so used to. The reason is that I think it can be done better (and has been done better by many), and because the original idea I had needed to be tweaked so far out of proportion so as to be only a mediocre attempt at its intended purpose.

Curve Expanding

The movement that you will see in FloodHT is more of a curve-expanding movement, attempting to flatten its curve by putting plenty of emphasis on the far positive and far negative range. I've managed to do this somewhat using a technique I call "cool movement" internally (ummm... because I thought it was a cool idea).


Jim and I assigned the acronym "OCM" (for "Operation Cool Movement") to the "cool movement". The advantage of OCM from the stand-point of curve control is that it allows me to more easily tweak my movement to create spikes on the negative side of the curve as well as the positive side. In a little fun experiment, I found FloodMini had an extremely hard time hitting OCM movement tweaked to create only a negative spike. When analyzing FloodMini's internal stats, it seemed that he was fully aware of the spike, and somehow still took awhile to hit it. This could possibly be a bug I suppose in FloodMini for which I will search later, but I then tried the same movement against SandboxDT, who also didn't like it very much (I say that because I won around 40 out of 100 rounds with it, and when he won, his bonus was never higher than about 10. Not very scientific, but I was just messing around anyways). Of course, by itself, if that's all I ever do, it can also be quite predictable to other kinds of robots, and Teancum ate it alive.

Hybrid Movement

So you want to know how OCM works? How it does what it does? Haha! I'm not going to tell you. Maybe I will later if I come up with something better or I have a good reason to (like I'm co-authoring a bot with you or something). It's really only a trick, nothing more. When you see FloodHT, you'll know when he's doing it, because you'll see it and you'll be like, "That's not what I remember the other Flood robots doing!" But you won't have a clue why it works. Haha!

But seriously, you'll note that I said over-using OCM can be predictable, but using it in moderation makes you crazy-hard to hit. FloodHT will combine the traditional FloodMovement with OCM to create a broad, strong curve, so that whatever peaks exist for statistical targeters to shoot at will be visited as rarely as possible. I also intend to have the curve tweaked to have a 'dip' in the middle, to make FloodHT particularly invulnerable to stupidly simple bots that use HeadOnTargeting (like FloodMicro) as well as bots who use AveragedBearingOffsetTargeting.

But seriously, is it as flat as some of the other movements we've been seeing lately?

For a teaser, see /Profile

But what about Pattern-matchers?

Pattern-matchers, beware. Flood movement, in various tweaks, has been hard enough to hit for most pattern-matchers, but it was sometimes pathetically easy to guess when they would change direction. While most curve-flattening techniques have robots moving in the same direction for way too long, this one doesn't have that weakness - not that it never moves in one direction for very long, just that doesn't do it often enough to make it vulnerable.

Is anyone safe?

The first release will probably let a few go free, but don't assume you'll always be lucky.

I'm running tests, here's a list that the first release might let win sometimes. This is primarily just 50 rounds without any saved data:

There may be a few more. With some tuning and debugging, and maybe some experimentation, I may be able to reduce that list by about half.

I'm scared. Is there a place I can hide?

Well, I'd hate to scar you for life by making you download my robot. And I'd also hate you to quit Robocode because you don't think you'll ever be a match for my robot. If it makes you feel any better, I never thought I'd beat MogBot 1-on-1, and now I've done it with 3 nanos, 1 micro, and 3 minis (I think). I'm just finally beating him with a MegaBot. But if you really do have FloodHTPhobia?, I recommend you do one of three things:

I can't wait, when is the soonest I can download it?

Be the first to download your copy!



Marshmallow: I think you must have forgotten to test against me.
Hmm, yes! I must have extrapolated too far on the results of short matches. But, I'm curious now, how do you hit me that much?
I won't tell you of course, you might be my biggest threat in my plans on getting first to dethrown DT.
Oh, come on. A hint?
Maybe it's my simpler approach to DynamicDistancing?
Well, I'm really not sure that DynamicDistancing - yours or mine - really gives any big edge when there are more advanced targeting (than HeadOnTargeting) involved. So maybe it's my defensive measures against contamination of my stats that works. I give you this much info. I have a much harder time hitting your smaller brothers.
Yeah, maybe I should test the effectiveness of my Targeting by releasing a version of me with the traditional Flood movement before getting too smart with the movement system. But tell me honestly - did I ever crash during that battle?
I'm pretty sure you didn't
Well, I guess I should fear hard losses to Marshmallow if I ever enter into a competition featuring 1000-round battles.
I'm not sure you could draw that conclusion. Rather that in many shorter battles, I'll win most of them. At least when I have been alowed to save enough data on you.
Is it true you can't beat the SampleBots in melee over 100 rounds and that you use the onRobotDeath? method where you should use the onDeath method?
Yes, I'm one lousy Melee bot if there ever was one. No, I think I am using the intended event. I'm using onDeath as well.
I just ask, because in the said melee battle, you printed the number of skipped turns, hit walls, and wins every time another robot died.
Yes, that's because I'm lazy and save statistics and print stats in the same atomic block of code.
And you do that every time a robot dies because...
... it seems a good place to save statistics on that robot. (I only save stats for the robot that just died, unless it's in the onDeath event where I save statistics for all live robots.)

Robo Home | FloodHT | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 24, 2005 1:44 EST by Kawigi (diff)