Thread history

Fragment of a discussion from Talk:ScalarBot
Viewing a history listing
Jump to navigation Jump to search
Time User Activity Comment
No results

Thanks! I'm also surprised a lot by the vote ;) I think my success is largely contributed by the way I'm keeping track of enemy firing ;) I use only one best match from each tree (which can be considered a good source of randomness, from the view of the guns), making the movement really unpredictable for the strongest guns ;) What made this approach is that my Kd-tree, when searching for more than one point, has some bug when I was first developing my movement. All my attempts to use more than one match failed at that time, but it, however, works surprisingly well against the top bots, even without a flattener.

However, with this approach, some simple GuessFactor gun can hit it almost as good as the top guns ;/ Therefore its APS rank is generally much lower than it's PL rank.

And that is also why a lot of top bots are easy to beat — they are really good at dodging GuessFactor guns, making them pretty predictable by the top guns.

Then they use flatteners, but their nature of being easy to hit will never change. Flatteners only work against fast decay lightly segmented guns, not kNN "pattern matchers".

Xor (talk)14:58, 13 September 2017

It seems that the ideal thing would be to figure out a way to learn which class of targeting a robot belongs to. We know that it is harder than predicting how an enemy moves because the enemy give us way less information about his gun, but you could try some conditions (not only hit rate) to estimate this instead of letting your learner figure out everything about enemy's targeting method. I usually hate to mix hard-coded conditions with learning methods, but it could work out here.

Rsalesc (talk)16:18, 13 September 2017

Maybe you don't really need hard coded conditions here — they are really fragile, as you are making strong assumptions about your opponents.

Instead, even with less information, their targeting method will be explosed by the attributes they show after statistic. And why don't let your bot itself to figure out which targeting method it matches the best?

Just hard code a bunch of virtual guns like what EnergyDome do, and select the best. Then dodge.

Xor (talk)02:26, 14 September 2017

That's the thing I try to put into a robot since I've first read this wiki. If we can decide which gun is better, why can't we decide which way to move is? I just intuitively think that the VG results may not come to a reasonable decision. I think it will take some time for it to figure out a difference between a normal GF gun and a top gun, if it ever figure it out correctly. I think there is a huge difference between what's the gun that hit me the most and which is the gun that enemy is using. It can be quite misleading. I would be happy to make this idea work, but I think I' have to come up with something better.

Notice that I understood simple GF targeters as simple, lightly segmented buffers.

Rsalesc (talk)10:34, 14 September 2017

Or, can we partition all guns (without VG array) to three types — non-learning guns, statistical guns, and pattern matchers? HOT, LT, CT would fall in the first type, and Traditional GF guns the second type. Pattern matchers obviously the third type. And a highly segemented GF gun, or a DC gun, would then be something between statistical guns and pattern matchers.

For non-learning guns, the bearing offset they are firing at remain a constant at each situation, and hard code a bunch of them is also easy.

Statistical guns learn slowly, and for a given situation, their firings keep the same for a period of time. Also, they tend to fire at past firing angles, the more they fired at a given angle, the more likely they will fire at that angle in the future.

Pattern matchers are unpredictable, unless you know their exact settings. The only thing you can do is to be unpredictable as well, and add some noise in your movement.

The main stream wave surfing is mainly assuming something simular to statistical guns. They keep track of enemy firings, then dodge them deliberately. Recorded firing angles are often weighted on frequency & elapsed time.

This approach works very well against statistical guns, and it's also good for dodging non-learning guns without VG array. However, its gain is also its weakness, e.g. pattern matchers work well, not to mention lightly segmented fast decay gun.

I think it's not hard to separate a non-learning gun from everything that learns, however, a statistical gun can not be separated that well from pattern matchers. Anyway, hit rate is always some good criteria, although maybe not the best.

Apart from enemy hit rate, another approach may be using a bunch of buffers (or trees), some keep tabs on hit, some keep tabs on visit. And as a criteria, not only use buffer "hit rate", but also miss rate, as miss rate is what affects enemy hit rate the most. And this is mostly what Tomcat does.

Xor (talk)13:33, 14 September 2017