Robo Home | Changes | Preferences | AllPages

My First microbot , as a platform for my first complete pattern matching.

Bot Name




Great, I want to try it. Where can I download it?



Found my bot spiralling down the ranks, and with a new "technology" like Multiple Choice Pattern Matching, I figured I would try it myself. Again, Flattening is hard, so changes to it were quite frequent. Besides, I want back my place in the top 10 micros!

How competitive is it?

Weak, very Weak. See it for yourself.

How does it move?

StopAndGo , if all else fails , RandomMovement

How does it fire?

Pattern Matching. See rest below.

How does the melee strategy differ from one-on-one strategy?

Try it yourself.

How does it select a target to attack/avoid in melee?

Just probably targets one and gets killed by the others.

What does it save between rounds and matches?

Lateral Velocity, Advancing Velocity, which are derived by matching enemy velocity and averaging them out.

Where did you get the name?

Thought the initial versions would be very Weak, here comes the name.

What's next for your robot?

think of better ideas for movement. May try to increase gun accuracy. Think may try to change firePower.


  - Break the 19k barrier for micro. (Done)
  - Break 19.5k for micro.


 - get into top 50 places (Done)
 - get into top 20 places (Done)
 - get into top 10 places (Done, but may be unstable)

 So on till I pass maybe Thorn, it is proving to be a problem, before WayLander?.


 - get into top 50 places (Done)
 - get into top 25 places (Done, but may be unstable)


 - Within 100 places. (Done, but may be unstable)
 - Within 80 places.
 - Within 65 places. (Hard to achieve, seriously.)

Does it have any WhiteWhales?

Stelo's bots. I lose terribly against them. (in fact, this applies to all my bots). New : arthord's bots, blur and smoke.

What other robot(s) is it based on?

Splitner for idea of S&G, RaikoMicro for proving to me how effective random movement is.

Comments, questions, feedback:

Comments Please :D

Your problem with Stelo's bots may be that a number of them either have mirror movement, a decently strong gun, or both. Which means if you cannot hit your own movement, but they can, so they do so. --Chase-san

Being trashed by MirrorBots? means that your movment is better than your gun. Something that I went through with Waylander after getting all the bugs out in the PatternMatchingChallenge? was that it could almost never find a pattern when used in the normal rumble. If you reduce the number of 'nodes' for the delta-heading it helps a lot for finding matches against non-pattern bots. -- Skilgannon

Thanks for the advice, I am actually quite curious with regards to flattening the movement, and something about the gun. Would some random movement like slalom surfing do badly on Pattern Matchers? Also, what is the difference between moving bots and stationary bots. My Bot hangs after 5 rounds with stationary bots (although I know that the obvious one is velocity is 0). Any idea? 1.03 may come out soon with some updates. -- Aryary

Maybe you find a match that is too long? If they aren't moving then the match length will just get longer and longer. As for flattening, it's a long process of tweak-test-repeat. I personally like to graph the 'flattening functions' so I can see what causes what. Give FloodGrapher a try - you run +-500 rounds of FloodMini against your bot and then use FloodGrapher to look at the saved data. Delete the data and start again with the next tweak. -- Skilgannon

Hi again. I have tried your ways to find better flattening. However, I don't really see how you can like stop it from finding matches if it is stationary. As in , if I were to put something like:

- e.getVelocity()>0?1+match():0

I cannot hit StopAndGo. Thus, do you have any idea how I can fit that in lets say, 13 codesize? Thanks. -- Aryary

Hi, the current dev version of this bot has 2 problems.

1) it has high problem bot index against GFNanos. 2) it has an even higher problem index with sandbox Flattener.

I kind of solved the first one, but still unstable. Anyone knows how to deal with problem 2? Help is appreciated. Thanks.

How about limiting the maximum match length? Also, you need at least (distance/bulletVelocity) ticks of data to iterate with (I simplified to 40), so the most recent data within this timeframe is useless because you won't be able to iterate through it fully. I'm guessing your problem against StopAndGo has to do with finding a match very recent in the history, and not having enough data to iterate fully with. I'm not sure about your other problems... I can't see your code and I don't have the dev version of your bot =) -- Skilgannon

For me, I currently search the match like this:

     - for(int i = ci-100; i > Math.max(0,ci-3000) ; i--)

where ci is the "history match" I am currently at, so I should start from 100 ticks before? Also, I think what I meant with GFNanos were those using Waves for targeting, and I think it is more of my movement that is causing it. The gun should not be that bad. Well, I shall try out your methods, and any progress means an update of the bot. Anyway, Thanks. -- Aryary

Wait, I am just curious. Would this search the shallowest match? I think there is some error with it. -- Aryary

I'm not sure what this loop is for, how ci is used, etc. If you put your full source code up I could take a better look, or even the 5-10 lines above and below, just so I can get some context. I assume you're using Java's inbuilt String substring and indexOf functions? -- Skilgannon

No, I am not. Anyway, I have now changed to this new Multiple Choice Pattern Matcher, after I finally understand most of what all these inbuilt String , substring functions are, and I reduced the matching , after trying to follow Needle's and ToorKild?'s description on their respective pages. Found some extra codesize, so played with the enemy Velocity more for better matching perhaps. Unfortunately, I seem to have a number of problem bots for v1.1 , and I realised they never seem to be "removed". Is there any way to remove them? -- Aryary

This seems quite a strong release! Acero seems to be the worst ProblemBot - how about watching a few battles against it and seeing what happens? Also MirrorNano - it uses averaged linear targeting so perhaps you were using StopAndGo against it? -- Skilgannon

Not quite sure, but then I think it has more problems hitting the Mirror family rather than the inverse. I may play with the velocity more, and well, the duelist family is one too. Maybe I will come up with a new release some time soon. Also, I can't fiure out why it has so little battles after about >24 hours. Is something wrong? -- Aryary

The Mirror family just copy your own movement - so doing badly against the Mirror family means that your own gun can't hit your own movement as well as their gun can hit your movement. The duelists may be picking up on the same weakness in your movement. What features are you matching on? Just velocity? Or lateral velocity, possibly combined with advancing velocity? All bots have to get their battles up to 2000 in the main rumble before bots in the minirumble get specific mini-vs-mini battles, and once they are all up to 2000 in mini they get micro vs micro battles, then nano vs nano. Until then the only micro battles you get are from the main 'robo' rumble where the other bot you fight happens to be a micro or nano. -- Skilgannon

Well, currently I am matching on Advancing Velocity, Lateral Velocity, but with the exception that the enemy velocity are "averaged out evenly" to hit more. (i.e. its some thing like bestVelocity * Math.sin(e.getHeadingRadians()-absBearing) for lateral velocity) . So far I have not seen any bots other than Mushashi giving mirror a good thrashing, because most others have a problem bot index of > -10 vs them. Well, and what I was refering to was the main rumble. I mean after 24 hours I am still stuck at 300-400 battles (with me running battles, just that my comp is slow). Just managed to squeeze out some bytes to see if any improvement can be done. Do you have any idea of what I can squeeze in with about, 50 codesize? Thanks -- Aryary

With 50 codesize you can do quite a bit - perhaps add boundary checking on your pattern matcher so it never predicts a point that isn't within the battlefield? That's probably what I'd add if I had the codesize. -- Skilgannon

Hmmm, this new movement seems to be lacking against bots using waves for targeting (i.e. guess factor targeting and nanobots like ThnikkaBot). Any idea what seems to be the problem? Btw, I found the way i did multiple choice just didn't fit boundary checking with this new movement. -- Aryary

Heh, I just noticed that "Weak"" is now first in the MicroBots. I don't think some statements like "Weak, very Weak." are really so true. The irony is fun however :-) -- Rednaxela

I think Weak does better in Melee than Toorkild ;-) Remember, Toorkild is actually around 2010. I'm interested why Weak's rating didn't get affected. Maybe it isn't downloadable? But indeed, Weak is a strong contender! -- Skilgannon

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited August 19, 2008 21:38 EST by Skilgannon (diff)