My first entrant to the
EternalRumble with the
SandboxFlattener movement I developed. I don't expect it to be a championship robot, but I do expect it to tell me something about how far a good movement can get you on the
EternalRumble without anything else. It is the little brother of
FloodHT, still in development. Its movement is in essence the same as in
MakoHT, although I might have made some small changes to cut code-size.
- V 1.0 - codesize 745, with colors.
- Took #30 on the Eternal Rumble its first shot, including #7 for MicroBots and #14 for MiniBots. So I guess that answers the question about how important a good gun is - only important if you want to get better than the top 30. Maybe if I iron out some weaknesses in the movement, it will even do slightly better.
- V 1.1 - codesize 744, with colors, but the code for colors is trimmed down ;-)
- fixed a problem that came up occasionally that caused FloodMicro to be backed up against a wall and vibrate for awhile, trying to angle back though the wall. It seems to do better in general now. A few other things were deemed less necessary and taken out or trimmed down.
- I suppose I thought I saw a possible bug in this backed-up-against-walls code looking at it, but I ignored it because the new FloodMicro seemed to perform better overall. I may re-address this, because FloodMicro 1.1 fell instantly to 58th place on the EternalRumble, 13th among MicroBots.
- FloodMicro 1.1 got 13th on tobe's MiniBot challenge for MicroBots - in spite of the fact that among his selected opponents were MicroAspid, Avipes, Spark, NekoNinja, Kakuru and HummingBird?, who placed 7th, 1st, 11th, 9th and 17th. And I beat half of them, too, so maybe I should have placed higher ;-)
- V 1.2 - fixed a logical bug in corner avoidance code. Same codesize and stuff.
- V 1.3 - Rozu found a bug in the wall-avoidance code shared by several of my robots. This is a fix of that. With this, I think I am done fixing the bug I've been trying to get right since version 1.1.
- placed 15th among MicroBots in the MiniBot Challenge. Somehow it managed to lose to NanoLauLectrik and beat MicroAspid. Other than MicroAspid, though, it didn't have that tough of a schedule, and it probably would have placed higher if it didn't get thrashed by Troodon in the last round.
- After sliding down to around 70th place, FloodMicro returned to 62nd place (14th among Micros) on the EternalRumble.
- V 1.4 - Decided to attempt making it more competitive as a robot in general (specifically as a MicroBot), so I figured out a way to trim down some codesize, and I fit in FunkyChicken's SymbolicPatternMatcher. I think it's a probably top-5 Micro, maybe top 30 or so overall. We'll see if I'm right. Note that this is the first version that beats Walls.
- Takes 7th in the MiniBotChallenge, 20030802. Lost by some points against Avipes and Predator in early rounds when I should have been getting easy draws for the first couple rounds :-p Most importantly, though, this means that it will have a place in the MiniBot Challenge "final", which means I should have at least one bot in every weight category (as Micros are my weaker 'weight').
- Takes 2nd in its first season in the RO Semi-pro division (behind ScruchiPu, who it beat, but it was a fluke that ScruchiPu was in Semi-pro anyways), and won the second season. So starting with season 16 it will be in the pro league and hopefully never look back.
- V 1.5 - Tweaked it a bit before the final MiniBotChallenge. I don't know if it's better for sure, hopefully it's not worse.
- Wish I could have seen 1.4 in the ER, but I didn't. And I'm suspicious that I somehow put a bug into this version. At any rate, it rose to 68th place (16th among Micros) in spite of all the new bots after the ER was down for a month and a half.
How does it move?
It uses a trimmed-down version of
SandboxFlattener movement.
How does it fire?
It uses a slightly erroneous version of
HeadOnTargeting. Since I decided that always shooting exactly at the opponent wasn't any better than usually doing that and sometimes missing behind that point, I chose to not have the gun turn independently of the chassis, and I chose to not wait for the gun to finish turning before I fire.
It always moves latterally to its opponent, and it chooses a new speed and direction most of the time when it detects that its opponent has fired. This makes it
usually dodge
HeadOnTargeting,
AngularTargeting,
CircularTargeting, and
LinearTargeting pretty reasonably. Although the frequency with which it changes direction and when it chooses to ignore firings give it some technical weaknesses, good luck finding them. The main theory, though, of this movement, is to give
HeadOnTargeting,
AngularTargeting,
CircularTargeting,
LinearTargeting, and
GuessFactorTargeting all a roughly equivalent hit ratio, and to make all of these low.
How does the melee strategy differ from one-on-one strategy?
It probably acts really stupid in
Melee. It was written to be a purely
OneOnOne robot.
FloodHT will likely not be so friendly.
How does it select a target to attack/avoid in melee ?
Luck. See above.
What does it save between rounds and matches?
Saves distance benefit factors between rounds, nothing between matches. Later robots in its family will probably begin to save benefit factors between matches, as well, which will eliminate the first few rounds of searching for a good distance, hopefully.
Where did you get the name?
Figured nothing flattens sand like a good flood (or an ocean). Meant to "flatten the curve" observed by
SandboxDT.
Can I use your code?
Probably soon. I don't know why I didn't include the source in the jar, really. An equivalent movement can be found in
MakoHT/Code if you want to look at that. If you're trying to copy it, make sure you find where all the distance factors are modified, though.
What's next for your robot?
Not sure. Probably integration into Gouldingi and finishing
FloodHT.
What other robot(s) is it based on?
SandboxFlattener, but that was a test robot and never quite publicly released. The first version of this robot is as close as a public robot will probably be to
SandboxFlattener in an exact sense.
Comments :