How does it fire?

It uses a log of all ticks with information in five dimensions together with the GuessFactor that would have hit the enemy at that tick. When firing the current tick is compared to every tick in the log and the "closest" ones are examined for the most commonly occuring guess factor which is then used to aim the gun. From what I understand this gun is very similar in design to Cigaret's gun. Even though that's accidental. I just realized I can suddenly understand some of what's going on in Cigaret! =) Also see /BumbleBee.

Squared Euclidian distances used for both phase 1 & 2. (Squared since it should render the exact same results and I save quite a few calls to Math.sqrt() this way.)

Some other stuff too that I can't really recall. All in all too many experiments in one batch to really be useful for feedback. But it seems in my little testing that the short-battle performance has imporoved.

(Everything is about the gun in this bot. The movement is always the same as the current dev version of CassiusClay.)

Comments or questions anyone?

An alligator floating like a butterfly and stinging like a bumble-bee? :-) -- Jonathan

If it was an alligator it would instead just bite, roll and drown its enemies. =) -- PEZ

Yeah, from the descriptions they sound very similar! Though you talk about your gun as a PatternMatching gun. I think of B/umbleBee as purely StatisticalTargeting. Most StatisticalTargeting guns are 1-length matchers, aren't they? Or 2-length when they deal with acceleration maybe. I might be wrong here, but I think Cigaret's gun is similar to our two guns as well. -- PEZ

Here's the distinction: GF guns break all possible situations into segments and then look for the segment that the opponent is currently in. PM guns look at a the history of recent moves and try to find a time in the past that the enemy has moved in a similar way. GF guns break things up into discrete chunks whereas PM guns try to find the most similar previous state. DuelistMicroMkII and /BumbleBee are a cross between the two because they only look at the current enemy state like a GF gun would, but then they find the most similar previous state (like a PM gun) rather than looking in a specific segment. TronsGun also seems similar, incidentally. I count acceleration as being part of the "current enemy state". "State matcher" is probably a good name for this type of gun, since it works like a PM gun but operates on the current enemy state instead of operating on patterns of enemy moves. --David Alves

Like all my micro and nanobots, DuelistMicroMkII includes source, so feel free to take a look at the gun. I was going to match on more factors than the 2 I use, but I ran out of space. --David Alves

Your distinction is very different from mine. Whether it's a GF gun or not is only dependent on if it uses GFs for the actual aiming or not. Instead of storing heading and velocity in the log for replay, /BumbleBee simply stores the GF, just like Bee does. The difference between Bee and BumbleBee is only on how they store the data. Bee decides beforehand what segmentations to use. /BumbleBee makes the decision later. /BumbleBee could build up the same buffers on the fly as Bee does continously. The matching part is similar between the two guns. If BumbleBee is a state matcher, so is Bee. If Bee is a StatisticalTargeting, so is /BumbleBee. -- PEZ

Haven't looked at the code yet. I'll do that first and then answer you. -- PEZ

OK. So now I have checked. It's even more similar to Cigaret's gun than /BumbleBee is. But it's still a StatisticalGun? I would say. You store the diff-angle and the current target direction instead of the GF. And you only find the best match instead of the best matches like I do. Otherwise it's the same. It's a StatisticalGun? that only uses one sample of the statistics. =) But a few simple changes would enable it to use more samples. Even though I suspect you'd have a hard time staying a micro then... -- PEZ

I wouldn't call a single match gun a StatisticalGun?, there are no statistics involved. A traditional GF gun and a MultipleChoice PM are statistical guns. The difference between a pattern matcher and a "state matcher" is in what you match, PM involves a time series while (traditional) GF guns don't. When you include time-sice-something in a GF gun, the distinction blurs. -- ABC

Which would mean Bee is in that blurred zone? Your definition of Statistical vs PM leaves Cigaret and DuelistMicroMkII without any home in either. They are not statistical (since they only look at the best macthing sample) and they are not PM (since they don't include a time series). What I am beginning to think here is that PM and statistical has all the time been the wrong categorizations. -- PEZ

There are a lot of different ways you can look at a gun. The PM and GF distinction was good enough when the two main (good) gun types were either statistical gf-based or best match PM-based. These days there are a lot of different combinations of gun characteristics, it's very hard to classify them all in just two separate groups. I would call Cigaret (and others, like DuelistMicroMkII) a GF-based best match gun. -- ABC

Yes, but since it's entirely possible to make a GF based PatternMatching gun and also make it MultipleChoice between several matches the whole distinction is uninteresting to divide guns with. The word pattern-matching doesn't anywhere state that it involves a time series. It's just one axis over which to build patterns. -- PEZ

Agreed, almost every gun can be said to be PatternMatching... So, find a better name for time series matching... :) -- ABC

Revisiting

Checking this page I wonder why I almost abandonded this gun path. Version 0.2.5 seems to be a quite good gun and it should be open for improvement. I had planned to go for movement on CassiusClay when I've gotten the VirtualGuns thingy somewhat working. But now I wonder... I also wonder if I shouldn't go for WaveSurfing using these gun principles. -- PEZ

Hey PEZ, I noticed that sometimes Ali doesn't finish off a disabled opponent. Probably doesn't cost it much in rating points, but just letting you know. --wcsv

Thanks. What I will do if I start working with this gun again is to make it use Bee for all descisions like that. Only the data storage and processing will be different. That should make it possible for me to plug this gun into CC's VirtualGuns array too, should I fancy. -- PEZ