New Gun

Jump to navigation Jump to search
Revision as of 27 February 2013 at 20:54.
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.

    Chase20:05, 20 February 2013

    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.

      MN20:55, 20 February 2013
       

      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.

        Chase21:57, 20 February 2013
         

        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.

          Chase13:27, 21 February 2013
           

          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.

            GrubbmGait16:42, 21 February 2013

            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.

              Chase17:31, 21 February 2013

              In the top 10 it is Nene and GresSuffurd, although GS is using simple VCS surfing with no rolling and a (fairly) simple VCS gun as well.

                Skilgannon18:05, 21 February 2013
                 

                WaveSerpent is the highest ranking bot that doesn't use DC, not Dookious.

                  Sheldor19:46, 27 February 2013
                   

                  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.

                    Chase20:02, 27 February 2013

                    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.

                      Skilgannon20:15, 27 February 2013
                       

                      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.

                        Skotty21:42, 27 February 2013

                        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.

                          Skilgannon21:50, 27 February 2013
                           

                          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 bringing coming across this technique and bringing it to Robocode was inspired by clustering algorithms, k-nearest-neighbor search is not a clustering algorithm.

                            Rednaxela21:54, 27 February 2013
                             
                             

                            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.

                              Chase19:32, 27 February 2013