New Gun
The highlighted comment was created in this revision.
Well it could have been worse.
But considering it suddenly beats bullet shielders leads me to believe there is a bug in my gun. I'll do some debugging and see what I get.
But I am guessing my problem with some of these is actually my terrible bullet power selector.
Combat beats all bullet shielders except EnergyDome. And without specific anti Bullet Shielding.
Don´t know if there is a bug in learning GF0 angles. At least graphical debugging against SittingDuck looks bug free.
Well Nene beats them all. Plus some of the scores seem skewed in odd ways. Since I tested against some of them with just the gun, and I happen to know the movement is relatively decent.
It seems the fast math in my next position calculator as well as some bad bullet power was really hurting it. Nene ranked 8th is perfectly acceptable to me. I would have been happy with it passing Ascendant. Considering its score it might switch places with Phoenix and end up #9.
Congrats with this improvement. You left me dangling at 10th place. And all I want to do is pass Dookious as that is the highest ranked non-DC bot. Your gun probably has some more room for improvements considering your movement is that strong.
Well the gun wasn't done. But Skilgannon's comment got me thinking. I figure it was overdue.
But this kills two birds with one stone. Means I can change the license entirely to ZLIB, and it sorts out many of the issues Nene was having with surfers and (to my surprise) bullet shielders.
With this development, I am fairly sure Nene is the only top-10 robot who not only has no flattener but also no VG array. This appeals to my sense of simplicity. I am currently going about fixing a few minor bugs in Seraphim. To see where it would have ranked if I had been competent at the time.
We were talking about Virtual Guns and Flatteners. Neither GresSuffurd or Nene use either (as far as I am aware).
Never said that GresSuffurd was the highest ranking VCS. If I recall DrussGT doesn't use DC for its movement.
Yup, DrussGT still uses 'stone-age' VCS for the movement =) I've tried DC several times, but I just couldn't get the same performance. Maybe DC using range-based searches instead of KNN would work better, I seem to remember Jdev saying that worked a lot better for him in movement.
For both movement and targeting in XanderCat, I use a KDTree to store both hits (bullet hits target) and visits (where robot at time bullet would have hit whether it did or didn't). When moving or aiming, a certain number of hits are pulled from the tree using KNN search. Those hits are then dumped into a factor array (with a little smoothing for movement but not targeting). And then the lowest (or highest, for targeting) area of the factor array is where I drive to (or shoot). Visits are only used in my movement, and only when my flattener is active. When talking DC and VCS, what would you consider this to be? I've always thought of it as something of a hybrid, but I don't know if I clearly understand how you all define these terms.
I'd definitely call that KNN (or DC as we do on the wiki), you are just using a discrete kernel density estimation to find your peaks/troughs. Your algorithm would give identical results if, instead of smoothing into bins, you reversed the loops and checked each angle for a 'score' by evaluating its nearness to previous data, which is just discrete kernel density estimation through sampling. VCS refers to the way that the data is gathered in the first place, smoothing the data into segmented bins as it is collected.
DrussGT doesn't use bins until it's time to surf (like you), instead just keeping a list of the last 2*rollingDepth hits for that buffer, but I did the math so that it is functionally equivalent with rolloff and weights, and as such I still call it VCS.
As I've seen it used the "DC" terminology applies to any KNN-based system. I would classify XanderCat's strategy as you describe it as being part of the group "K-Nearest-Neighbor, Guessfactors, with Bins".
Personally I dislike the "Dynamic Clustering" term because it's a bit of a misnomer in my eyes. While ABC coming across this technique and bringing it to Robocode was inspired by clustering algorithms, k-nearest-neighbor search is not a clustering algorithm.
Oh that's what you meant.
I agree with Red that DC is kind of a misnomer. It was similar to k-means with only one cluster. Which is how it got its name. But DC is really just a KNN system.
In that case I want to pass WaveSerpent, as that is the highest ranked bot without any DC in its gun, movement or radar ;-)
Eh? The only way I can think of a K-NN search being useful for radar... would be in a field that is much larger than radar range, to predict the angle the opponent is most likely to come back into view at
Or if you're being very aggressive about an optimal radar, guessing at their movement instead of going as far as they could have gotten. :-) But GrubbmGait might have been making a subtle joke...
Nene uses a kNN for estimating the bullet power of the enemy (for its heat waves).
How do you use kNN to determine the power to fire at?
I just noticed.
That on adding this new gun, I accidently broke Nene's bullet shadows.
By that I mean 1.0.2 doesn't use them at all! All the code is there, it still considers them, except they never get produced/added. So it acts as if it has no shadows (per default). The thing is I used to route the targeting through a custom fire routine that informed the movement when it fired. But I bypassed that custom routine on accident when I glued the gun onto Nene.
To fix it, I only needed to remove 5 characters. I am going to test this and release a 1.0.3.