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.
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.
(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.)
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.
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.
Heh. :-) Pretty cool to see sample.Walls in action in a different game.
Down to #45 now:  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.
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.
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.
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.
I dunno, with the recent Java security issues, I consider Java in the browser pretty much dead.
I did a bit of tweaking on walls to improve it specifically for FightCode (clone and invisible). I also made a copy of spinbot.
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. :)
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.
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.
His code cannot be completely decompiled as he obfiscated it, but if you look around a bit, there are ways of figuring out what he did. Honestly, you can reverse engineer his good pretty easily by the fact that he cannot hit stop and go targets. His radar is lock onto nearest person and charge - which against weaker melee guns and movement works great. The bots that hide in the corner and make small movements counter him well though. Dustbunny does well because it runs from him (and everyone else) :)
These guys should be paying me a commission... :-) Welcome back Miked!
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.
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.
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 ;-)
Do you want me to post the code here, on a new page, or actually package the bot and host it on the repository?
I'll look at this a bit tonight. There is a savings that can be had by compiling with a different Java compiler. I remember that :)
BTW, I still feel very that LBB is a pretty cheezy bot. Abusing tables like that probably shouldn't be fair. It takes hours and hours though to get each bot optimized so maybe that makes it a little better overall. besting Moebius is a better accomplishment. At least he doesn't cheat...
Was kinda bummed to see that FightCodeGame is on its way to becoming for-profit and maybe not-open source:  They say the game will still be "free" (as in beer, I suppose).
I mean it's their call and best of luck to them, it just feels antithetical to the spirit that's helped communities for Robocode and other programming games thrive for a really long time. And while there's demand for good programming games - a prerequisite to making money off of something - I personally think there will also always be a supply of good / free / open source programming games that make it really hard to turn one into a business. There's just plenty of people that make their living doing other stuff that are happy to create programming games as a hobby.