0.014c

Jump to navigation Jump to search
Revision as of 29 October 2017 at 05:28.
The highlighted comment was created in this revision.

It's great to see ScalarBot will enter melee as well. I'm excited, there are going to be some nice battles :)

    Cb (talk)11:01, 28 October 2017

    Thanks ;) I'm also excited to see what's going on ;)

      Xor (talk)14:49, 28 October 2017
       

      About skipping turns: I've had an issue I heavily skipped turns in RR@H but I could not reproduce it against some pre-defined battles I had. I could get some skipped turns only when I run the exact same battles I got skipped turns in RR@H, so I had to log the exact scenarios that led me to skipping that much turns. Yeah, it's weird, but that's what often happens in Robocode. At least it forced me to do a bunch of weird optimizations, and I'm still skipping a bunch of turns btw. I don't know if you are already doing that but I hope it helps anyway. Excited to see ScalarBot performing in melee!

        Rsalesc (talk)15:54, 28 October 2017

        Well, I thought that skipping turns could be avoided by not using full CPU to run rumble (leave a thread for GC, etc.), as it seems that I skip turns heavily (and randomly) against every bot (however I've examined only two bots which is selected randomly by rumble@home). I've been already doing weird optimizations everywhere, which destroys readability & extendibility.

        Anyway, I've never verified that skipping turns could be avoided in any way. But anyway, being able to handle inconsistent scans always helps, that's why I decided a full rewrite.

          Xor (talk)17:18, 28 October 2017

          That was my main issue when going from rumble to melee. I basically destroyed all my code beautifulness because of those constant optimizations, but they really showed necessary, it became evident that my code was really slow when I released Medina, and it actually helped a bit on 1v1 too as some optimizations were not that bad and actually gave me more room to work on Knight.

            Rsalesc (talk)17:56, 28 October 2017

            Just found why I'm skipping turns so bad —

            if (Math.random() < 0.01) {
              ArrayList<Object> list = new ArrayList<>();
              for (int i = 0; i < 10000000; ++i) {
                list.add(new Object());
              }
            }
            

            I forgot to comment this out.

            Anyway, I think I'm still skipping turns badly when I run two clients together, as a newer version which is theoretically the same as previous version performs much worse.

              Xor (talk)07:28, 29 October 2017