FightCodeGame ?

Jump to navigation Jump to search
Revision as of 19 March 2013 at 15:35.
The highlighted comment was created in this revision.

FightCodeGame ?

Anyone checked out http://fightcodegame.com/ ? The web site seems pretty sleek and it all looks pretty active and well organized. After watching some sample battles, and that the #1 ranked bot is ~350 lines of code, I have to wonder how high a ceiling there is in terms of writing sophisticated robots. The gameplay looks pretty much like a Robocode (or whatever predecessor) clone with only blocking API calls.

It kind of annoys me, on principle, that I have to authorize it with my GitHub account even to see things that are read-only, like the rankings. So I haven't done that yet and thus haven't looked into it in much depth.

    Voidious02:17, 20 January 2013

    Well I have never had much success with normal Robots. Mostly since it seemed like a lot of extra effort for little gain. That is, the rumble was dominated by AdvancedRobots and their non-blocking calls.

    I took a look at it, and it is difficult (for me) to write a decent robot on it. Mostly because I would like some kind of debug feature. Supposedly it has a log function to write to a console. But I can't figure out how to access said console.

      Chase02:32, 20 January 2013
       

      I played a different Javascript / web-based programming game and also had problems with that aspect. I think it's the browser Javascript console that you need to look at.

      (And it was crashing my browser / useless to me for a while before I realized I'd printed like 30k lines to it, which it isn't really designed for, and finally figured out how to clear it.)

        Voidious03:17, 20 January 2013
         

        After a bit more work I had a semi workable robot, but I don't think we will be able to apply anything more then rudimentary robocode knowledge to the game.

          Chase04:01, 20 January 2013
           

          I made a javascript port of sample.Walls on FightCode. Got #13 place.

            MN04:11, 21 January 2013
             

            You're joking? Hah, wow.

            Now we just need to make a port of Girl. Which I think is still the highest ranking extends Robot.

              Chase07:03, 21 January 2013
               

              Heh. :-) Pretty cool to see sample.Walls in action in a different game.

              Down to #45 now: [1] Seeing as the battles are 1 round and I think it may take some manual action to run battles, the rankings may be a couple orders of magnitude less stable than what we're used to with the RoboRumble.

                Voidious07:22, 21 January 2013
                 

                That #13 place was a stream of lucky battles. Ran some more battles later and the rating kept oscilating between 1485 and 1525.

                You can also choose whom to fight against and manipulate your rating by choosing only opponents with high PBI, but I avoided it.

                My impressions of FightCode:

                The API is simpler than "extends Robot" in Robocode.

                No energy drop when firing and the gun and bullets are still invisible to radar. So, no way to detect incoming bullets. But you can assume a bunch of tick-head-on bullets.

                No independent radar axis, the radar is always pointing to the same direction the gun is.

                No velocity and heading in scans, making even linear targeting a challenge.

                No "scan()" method, making bots miss a lot of scans, even when there is a sitting duck in front of their guns. I had to hack Walls code a bit to improve scans, but it is still missing a lot of them. And it is a key strategy in Walls to avoid being crushed by opponents close to walls, like Corners.

                I wonder how a rambot will perform there. Since it is hard to keep track of opponents due to limited radar, and the only thing which works together with "ahead()" is "fire()", a bot moving and shooting straight forward can do a lot of damage.

                  MN14:09, 21 January 2013
                   

                  Cool, thanks for the info MN. It's worth noting this game is really young - the first version was built from scratch in a month for a GitHub hacking contest near the end of 2012. They also replied to me on Twitter that some new stuff is coming: "we have some feats in the oven for advanced bots: independent queues for radar, cannon and tank; data storage for machine learning"

                  I'm curious to see how it does. The whole web-ness and feel of it all really impresses me, and I could see a lot of people trying it that wouldn't have bothered to download Robocode. But at the same time, being stuck with the web interface for all your running and testing and unstable rankings might make it hard to retain power users and maintain a passionate community. Support for local and batch battles would be nice, though it wouldn't be my top priority (yet) as a dev either. It also seems like the gameplay needs some work to approach the depth of Robocode, but it sounds like they're working on that.

                    Voidious17:12, 21 January 2013

                    What bothered me most was the missed scans, making Walls a lot weaker than it is in Robocode. Feels like bot width is only 1 pixel wide, but didn´t check the engine to be sure.

                    And FightCode web design is far superior to what RoboRumble is today. Robocode could copy that by having an applet version.

                      MN20:08, 21 January 2013
                       

                      I dunno, with the recent Java security issues, I consider Java in the browser pretty much dead.

                        Voidious20:09, 21 January 2013
                         

                        I did a bit of tweaking on walls to improve it specifically for FightCode (clone and invisible). I also made a copy of spinbot.

                        http://fightcodegame.com/profile/Chase-san/

                          Chase22:11, 21 January 2013
                           

                          Boo :)

                            Miked080108:12, 23 January 2013

                            You're back!

                            You've been a great inspiration to me. I learned a lot about shrinking Codesize from reading your code.

                            Are you planning to continue writing nanobots? Maybe you could help me unravel DoctorBob's secrets. :)

                              Sheldor15:32, 23 January 2013
                               

                              Thanks! I have uncovered may of Doctor Bob's secrets. You can nearly 100% him if you watch energy drops and reverse direction at around 120 distance. Then just aim a little behind him.

                                Miked080104:06, 19 March 2013

                                I meant the secrets of how successful it is, not how to beat it. I am trying my hand at nanomelee, but I haven't had much success. (My robot TestMelee is a really crappy derivative of Infinity.) DoctorBob says it has NanoAndrew's movement, but it looks like there must be a little something more. I wondered if you had ever seen DB's code, or heard something from the author.

                                  Sheldor12:22, 19 March 2013
                                   
                                   

                                  Hey there Miked. You have interest in fightcodegame?

                                    Chase09:35, 23 January 2013
                                     

                                    These guys should be paying me a commission... :-) Welcome back Miked!

                                      Voidious16:00, 23 January 2013
                                       

                                      And work. Thanks for the good words! I am still attempting to get caught up with a new job and such. I do intend to keep track of things a bit better though going forward and maybe even update things as time allows.

                                        Miked080104:05, 19 March 2013

                                        I have a nano project that is currently stalled due to issues with my installation of Robocode, but looks very promising. It has three modes of movement, two of them reacting to enemy fire, and a PM gun.

                                        The only problem is, I can't store .5 as a char, it gets rounded down to 0. So, I had to switch to 1 stored as a char and then divided by 2 to decode the value to a double. Then it was a few bytes over, so I had to switch from WeekendObsession's gun to Moebius's gun. But, in order to have any accuracy with that, I needed to add a setAdjustGunForRobotTurn(true);, which cost 5 bytes and still left me 2 bytes over. If you think you could help, I could post my code.

                                        By the way, I recently helped Chase with his Talon project--a nano with MRM. But I have a feeling that there is a more effective way to implement wall avoidance...

                                          Sheldor13:02, 19 March 2013

                                          Send me your version that has the best performance but is only a few bytes over, I might have an idea of how to shrink it... as well as a secret weapon which does the same ;-)

                                            Skilgannon15:52, 19 March 2013
                                             

                                            THANKS! If I can get it below 250 with the original gun, it would probably take 2nd from Sabreur, and might even give LBB a rough time (until, of course, Mike updates the tables).

                                            Do you want me to post the code here, on a new page, or actually package the bot and host it on the repository?

                                              Sheldor16:21, 19 March 2013
                                               

                                              Just the code is great.

                                                Skilgannon16:35, 19 March 2013