View source for Talk:Main Page

From Robowiki
Revision as of 07:02, 26 May 2011 by Nat (talk | contribs) (→‎Forum For Discussion: my two cent)

Talk:Main Page
Jump to navigation Jump to search

Forum For Discussion

Does anyone else think that Wiki Discussion pages are an absolutely terrible way to communicate? It's fine for individual page feedback, but has anyone considered hosting a normal chat forum for Robocode? Skotty 00:08, 26 May 2011 (UTC)

I don't think they're terrible, but I am curious to check out something like LiquidThreads, which might be a good fit with the large role that discussion has on this wiki/in this community. --Voidious 02:09, 26 May 2011 (UTC)

IMO, Wiki Discussion is very good, because it allow very easy comment structuring, and very flexible way of communicating. I personally think that User_talk page should be use for thread not related to other topics. The only bad thing IMO is that is is not newbie-friendly (more like newbie-enemy). --Nat Pavasant 06:02, 26 May 2011 (UTC)

Why is the "Robo Wiki" icon in the upper left corner so small?

The headline speaks for itself. --Awesomeness 21:08, 3 May 2009 (UTC)

So small? It seems just right to me really. --Rednaxela 21:56, 3 May 2009 (UTC)

Because it is the same size as the old wiki =) » Nat | Talk » 23:41, 3 May 2009 (UTC)


http://www.csdgn.org/files/images/robowiki2.png

I have a solution to this! I was bored so I drew this (though it is probably too big!). I realize I forgot the radar, but to be honest, from this angle it would block to much however. Just consider it a drone! --Chase 21:50, 20 June 2010 (UTC)

You could just said that it is a Droid instead of saying that you forgot them... --Nat Pavasant 13:36, 21 June 2010 (UTC)
I like it - it looks good :) on the current one you cant really read wiki because its blocked but this looks really good :) --Exaugetalk 14:51, 21 June 2010 (UTC)
I suppose I could have. On another note, I notice that some of my shadows are wrong/inconsistent. --Chase 15:30, 21 June 2010 (UTC)
Looks really nice! I like it. Of course I have a soft spot for the old one, but this one's also very true to the original idea. And the text is way more readable. --Voidious 00:05, 22 June 2010 (UTC)

http://www.csdgn.org/files/images/robowiki3.png

I fixed some of my shadow work in this. I made the wording a bit more visible as well (by adding more depth to it). I also made the book lines heavier. — Chase-san 06:25, 20 July 2010 (UTC)

http://www.csdgn.org/files/images/robowiki_thumb.png

Obviously this is to big to go in the corner, but I made a reduced size one. — Chase-san 06:28, 20 July 2010 (UTC)

Was a decision ever reached on this, because I am considering redrawing this (but better). — Chase-san 20:13, 18 January 2011 (UTC)

I'm up for changing it and I don't think anybody objected. Just fell off my radar - sorry! I think my only criticism of that first one is that the "IKI" is a little smushed together. --Voidious 20:20, 18 January 2011 (UTC)

Well (I personally think) my art has improved considerably since I drew this. — Chase-san 21:31, 18 January 2011 (UTC)

If nothing else, I will go over it with a pen and clean up the line work. — Chase-san 21:38, 18 January 2011 (UTC)

http://www.csdgn.org/files/images/robowiki2_small.png

Here is the new version. It's a bit cleaner, though it doesn't have as much character (because it is so much cleaner). — Chase-san 02:01, 19 January 2011 (UTC)

Nice stuff, looks pretty good to me :) --Rednaxela 06:04, 19 January 2011 (UTC)

So are we going to use it? — Chase-san 16:12, 8 February 2011 (UTC)

Just updated it. I think it looks really nice, it really changes the look of the page a lot more than I expected. Let me know if anyone sees it looking weird anywhere - I'm not exactly a CSS guru. :-P Nice job, Chase! --Voidious 17:40, 8 February 2011 (UTC)

You just change the $wgLogo, right? I don't think it would affect the page at all. I does feel weird at first, I agree. --Nat Pavasant 15:18, 9 February 2011 (UTC)
Yeah, but the new one is taller so I had to move the sidebar down a bit. Took me a while to track down the right CSS to change. =) --Voidious 15:22, 9 February 2011 (UTC)

What about the favicon? --Nat Pavasant 10:59, 11 February 2011 (UTC)

Does robo rumble work?

hi im new to robocode, been doing it as part of my uni course and i was wondering, is it possible to run roborumble at home anymore because ive follwed the instructions and none of the battles ive been doing have been uploading.... Quietus 15:47, 21 November 2008 (UTC)

Yep! It sure as he heck still works! The thing is, the rumble.fervir.com server has been kind of broken for a while. You need to point your client at this URL instead now (See here for more information). There's new fanciness in that server too :) --Rednaxela 19:48, 21 November 2008 (UTC)

Article count

A couple questions about the article count (after having some trouble Googling for answers). First, why isn't it updating automatically? Is that something I can trigger to update, or add to the "job queue", does anyone know? (Notice if you edit / preview it is higher than 43, which it reads on the main page right now.) Second, what qualifies as an "article"? Is there a minimum length that a page needs to be (other than not being a user or talk page) to qualify as an article? --Voidious 19:56, 12 November 2007 (UTC)

The main page just updated, it now says 48 articles. Also, the statistics page says that there are 145 pages total, but it is excluding, "talk pages, pages about RoboWiki, minimal 'stub' pages, redirects, and others that probably don't qualify as content pages." --AaronR 20:00, 12 November 2007 (UTC)

According to the MediaWiki wiki (now that's a mouthful), the main page will come up to date as soon as its HTML cache is invalidated, at which point all of the templates, etc. will be transcluded again. Don't know if that helps... --AaronR 20:27, 12 November 2007 (UTC)

Font size

Just out of curiosity, why is the font size so large here compared to, say, Wikipedia? I know, I know, it's the same as the old wiki's font, but that wiki didn't have a sidebar. --AaronR 07:04, 13 November 2007 (UTC)

Primarily because I thought "x-small" was just too small, and yes, it was also just sooo much smaller than the old wiki. I also figured that with the skins options, we could easily give people more choices to choose their own style, anyway. I will confess that tiny fonts for the sake of sleeker designs is a major pet peeve of mine. :-P --Voidious 07:12, 13 November 2007 (UTC)

Smileys :-)

I would be relly nice if we could somehow support smile, e.g. just as simple as stating:

[[Image:HappySmiley.png]]

--Flemming N. Larsen 09:04, 28 November 2007 (UTC)

Wikimedia Commons has a whole section of GFDL'd or public domain smileys (look at the link at the bottom for more). I don't really see the point though. If you want to upload them and use them, feel free, but I'll stick with =) on the wiki. --AaronR 01:21, 30 November 2007 (UTC)

Old wiki

The old wiki is not working (error 500), and so my roborumble client (it cannot find the list of partecipants), but i see many client is uploading. What is your solution? --Lestofante 10:35, 1 Dic 2008 (UTC)

The clients currently running are just using the last copy of the participants list they downloaded from the old wiki. I emailed PEZ a bit ago and got a reply that he'll look into it so hopefully the old wiki will be up again in not too long. If that ends up taking longer than expected though, we could update/fix the participants page on the new wiki and point clients at that instead. (Note: Don't point clients at the one on the new wiki just yet, it's out of date and such. It needs to be copied over from a downloaded copy of the list from the old wiki) --Rednaxela 12:00, 1 December 2008 (UTC)

maybe we can drop definitely the old wiki for roborumble client, or better every ramble server can implements it's own participants list, maybe integrated with general wiki list --Lestofante 15:13, 1 Dic 2008 (UTC)

I'd agree that migrating to using the new wiki participants list would be good, though I think some more veteran wikiers/rumblers than myself should give their input before any such switch is made 'official'. As far as keeping a participants list with the rumble server, well, there's only one working rumble server at the moment so I'm not sure what good that would do, and furthermore multiple rumble server would be a bad thing I think becacuse it would divide the processing power that goes towards making the battles. --Rednaxela 17:47, 1 December 2008 (UTC)

That's right, then I thing the server have to had a mirror of the wiki's official participants list, so in this case we can continue run our client, simple we cannot modify the list (if the two list are not synchronize together) --Lestofante 21:49, 1 Dic 2008 (UTC)

Yeah, the real problem is getting the participants list from the currently-erroring wiki. The RR client has no problem parsing the new wiki format. I may be able to get that from the RoboWiki server when I get home (if it isn't fixed before then).

The other issue we might encounter in the future would be when we move this wiki to robowiki.net, and we have RR clients pointing to testwiki.roborumble.org, but I don't think forwarding that URL and/or having people update their clients would be a big issue. I'm glad you contacted PEZ about the old wiki's current problems, I've been out of touch for at least a week...

--Voidious 19:03, 2 December 2008 (UTC)

Okay to mention it here as well for people who haven't been checking up on it... The old wiki is back up! --Rednaxela 18:43, 9 December 2008 (UTC)

mailer error

I'm trying to confirm my user e-mail, but I still get "mailer error". I've tried 3 different and working address... and there is a way for automatically sign the edits? --Lestofante 22:00, 1 Dic 2008 (UTC)

I couldn't get the mailer to work either, but you can easily sign your edits using --~~~~. See http://meta.wikimedia.org/wiki/Cheatsheet for more tricks. --Darkcanuck 03:13, 2 December 2008 (UTC)

InterWiki Links

Who have fully access to this server apart from David Alves? I want both my thai wiki and this wiki a inter-languages link. Please look here for more detailed. » Nat | Talk » 15:16, 15 April 2009 (UTC)

I have full access, or at least I do if I can remember the password. =) I'll see about logging in and taking a look at the InterWiki stuff. Sorry it took so long to respond about this. --Voidious 14:50, 16 April 2009 (UTC)

Hey Voidious, I believed that the SQL will take less than 1 seconds to copy/past/execute. Plus login/connecting time I think this can be accomplished within a minute so please do asap (or I must say NOW). » Nat | Talk » 16:19, 22 April 2009 (UTC)

Hey Nat - I will add the InterWiki link because I'd like to support your efforts to start a Thai Robocode community and wiki. But I really don't appreciate being commanded to do that (or much of anything, really), and especially to do so "NOW". Please keep in mind the RoboWiki's only rule: "Pretty please be polite." --Voidious 18:48, 22 April 2009 (UTC)

Cool, I read up on the InterWiki stuff, added your Thai wiki to the database, and posted a link on the main page. As I can't read Thai, please make sure that looks right and edit it if necessary. =) --Voidious 22:54, 22 April 2009 (UTC)

Sorry for that rude. But anyways, thank you very much. The link at main page is correct. » Nat | Talk » 01:37, 23 April 2009 (UTC)

Database error

I didn't know where to put this, but here seems like a decent spot. All my posts are getting this message today (4 times, probably 5 with this one), the posts are still uploaded but the message is:

A database query syntax error has occurred. This may indicate a bug in the software.
The last attempted database query was:
(SQL query hidden)
from within function "SearchMySQL4::update".
MySQL returned error "126: Incorrect key file for table './wikidb/searchindex.MYI'; try to repair it (localhost)".

I don't know if localhost is meant to be from mine point of view, or the server's. Maybe someone else is getting the same messages, I haven't tried to logout/in, because I just thought of that. --zyx 23:47, 5 May 2009 (UTC)

Just like when you go to the mechanic, I didn't get the message this time. Another piece of information may be that all the other 4 posts where at Talk:PwnBot‎, so maybe the problem relies in that page. --zyx 23:49, 5 May 2009 (UTC)
I found some mentions of people hitting this, and it sounds like a "repair table" SQL command is the remedy. I've run that now, so hopefully it's fixed. Can you let me know if it happens again? Thanks, --Voidious 00:31, 6 May 2009 (UTC)
Just got it again, and again in the same page Talk:PwnBot‎. --zyx 20:45, 6 May 2009 (UTC)
Thanks for the info. I saw it as well when I posted the downtime note. I'm guessing the server crashing corrupted the searchindex table -- I'll rerun the "repair table" and post here when I do. I'll also be backing up the database very soon. --Voidious 20:52, 6 May 2009 (UTC)
Is it... My fault?! I created that page. It seems whenever I change a page I get it too. It doesn't matter what page I go to. Also, for the majority of today, (for me at least) it seems your server has been down. I've been unable to connect. --Awesomeness 22:04, 6 May 2009 (UTC)
It's not your fault, and I saw it on another page too. The server went down for a while as of last night, still not sure what happened, but glad it's back up. I've rerun the "repair table" command, so I think that database error will go away for now. --Voidious 22:06, 6 May 2009 (UTC)
I now know why I can't access the wiki (and roborumble.org) yesterday. Night there, afternoon here. » Nat | Talk » 00:25, 7 May 2009 (UTC)

SourceForge.net Community Choices Awards

http://sourceforge.net/images/cca/cca_nominate.png

Please nominate Robocode to SourceForge.net Community Choices Awards!
Nominate Robocode

Anyone mind to put this to MediaWiki:Sitenotice or front page? I not sure if I can post to front page. » Nat | Talk » 10:21, 15 May 2009 (UTC)

Please nominate Robocode in category of "Best Project for Academia" and "Most Likely to Change the Way You Do Everything". If you nominate to another category, please post here so other robocoder can nominate in same categories (note that you can nominate in multiple categories) Nevertheless, please nominate! » Nat | Talk » 11:26, 18 May 2009 (UTC)

Special:Disambiguations

Do anyone know why the Special:Disambiguations has spammy report? » Nat | Talk » 11:23, 18 May 2009 (UTC)

Image Uploads

It looks like the image uploads folder is not set as writable to the wiki. Is this expected to change? -- Synapse 05:27, 10 June 2009 (UTC)

Haven't test yet. If this is true, I think this problem cause due the upgrading of MediaWiki. Voidious, check it please? Another note to Voidious, MediaWiki/1.15 just release =) » Nat | Talk » 13:29, 10 June 2009 (UTC)

Not sure why it stopped working, but I'll take a look at the image uploads and upgrading MediaWiki this afternoon. (And making a mental note to test that whenever I upgrade. =)) --Voidious 15:41, 11 June 2009 (UTC)

Fixed the uploading issue and upgraded MedaWiki to 1.15. Enjoy. =) --Voidious 20:10, 11 June 2009 (UTC)

/wiki/PageName-style url

Recently this day I noticed that the /wiki/PageName-style URL is now work. Voidious, why don't you set the $wgArticlePath = "/wiki/$1" in LocalSettings.php? And I wonder why the old server at 174.132.4.195 now has new wiki code, and available in both /wiki/PageName and ?PageName style (but not /w/index.php?title=PageName style). What's going on? » Nat | Talk » 12:56, 27 June 2009 (UTC)

Syntax Highlighting

It would be great if we could have syntax highlighting for code snippets. This would make code snippets easier to read. Currently, if I want to read a code snippet from the wiki, I would copy and paste it into my favourite text editor.

Wikipedia itself seems to use SyntaxHighlight GeSHi.—

Duyn 14:56, 17 January 2010 (UTC)

User:Voidious/RoboWiki_To-Do --Nat Pavasant 13:41, 18 January 2010 (UTC)

Yeah, that's been on my to-do list for a while, I'll try to get it up and running soon. Can't be too tough. =) --Voidious 16:12, 19 January 2010 (UTC)

Favicon

I just noticed that the new Robowiki doesn't have a favicon. This is easily remedied by copying http://old.robowiki.net/favicon.ico so that it is accessible at http://robowiki.net/favicon.ico --Skilgannon 18:00, 17 January 2010 (UTC)

Will do. --Voidious 16:12, 19 January 2010 (UTC)

Robocode on Wikipedia

Well, wikipedia:Robocode article is just challenged for reference, as well as a original research. Please help it by adding reference. --Nat Pavasant 15:09, 15 April 2010 (UTC)

Honestly, I believe many things on the wikipedia article, at least 2/3rds of the page, just plain don't belong on Wikiedia, due to valid reasons. In fact I'm not sure anything beyond the overview and the first two sections belong, given how Wikipedia's 'original research' and 'notability' criteria apply to such sections. Even those sections which do make sense to keep to desperately need citations. Essentially, I don't feel the sections added by PEZ fit wikipedia's criteria for what belongs. So... I think it does deserve to be challenged for good reason. I don't have time to improve what should stay though. --Rednaxela 16:39, 15 April 2010 (UTC)

I'll make more comments on the Wikipedia talk page, but I agree it needs a lot of cleanup and I'm willing to help out with that. I half agree with Rednaxela. The overview and first 2 sections are fine and neutral. The rest could use a lot of cleaning up, but I don't think it all needs just to be axed. Some editing down / revising / adding citations should do the trick. (I think the RoboWiki is a "reliable source"? If not, I don't know what is.) --Voidious 19:03, 15 April 2010 (UTC)

Well, while I would personally consider Robowiki a "reliable source" for my own purposes, it seems to me it violates some of what is noted on Wikipedia:Verifiability#Self-published_sources, in particular how it notes "open wikis" among other things as "largely not acceptable". Also, note the "no original research" policies, and consider that much of the purpose of Robowiki is for "original research". There is a significant difference between a source one trusts, and a source that fits Wikipedia's rules. --Rednaxela 01:54, 16 April 2010 (UTC)
Hmm, thanks. I really don't know much about Wikipedia's policies, but just starting to read up on it now. In that case, you are probably right that a lot of stuff needs to just be axed... --Voidious 13:46, 16 April 2010 (UTC)

"Robocode Guidebook"

Migrated to Talk:Robocode Guidebook

RoboCode Chat / IM

So it is to my understanding that currently the only real way for robocoders to talk is on talk pages on this wiki so I had this idea... what if we had an IM type web chat system for Robocoders to talk :) within a few months i could probably get a website set up to do that and it would use the open-source AJAX project. What do you all think of the idea? --Exauge 00:33, 15 May 2010 (UTC)

I think we have an (deserted) IRC channel (or not?). But actually I do chat with some Robocoder through GTalk and e-mail. --Nat Pavasant 00:38, 15 May 2010 (UTC)

Seems like a lot of work. =) Some of us have each other on IM. I use my handle on AIM and my handle at gmail for GTalk/Jabber. (But my AIM is set so you can't see my status if I don't have you as a buddy.) We used to have oldwiki:ContactInfo, but there's no current page with that kind of info. --Voidious 00:41, 15 May 2010 (UTC)

Hi, anyways I've started working on a Robocode talk page and it's getting to be pretty sweet ;) I can probably have it finished in a few weeks (maybe sooner) and anyways if you like it you will all be very welcome to use it and if it's popular enough I might purchase a domain name for it :) and if not, well it's a good way for me to practice my website building skills :) anyways back to studying for tomorrow's exams lol :S --Exauge

Well, personally anyway, if were to have a robocode live chat place, I'd strongly prefer it be an IRC channel (i.e. on Freenode?). Mostly because I always have an IRC client running anyway, and those without an IRC client can still sign in via a web page (i.e. [1] and [2]). Also, IRC is probably about the most mature system for such things anyway, and it's nearly maintain free to maintain a channel. --Rednaxela 04:03, 17 May 2010 (UTC)

Wall Avoidance

moved to Talk:DustBunny...

Walking to the center of the wall

Well, i'm trying to make a Robot that goes to one of the walls, walk to the center of it an then start to circulate the entire Field, touching the center of each wall.

Anyway, I'm having problems to take the Robot to the center of one of the walls. That's what i'm doing:

   package MyRobots;
   import robocode.*;
   import java.awt.*;
   public class Walle extends AdvancedRobot
   {
       double moveAmount;
       int miss = 0, hit = 0;
       public void run() {
       
           moveAmount = Math.max(getBattleFieldWidth(), getBattleFieldHeight());
       
           setBodyColor(Color.black);
           setGunColor(Color.orange);
           setRadarColor(Color.yellow);
           setScanColor(Color.black);
           setBulletColor(Color.orange);
       
           turnLeft(getHeading() % 90);
           ahead(moveAmount);
       
           turnGunRight(90);
           turnRight(90);
       
           if((getY() + getWidth()/2) == getBattleFieldHeight() || (getY() - getWidth()/2) == 0) ahead(getX() - (getBattleFieldWidth()/2));
           if((getX() + getHeight()/2) == getBattleFieldWidth() || (getX() - getHeight()/2) == 0) ahead(getY() - (getBattleFieldHeight()/2));
           while(true) {
           }
   }

The problem is obviously with the 2 'ifs', but I really can't get it. Thanks for any help!

getX() & getY() methods returns double value and you cannot compare them using ==, use something like this

  epsilon = 0.0001; // or another small value
  if (Math.abs((getY() + getWidth()/2) - getBattleFieldHeight()) < eplsilon) {
      ahead(getX() - (getBattleFieldWidth()/2));
  }

  // or
  if (robocode.util.Utils.isNear(getY() + getWidth()/2, getBattleFieldHeight())) {
      ahead(getX() - (getBattleFieldWidth()/2));
  }

And it's better to ask questions like this on yours page --Jdev 16:21, 14 September 2010 (UTC)

Strategy

So I'm in high school and I'm in a first year Java class. Right now our project is to create a robot in robocode. The rules are the each battle will be fought with 3 to 4 players, the final battle will be 1 on 1, and we aren't allowed to use Advance Robot. There's so many opions in Robocode that I have no clue what's the best strategy going into this. Help!!!

Thanks.

The class JuniorRobot might work well for what you are doing. For your robot just make a class extending JuniorRobot. It could be helpful to override onScannedRobot() and perform actions in there. Also be sure to check out the Radar page and try to implement one of those radar locks because without a decent radar system your robot will be seriously limited. Just spinning the radar might work OK though. ex turnRadarRight(Double.POSITIVE_INFINITY); Also be sure to check out all the tutorials on this site. --Exaugetalk 02:56, 15 December 2010 (UTC)

Well... don't get hit. :-) My advice to get started would be:

  • Check out the sample bots first, learn how and why they work.
  • Try to beat all the sample bots.
  • I'd also check with your teacher about using code from the RoboWiki / internet. There's plenty of code and tutorials available, but it's up to your teacher if you're allowed to use that code (even if the code's license says it's ok).
  • A page like Melee Strategy should be good to get the strategy gears turning.

Good luck!

--Voidious 03:33, 15 December 2010 (UTC)

Question Forum

Is there a question forum or something of the sort where people can ask random questions? —Preceding unsigned comment added by Starhammy (talkcontribs)

No, but actually you can ask on your talk page. (I forgot to welcome you properly, so it's my bad you don't know where to ask) --Nat Pavasant 12:53, 29 December 2010 (UTC)


I got an email from some website (itbhu.ac.in). Apparently an Indian college is hosting a "CodeFest" tournament for about 730 something USD (35000 Indian Rupees, it says), and it's an extension of Robocode; it has different modes including Capture the Flag, and it adds walls to the battlefield itself. My main concern: is it safe to download, ie. it has no viruses or trojan horses whatsoever? --AWOL 20:34, 31 January 2011 (UTC)

I don't know, but the first prize is only 15000, e.g. about 300 USD. The rest is for second, runner up, stuff like that. — Chase-san 23:05, 31 January 2011 (UTC)
I'm rather confident it's safe. It is hosted at a well reputed Indian university, and the event seems to have some notable partners. I'll point this out though... it appears to be using a build of the "custom-battlefields-workspace" branch of Robocode, which hasn't kept up to date with the main Robocode changes since version 1.7.1.4. This means all known bugs in Robocode 1.7.1.4 likely apply, and some of them are rather... serious... for a competition (i.e. a teleport bug, and a kill-other-robot-threads bug) --Rednaxela 00:20, 1 February 2011 (UTC)
And also a lot of security vulnerabilities in that branch... --Nat Pavasant 12:53, 1 February 2011 (UTC)
I've been playing around with it for the last couple days and it's seems to be just a different version of Robocode. Totally safe so far. Like Rednaxela said, it's just a reworked copy of the custom battlefield branch. I will say this, it's been a lot of fun working on how to detect objects in the battlefield... --KID 20:58, 3 February 2011 (UTC)

Main Page overhaul

I've been thinking the Main Page needs a serious overhaul. I'll probably experiment at User:Voidious/Main Page soon, and anyone else is of course free to do the same. Some of my thoughts apply to the wiki more generally, as well.

  • Rednaxela commented to someone recently about how discussion-based this wiki community is. We've also been looking at LiquidThreads because of that. We should probably point this out. I know I never visit Wikipedia's Recent Changes... I wonder how many people miss out on the community aspect of the RoboWiki?
  • Current events stuff needs to be removed or updated.
  • I don't think we need to list every Challenge. Maybe 2-3 of the recent ones and then links to the categories (which themselves could be polished a bit).
  • I think the "Building a Bot" section is really important. It's not bad right now, but could be better. We should probably link to more of the Robocode docs stuff. Radar is the 2nd link and goes to a very detailed page, but Targeting and Movement are not as newbie friendly.
  • Would be good to link to specific details about development tools - like Utilities, RoboResearch, Robocode/Eclipse.
  • I think the layout and colors could also be revamped - especially that gray background is pretty drab.
  • Maybe more prominent and detailed info on the RoboRumble.
  • Is the @roborumble Twitter feed interesting enough to include? (Like the @robowiki tweets on the sidebar.)

I'm sure there's plenty more we could do, just some quick brainstorming for now...

--Voidious 19:01, 10 February 2011 (UTC)

Another thing I think we need to note (especially to someone who is Wikipedia's editor) is that the RoboWiki is subpage-based, like we like Robocode/Getting_Start and not Getting_Start_to_Robocode. Just my two cents. --Nat Pavasant 10:59, 11 February 2011 (UTC)

About the spam...

http://www.mediawiki.org/wiki/Extension:SpamBlacklist - See bottom of page for spamlists. http://www.mediawiki.org/wiki/Extension:ConfirmEdit - Has our old math captcha type thing in it. http://www.mediawiki.org/wiki/Extension:Bad_Behavior - No idea how this is suppose to work

That is all. :) — Chase-san 16:39, 12 March 2011 (UTC)

We already use ConfirmEdit in reCAPTCHA mode. I checked SpamBlacklist and it's blacklists don't match anything in the recent spam. Unsure about Bad_Behavior. Now, on the ConfirmEdit page, it does note that as of 2011 spammers seem to have gotten around reCAPTCHA by some means. --Rednaxela 18:18, 12 March 2011 (UTC)

I think the trick is to do something custom so that the usual anti-antispam techniques don't work. Just something simple like "What is the next prime number after 7?" or so. --Skilgannon 08:40, 13 March 2011 (UTC)

Maybe the spammer wait for autoconfirm to bypass the reCAPTCHA. Voidious, can we change the autoconfirm rules to four edits and ten days? And enable reCAPTCHA for every page edit in non-autoconfirm group? --Nat Pavasant 01:41, 14 March 2011 (UTC)

Ah, good call! I forgot about the autoconfirm stuff. I just changed it to 4 edits/10 days. I checked and we only skip the captcha if you're autoconfirmed, bot, or sysop, so I think we're good. Hopefully we'll be seeing less spam now... --Voidious 01:56, 14 March 2011 (UTC)

Since the spam was still coming in, I updated mediawiki, update the version of the ConfirmEdit extension, AND did some custom hacks to the ConfirmEdit extension to make it simultaneously require both reCAPTCHA and a LaTeX-rendered arithmetic question. Hopefully the combination of the two will keep this spam out for good :) --Rednaxela 06:06, 19 March 2011 (UTC)

I thought Voidious still keeping it up to date..... Well, Red, you have checked permission of upload folder, right? Every time Void upgrade the MediaWiki, he needs to re-set the permission of upload folder. Good thought with Recent Change cleanup, though.

If the spam doesn't stop (as I believe many spambot can solve simple math image, I've face one), maybe you could have them solve equation ;-). --Nat Pavasant 07:54, 19 March 2011 (UTC)

Well, it wasn't *very* behind in versions, but was still 1.15.x as opposed to 1.16.x. Yep, I made sure to check the permissions for that I believe. Yeah, I wouldn't be surprised if some spambots can solve ConfirmEdit's MathCaptcha as-is, but I'm doubting that many spambots are designed to handle both that and reCAPTCHA on the same page. If they do however, I'll keep that suggestion in mind :) --Rednaxela 13:57, 19 March 2011 (UTC)

I took a look at the HTTP logs and the recent spambots have been jumping IP addresses, never solving the reCAPTCHA from the same IP that they requested it via. As a precaution, I further tweaked the captcha code to only accept answers as valid if they're from the same IP that was given that captcha. --Rednaxela 15:34, 19 March 2011 (UTC)

It seems like we're still getting a high number of users with odd names... might I suggest doing something custom? Doesn't have to be complicated, just "the next prime number after X" or "the next number in the sequence 3 6 9 ..." or some such. The trick is to make it not worth the time and effort for the spammer to implement a custom cracker just for robowiki. --Skilgannon 13:04, 21 March 2011 (UTC)

I've looked at the http logs for the IP addresses of those recent users, and they appear to be real people. They browsed some pages, made an account for some reason, browsed some more pages. Btw, an interesting stat: On March 21st so far (based on the server's clock), there have been 76 failed signup attempts due to captcha, and none of them browse pages before the signup attempt. --Rednaxela 23:25, 21 March 2011 (UTC)

Just seems odd to have 3 new people in 1 day =) Looks like it's stopped, nice work Red. I'm guessing the usage patterns would be a good attribute to block on if the spam ever picks up again in the future. --Skilgannon 12:16, 22 March 2011 (UTC)

Glad I could help by starting a thread about the problem. I also like making custom security. One of my favorite methods is changing the URL to the php or module that does the add page/register, and making a fake captcha (hidden via CSS, putting `anything` in it means you fail the check). :P — Chase-san 15:31, 24 March 2011 (UTC)


Robot Repository is down. Can't get any of the newer bots nor run the game efficiencty :) --Miked0801 16:00, 16 May 2011 (UTC) I can delete this entry when the issue is fixed...

It seems that Robot Repository has been down for about a week. Been trying to upload my newest bot but its not working. I need a place to upload my bot. --Khanguy 03:08, 17 May 2011 (UTC)

Well, one idea for both of you would be to using Google Sites to upload your bot; I started doing that recently and found it to be much simpler and easier than uploading bots onto the repository.--CrazyBassoonist 03:45, 17 May 2011 (UTC)

The problem being, I can't get the latest bots for running the rumble nor competing against you CB :) --Miked0801 04:28, 17 May 2011 (UTC)

The Robocode repository has always been sort of unreliable, hence why I've never used it personally. Anyway, perhaps look for backups of the relevant bots here or here? If missing ones that are avaliable in neither, list the ones that are missing? --Rednaxela 11:57, 17 May 2011 (UTC)

Neither of these locations contain CrazyBassoonists latest nanos, Fuatisha 1.1 nor Caligula 1.15. I'm also pretty sure they are missing a few of the other minis that were updated within the last 6 months as well. --Miked0801 14:57, 17 May 2011 (UTC)

If you go ahead and post your bot, I'll run a few battles to get some rankings. From now on none of my bots will be on the repository, but they won't make the switch until the next version.--CrazyBassoonist 20:12, 17 May 2011 (UTC)

Is is possible to upload bots here on the wiki?--Khanguy 23:43, 17 May 2011 (UTC)

Technically, yes. The issue we ran into is that it forces all filenames to start with upper case, while we all want the package name lower case. But we want the enforced on page titles, so we're kind of stuck. We could setup some kind of external file upload solution on the wiki server, just hasn't been a pressing issue because of other options, like Google Sites. --Voidious 00:59, 18 May 2011 (UTC)

I can't post a new version of my bots because I have no way of testing against your current bots Bassoon :) And I can't really contribute without a complete set of bots for the tournament server stuff. Grrr. --Miked0801 01:25, 18 May 2011 (UTC)

Hey Voidious, can you upload all the bots currently in the rumble to your dijitari site? or maybe another site. Its to help poor Miked here.--Khanguy 04:21, 18 May 2011 (UTC)

Yep, here's every JAR in my RoboRumble directory, but I didn't take the time to remove multiple versions of older bots (I'm sure there are a ton). So probably want to cherry pick the ones you need. roborumble_bots.zip (69 MB) --Voidious 13:42, 18 May 2011 (UTC)

Dl'ing now. Can't wait to see how things have changed :) --Miked0801 04:16, 19 May 2011 (UTC)

Contents

Thread titleRepliesLast modified
New Rumble Categories813:16, 16 January 2023
is wiki css broken?721:58, 3 March 2019
Robocode IRC917:48, 12 October 2018
Old RoboWiki is down017:15, 17 September 2017
Wiki spam401:33, 25 August 2017
Spamming attack, reconsider account creation313:50, 24 August 2017
Robocode Online Web Application - what do You think?2601:03, 30 June 2015
Code of Tanks: 3-D PvP Tank Battle Game for Programmers019:41, 27 June 2015
Recent Downtime114:35, 11 June 2014
Wiki back online022:32, 8 January 2014
Running Error - Robot is not stopping, forcing a stop117:19, 7 December 2013
MediaWiki update603:56, 18 October 2013
NodeWar, Code & Conquer016:06, 5 September 2013
Spamming Without Links319:43, 26 July 2013
Update problems2101:55, 11 May 2013
Wikipedia article603:25, 18 April 2013
Import Robot to Robocode113:06, 2 April 2013
FightCodeGame ?2903:21, 20 March 2013
Is it ethical to edit other people's bot/user pages?517:05, 19 March 2013
While loop in the 'run' method214:31, 5 November 2012
First page
First page
Previous page
Previous page
Last page
Last page

New Rumble Categories

I don't think code size is a good limiter for different rumble types, because it forces people to do all sorts of tricks which results in very difficult to understand code. In addition, code size is so small compared to memory now that it hardly seems relevant in most cases. What if new rumble types were added where time per tick is the limiting factor: QuickRumble, with half the time, FastRumble 1/4, HyperRumble 1/8, SlowRumble 2x, etc. (Names are arbitrary) This would mean bots in faster rumbles would have to make more time tradeoff decisions, (less precise prediction? more approximate GFs?), and perhaps bots in slower rumbles could find a use for non-KNN classification schemes that required more time. What do you think?

Straw (talk)23:47, 17 March 2014

Tick time size sound like a fantastic idea, I think robocode has some built in constants which potentially can be tweaked for time based rumbles.

But, I would still keep size based categories. I personally amazed how much can be squeezed into small code. It is indeed unreadable, but they set a bar and send a strong hint to me when those little gizmos level my megabot.

Beaming (talk)00:52, 18 March 2014

I'm not advocating the destruction of the codesize limited rumbles, just the addition of time limited ones.

Straw (talk)02:11, 18 March 2014
 

The problem is categorizing them. Right now they are automatically sorted into the categories, since codesize is a compile time constant. However time limiting is a run time value. You would have to run a number of battles to place a robot. Even then you need to decide if something that is under the certain limit 99.9% of the time but over 0.1% of the time should be in which category, and so forth.

Chase10:13, 18 March 2014

Well, we can make a time tick fixed competitions. Every one participate but bots which designed with time constrains in mind will sort to the top by themselves.

I think it is analogous to current size based system: nano bots participate in mega bots competitions and have good chances, but it is not true in reverse. Though here we can participant selection in advance.

So all we need is good tick measure, which is not that easy with current CPU which tend to throttle and boost their performance.

Beaming (talk)13:42, 18 March 2014
 

In my model, you could submit any bot to any category, but it would skip turns if it took too long for that category. So time limits implemented the same way they are now, but with different categories.

Straw (talk)04:04, 19 March 2014
 

The problem I have with this idea, is that the Robocode engine's control over CPU time is far too approximate for that task.

The nature of such a league is to encourage people to push the limit of the alotted CPU time, however one can expect the calibration of CPU time to be off by wide margins between different computers, or even different runs on the same computer.

If one wants to have a league where the CPU time is a primary design constraint for bots, we need an engine with more precise management of this, such as by using Java bytecode instrumentation to assign fixed costs to different Java bytecode instructions... but that... that gets very complicated to implement.

Rednaxela (talk)18:49, 20 March 2014

I agree that would be the best way, and also very expensive to implement. If the VM itself tracked it, that would be another story, but as far as I know, it doesn't.

Chase17:14, 23 March 2014

what would happen if the VM itself tracked it

Tmservo (talk)17:38, 23 March 2014
 
 
 

is wiki css broken?

When I look at discussion threads, I do not see anymore separate post highlighting? The whole discussion with action links now looks like one a single continuous stream.

Does anyone else experience it?

Beaming (talk)18:13, 2 March 2019

I experienced the same bug two weeks ago. But it seems fixed for me now, even though I didn't do anything.

Perhaps it's an intermittent issue?

MultiplyByZer0 (talk)19:07, 2 March 2019
 

The issue seems to be with the js resources which fails to load

Xor (talk)02:41, 3 March 2019

I have a theory about the root cause of the problem, but I need more data to confirm.

Can someone experiencing this issue please open the browser console (F12 -> Console tab), and post the contents of it? Also, which browser are you using?

If I my idea is right, you should see Uncaught ReferenceError: jQuery is not defined.

MultiplyByZer0 (talk)06:55, 3 March 2019

Same here. That's why I suspect the cause is js resources. However this issue seems to happen some time, and disappear some time. Maybe browser caches that once it successfully loads.

Xor (talk)07:15, 3 March 2019
 

I see something else in Firefox:

SyntaxError: illegal character load.php:1:190

When I go to

view-source:http://robowiki.net/w/load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=monobook&version=20140108T004349Z

After character 190 it is a bunch of strange characters. I guess something was corrupted on the database?

Skilgannon (talk)15:35, 3 March 2019

Yeah, it looks like jQuery is missing a byte somewhere.

Enamel 32 (talk)21:57, 3 March 2019
 

It seems there are two separate problems then.

Everyone who sees Uncaught SyntaxError: Invalid or unexpected token is:

  • Using Monobook (the default skin), either by choice or by not being logged in.
  • Experiencing this problem continuously.
  • The root cause is that this script, which should contain jQuery and MediaWiki frontend code, has parts of it overwritten with 155648 0x00 bytes.
  • Because that script does not parse, the loading process is broken.
  • This probably requires a server-side fix.
  • People seeing this: Skilgannon

Meanwhile, everyone who sees Uncaught ReferenceError: jQuery is not defined is:

  • Using the Vector skin.
  • Using Chrome.
  • Experiencing this problem intermittently.
  • For the Vector skin, this script, which contains jQuery and MediaWiki frontend code, it perfectly fine.
  • However, that script is loaded by this script through document.write() of a <script> tag.
  • Chrome is known to block the use of document.write() to load scripts on slow Internet connections.
  • Thus, since the script that contains and exposes jQuery is not loaded, other code that depends on it errors with Uncaught ReferenceError: jQuery is not defined.
  • Possible fix: Go to chrome://flags, set "Block scripts loaded via document.write" to "Disabled", and restart your browser.
  • People experiencing this: Xor and past me
MultiplyByZer0 (talk)21:58, 3 March 2019
 
 
 

Robocode IRC

The channel from the old wiki is decidedly dead. Is there a new one? I can't find one on any network.

If not, I'm on FreeNode.net/#robocode, I can transfer ownership of the channel to an appropriate veteran if one joins it.

Whilst the wiki discussion thing is good for serious robocode questions and things which require the persistency of a wiki, I think having a place to chill out and talk robocode more casually might be nice. Especially for things like bouncing ideas around and getting more instant feedback on things.

What are other robocoders thoughts/opinions?

I think part of me is still struggling to associate a wiki with quick responses... :P

Cbrowne00:40, 13 October 2011

ok, maybe I can't transfer ownership (it's already owned by someone?) but I can idle in there quite happily until someone else pops along :)

Cbrowne00:41, 13 October 2011
 

according to freenode's FAQ, the channel #robocode is under silly regulations, and we should use ##robocode instead, unless we can complete a "group registration" in order to secure #robocode (failing being able to contact Chase-san, who is the current "founder" of #robocode).

The upshot of this is that ##robocode is the channel I will be idling in (as well as #robocode, just in case anybody shows up there), and my recommended channel to join (unless you know who Chase-san is, or can navigate around freenode's bureaucracy)

Cbrowne00:49, 13 October 2011
 

What about me?

The reason I don't keep up the robocode IRC is that no one really ever went in there.

Chase-san16:43, 13 October 2011
 

I used to love to hang around in IRC channels. But these days, I don't really have a good time to do it. I can't do it at work, and at home the only time I spend on my computer anymore is when I'm actually working on my robot. The rest of the time, I'm doing family activities, chores, doing home improvement projects, etc. I suppose I could fire it up during the periods when I sneak off to the bedroom to get in some Robocoding time. That would be mostly between 10pm and 1am central time, but not every day.

Skotty21:21, 13 October 2011
 

Sorry, Chase-san, I presumed because the IRC channel hadn't been visited in ages you might be a retiree from robocode.

If we can fire up the channel again, that would be good for people who enjoy it. Since Chase-san clearly does still exist, I'll drop the ##robocode and just idle in #robocode in that case. If anybody wants to join me, they can feel free, if not, that's cool also. I don't lose anything by idling in there (I'm already idling in ##java) so it's no biggy to add another chan. :)

Cbrowne23:27, 13 October 2011
 

I'll try to pop in from time to time.

Skotty02:38, 14 October 2011
 

While we are in the process of transferring to new littlerumble accepted clients, it make sense to revive irc channel for faster communication.

I am hanging on FreeNode.net/#robocode and will be happy to talk to you all.

Beaming (talk)15:24, 4 May 2014

I'm idling on both ##robocode and #robocode, ##robocode does not have an owner and i did not register it.

Farooghkz (talk)16:01, 17 March 2017

Been on a very, very long hiatus from Robocode. Got really pissed off that I lost my excellent robot, Thor, and just abandoned everything.

I am the channel owner of FreeNode.net/#robocode and I'll be there over the next few days while I try (probably in vain) to recreate my fancy targeting algorithm.

Cbrowne (talk)17:48, 12 October 2018
 
 
 

Old RoboWiki is down

The old RoboWiki is offline. Accessing it produces 500 Internal Error.

Is anyone else seeing this problem? Does this happen often? Does anyone need to be contacted?

Never mind.

MultiplyByZer0 (talk)23:08, 16 September 2017
Edited by author.
Last edit: 10:06, 24 August 2017
MultiplyByZer0 (talk)19:23, 23 August 2017

Also, a better CAPTCHA is needed, MathCaptcha is too easy.

I think a question-based CAPTCHA would work. Questions such as:

  • Q: "Name a sample bot." A: One of ["Corners", "Crazy", "Fire", "Interactive", "Interactive_v2", "MyFirstRobot", "MyFirstJuniorRobot", "PaintingRobot", "RamFire", "SittingDuck", "SpinBot", "Target", "TrackFire", "VelociRobot", "Walls"]
  • Q: "Name a robot base class." Q: One of ["Robot", "JuniorRobot", "AdvancedRobot", "TeamRobot"]
  • Q: "What is the default battlefield size (WIDTHxHEIGHT)?" A: "800x600"
  • Q: "What is the default number of rounds?" A: "10"
  • Q: "What is the name of the sample bot in the 'samplesentry' package?" A: "BorderGuard"

etc.

MultiplyByZer0 (talk)20:05, 23 August 2017

I like the question based CAPTCHA. I have a low profile wiki where it is enabled for registration, and questions keeps spamers away...mostly. From time to time there is a renegade human who reveal the answer, and spam bots invade. But than I change the question. Last time I changed it was more than a year ago.

Another good measure would be to put all messages from newly registered users in a pre-moderated pool until they prove themselves.

Overall, I think our fort is holding, we just need a way to summon admins a bit faster.

Beaming (talk)01:33, 25 August 2017
 

On second thought, just IP-ban them all.

MultiplyByZer0 (talk)22:31, 23 August 2017
 

Spamming attack, reconsider account creation

Due to the recent (May 23 - May 31) spam attack, maybe whe should reconsider the process of creating a user account. Alas I have no idea how to change that, some someone (wiki-host ?) should take some action here. Note that 'Main Page' is redirected to 'Robowiki:Main Page', and I don't know how to revert that.

GrubbmGait (talk)13:18, 31 May 2017

Thanks for reverting so much of the spam, GrubbmGait! I've disabled account creation for now and I'll fix the main page redirect. Still not sure what we should do longer term, but I'm sure there are options... I'll try to look into it this week.

Voidious (talk)15:08, 31 May 2017

Another spam attack happened today.

Dsekercioglu (talk)18:21, 23 August 2017

Blocking some accounts, cant do more from a tablet whole on holiday

GrubbmGait (talk)13:50, 24 August 2017
 
 
 

Robocode Online Web Application - what do You think?

Hey ho!

I was wondering: why there is no serious website, where You can upload your bots, create rankings and tournaments and just battle. Rumble is fine, but be serious - it's has a few functionalities and it's NOT user friendly.

There is a question to all of You: do You want to have such web application? Possibility of uploading bots, instant fights, rankings, tournaments etc...

What would You expect from such application?

I am thinking about gathering a team. With that team we could create a nice webapp.

Guys, please think about it. share Your feelings and thoughts.

/skiba

Ilu2112 (talk)14:24, 30 January 2014

I've thought about this lately, particularly after implementing a web UI for my own programming game. I have a couple thoughts:

  • First, the online Robocode community is pretty hardcore about bot programming. We have the RoboRumble in place that facilitates that perfectly. A user-friendly, non-IDE development UI is just not something that would grab these people the way it would grab programming beginners, if you ask me.
  • I love Robocode, but... It's ancient. :-) I think you should build something for a new generation of users, not try to prolong the life of Robocode's current code base. Or even work with Fnl to implement this in Robocode 2.

Such a web app would be great for new people. But for new people, I think there are better alternatives.

Voidious (talk)15:40, 30 January 2014
  • It would be nice to have something to replace the Robocode Central, so it is possible to upload and download robots - and the same robot in various versions etc.
  • It could run new types of tournaments, and divide robots into beginner (Level 1), experienced (Level 10?), veteran (Level 30?) or similar depending on how well they perform. Everybody starts as beginner, and then gain higher level, when they are able to beat more than 50% of the other robots at the same level or something like that.
  • It would be great to have a web page or GUI where beginners can put program a simple robot using stuff like graphical symbols (commands) that could be drag'n'dropped, like e.g. "Turn left", "Move forward", and "Fire". And each command could take a parameter value like 90 for "Turn left" 90 degrees. Then it could write the source code on the fly which could be copy'n'pasted, saved and/or compiled for Robocode.
  • Regarding Robocode 2. I am working on a prototype that is platform independent (protocol based). But it is not ready for a web page yet. Lots of details could change. So it is still on the experimental level.
Fnl (talk)23:07, 30 January 2014
 

Don't get me wrong! I agree with you that the Robocode community skews pretty strongly towards the hardcore. It lacks the infrastructure to attract beginners and nurture/funnel them into the ecosystem. And it's possible we could build something awesome that integrates nicely with what we already have. I just think the ship has sailed on major changes to Robocode that don't include a complete rewrite. I think your efforts would have more impact if you don't chain yourself to Robocode.

Voidious (talk)16:27, 30 January 2014

Wise words, I have to agree with You. Let's wait for other's vote. I am waiting for developer's opinion and general thoughts about Robocode 2, the future of Robocode and possibility of merging Robocode 2 with some kind of online platform. It could breathe new life into this game.

Ilu2112 (talk)16:36, 30 January 2014

FYI a more reliable way to get in touch with the developers is the Google group: https://groups.google.com/forum/#!forum/robocode-developers

Fnl and Pavel stop by here sometimes, but they're not that active.

Voidious (talk)17:02, 30 January 2014
 
 

Btw, have you looked around at some other games with this kind of stuff? I think it's common to find Robocode with its epic hardcore community, RoboRumble, thousands of bots, and 15 years of history and think it's the only programming game worth looking into. (And it might be, depending on what you're after...)

  • RobotGame.net got a lot of attention recently. I didn't dive in but it looks neat and pretty polished. Python and looked like simple game rules with some depth.
  • FightCodeGame is pretty cool. The gameplay seems mostly like a simplistic Robocode clone, but the web site is pretty awesome. The main thing that turned me off (personally) was that they gained launch momentum with a GitHub coding contest and then switched to closed source/for profit shortly after.
  • Nodewar is a pretty simple UI, but I think the gameplay itself is pretty sweet. One of the few games I really feel is pushing the envelope with gameplay. I'd say at least half of programming games (including Robocode) are "2+ tanks on a rectangular battle field with no walls".
  • CodeCombat seems more of a legit "learn to code" style programming game. It's a common strategy for advertising programming games, but for most games, it strikes me as similar to claiming basketball was designed to keep you healthy.
  • PlayBerryBots.com is the web UI for my own game, which is a cross-platform desktop app like Robocode. For now just a simple "write code / run battles", but I may build it into something more robust soon.

Oh yeah and ProgrammingGames.org is cool too. It's run by one of the main guys from the Core War community.

Voidious (talk)18:23, 31 January 2014

Yeah, even my roboflight is just a '2+ spherical bots in a sphere'.

Chase16:08, 2 February 2014

Hey I think RoboFlight qualifies as pretty new and different. ;)

Voidious (talk)18:15, 2 February 2014

I need to work on it, but I was considering switching it over to C/C++ Lua like Berry Bots. I realize that Java is a lot of overhead, but due to Robocode I am most comfortable in the language.

Chase06:31, 3 February 2014

I think Lua is awesome and totally perfect for programming games, but its relative unpopularity is probably worth considering too. I think Python or JavaScript are probably the ideal languages for attracting people to a programming game right now. But I like Lua and it's a choice I'm still happy with. And if Lua suddenly takes off, I'll be in pretty good shape. :-)

Voidious (talk)14:09, 3 February 2014
 
 
 

You might try out Code of Tanks, a 3-D tank battle game, which is brand new as of this writing. You write your AI in a .NET language, C# or whatever. Whenever you want to play you create or join a room, run your AI and pick your tanks, and watch the battle live in 3-D. You can watch the video trailer at the website to see it in action: codeoftanks.com

Cotdev (talk)20:11, 27 June 2015
 
 

Code of Tanks: 3-D PvP Tank Battle Game for Programmers

For those interested in .NET programming, you might like Code of Tanks, an online PvP tank battle game, brand new as of this writing. It does require some fundamental .NET programming knowledge, but other than that it's pretty simple: you create or join a room with other players, get your AI ready and pick your tanks, and watch the battle live from anywhere in 3-D.

It's in Beta and anyone can try it out: codeoftanks.com

No tournaments or contests yet, but live battles can be had any time. As a new product you may not find many competitors online when you are, but as more people discover it there may be rooms running around the clock. Until then you can just get some friends to play at the same time and run matches.

Cotdev (talk)19:41, 27 June 2015

Recent Downtime

Hi all. Sorry for the recent downtime. For some reason the HTTP server had stopped, for no discernible reason that I can tell.

It took me much longer than it should have to get around to fixing it, as the only times I remembered were times I didn't have access to it. Sorry about that.

For the record, if anyone sees issues on the site in the future, I can be poked at http://node01.strangeautomata.com/files/email.png

Rednaxela (talk)13:30, 10 June 2014

Is there a mechanism to setup a mirror read only wiki? This way we can survive the down time and locate Alex's email as well once the main wiki is down.

Beaming (talk)14:35, 11 June 2014
 

Wiki back online

Thanks for bringing the wiki back online!

MN (talk)22:32, 8 January 2014

Running Error - Robot is not stopping, forcing a stop

Edited by 2 users.
Last edit: 16:43, 7 December 2013

When I start the battlefield,my robot and other enemy are frozen. The println messages are not displayed in the robot console. But the command prompt shows the following error. I check that the cause of error is the addition of node in my queue (queue.add(n)). However, this line of code shall be fine i guess. So I would like to ask how to solve this error message? (this part of my program is for path finding using bfs)

Thank you.


          • BATTLE 1, ROUND 1 *****

TURN 1: StudentRobot* (1) hard deadline exceeded - 532809us

Err> Robot StudentRobot* (1) is not stopping. Forcing a stop.

Err> Robot StudentRobot* (2) is not stopping. Forcing a stop.

Average computation time per turn: 511706

Max turn computation time: 532809

	private boolean pathFinding_BFS(Node start, Node end){
		LinkedList<Node> queue = new LinkedList<Node>();
		queue.add(start);
		start.setMarked();
		while (!queue.isEmpty()){
			Node temp = (Node)queue.poll();
			System.out.println("first node:" + temp.getPointInPath().getX() + " y " + temp.getPointInPath().getY());
			if (temp.equals(end)){
				temp.setPrevNodeInPath(temp.getPrevNodeInPath());
				return true;
			}else{
				for (Node n : temp.getAdjacentNode()){	
					System.out.println("in node:" + n.getPointInPath().getX() + " y " + 
n.getPointInPath().getY());
					if (!n.isMarked()){
						n.setMarked();
						n.setPrevNodeInPath(temp);
						System.out.println("test n");
						queue.add(n);  //problem here
					}
				}
			}
		}
		return false;
	}
	

	public  List<Point> getShortestPath(Point start){
		Node src = new Node(start);
		List<Point> path = new ArrayList<Point>();
		for (int i=0;i<endup.size();i++){
			Node destination = new Node(endup.get(i));
			if (pathFinding_BFS(src, destination)){
				while (destination.getPrevNodeInPath() != null){
					destination = destination.getPrevNodeInPath();
					path.add(destination.getPointInPath());
				}
				Collections.reverse(path);
				return path;
			}
		}
		return path;
	}
Lavenderwong (talk)08:03, 7 December 2013

I don't see any clear problems with that code there. The only way I could see it looping forever is if either setMarked and isMarked are not working correctly, or some other code being called is unsetting the marks in the middle of that loop.

It is possible that this search is just plain taking far too long (>533ms on your computer) because of there being too many nodes to search before it finds the desired end point. How many nodes are you running this code with? If this is indeed the case, you should do one or both of the following: 1) Reduce the number of nodes, and/or 2) Switch from a full breadth first search to a more efficient algorithm such as A*

To figure out what the problem is, I would tend to suggest running this under a debugger, and step through what is happening.

EDIT: Oh, and another possible thing that comes to mind, is perhaps your problem has nothing to do with your node search code. Maybe your robot is just never calling any of the methods that signal to Robocode that has finished it's turn.

Rednaxela (talk)17:05, 7 December 2013
 

MediaWiki update

So I updated MediaWiki to 1.19 and the LiquidThreads extension. The MediaWiki update script failed when dropping some index after updating LiquidThreads, but everything seems to be working (and wasn't before running the script), so I'm hoping everything's ok and please just let me know if you see any problems. The update script ran OK for just the MediaWiki upgrade, but some things were still broken due to the LiquidThreads incompatibility. Everything's backed up so I'm not too worried - I think it's mainly LiquidThreads that might be messed up.

The wiki font is also back to default size. I'm leaving it for the moment but let me know what you guys think - I'm not sure if I was the only one that wanted it bigger before anyway.

We need PHP 5.3.6 for MediaWiki 1.20, and for that I think we need to upgrade Ubuntu, so that won't happen until I can coordinate that with David.

Voidious (talk)05:33, 8 May 2013

Shoot, we also lost Twitter on the sidebar. I'll get that stuff fixed up tomorrow. And this new LiquidThreads rendering is kind of weird...

Voidious (talk)05:34, 8 May 2013
 

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:Talk:Main Page/MediaWiki update/reply (2).

 

Using this CSS will make the new liquid threads more tolerable (at least to me).

.lqt-post-wrapper {
	border-style: solid none none solid;
	border-color: silver;
	border-width: 1px !important;
	background: #fff;
}

.thread-collapse-control > a {
	background: none;
	width: 10px;
	height: 10px;
	border: 1px solid silver;
}

Depending on how you apply it, you may need to include a few more !important tags, I tested it in Stylish on Google Chrome.

Chase12:37, 8 May 2013
 

I liked the font size the way it was before.

Also, when you update the sidebar, try putting the Twitter feed below the Toolbox. I think that would be more useful.

Thanks

Sheldor (talk)15:13, 8 May 2013
 

Upgrading Ubuntu should be relatively painless. i've always had good luck with it and Debian. :)

The site looks nice!

Tkiesel (talk)15:54, 8 May 2013
 

Alright, I've finally:

  • Reverted the font to non-tiny.
  • Fixed the RoboRumble Twitter feed [1]
  • Restored the @robowiki Twitter feed on the sidebar (actually it's a new one, I guess they killed the old widget).
  • Moved Twitter feed below toolbox, as I think a couple people suggested.
  • Noted that the new widget can hide @ replies, so I'm not afraid to respond to people as @robowiki on Twitter any more. :-P
Voidious (talk)03:56, 18 October 2013
 

NodeWar, Code & Conquer

A couple more new web based games got on my radar recently.

  • Nodewar - Sleak, web-based, Javascript. Feels lean and mean. I like that the gameplay is not your typical "arena" style battle. Replays are very nice looking and HTML5 (a few at nodewar.com/ladders). This one doesn't seem very active atm, but I really dig it.
  • Code & Conquer - This one looks really polished and education-oriented. Haven't seen the gameplay yet. Getting a fair amount of attention right now.

This new breed of fully web-based programming games really seems to be taking shape. I dig it! I hope we get some good ones and it brings tons of people into programming and programming games... It's got to be 100x easier to get people to try a game when all they need is a web browser.

But I also wonder about the future of desktop app games like Robocode. One thing I love about the Robocode community is that we contribute a lot of code outside of our bots, like RoboResearch, RoboRumble, running web sites and services, etc. It's sort of like console gaming vs computer gaming - computer gaming gives you level editors, mods, the precision of a mouse. We exercise a lot of freedom on the RoboWiki to do whatever we feel like with Robocode.

Of course you could have games that straddle this line. A fully web-based game that also lets you run your own servers for the hardcore players, or a desktop game with some web features (which is kind of where I'm going with BerryBots).

Voidious (talk)16:06, 5 September 2013

Spamming Without Links

When a recently created account starts posting advertisements, should it be blocked, even if its advertisements do not contain any external links? I'm asking this because I just blocked "Twotogether," who created a page which was obviously spam, but did not contain any external links. If we should only block those who spam external links, I will unblock Twotogether.

Sheldor (talk)14:26, 26 July 2013

IMO? Spam is spam, kill it with fire.

Skilgannon (talk)15:49, 26 July 2013

yep. lots of fire.

AW (talk)17:48, 26 July 2013

As far as I'm concerned, the only difference when the spam doesn't have links, is that it's not automatically blocked as easily. So yeah, all of the fire.

Rednaxela (talk)19:43, 26 July 2013
 
 
 

Update problems

I've got the following major issues:

  • In LiquidThreads, when I type a reply the spinning loading icon never goes away, and the shortcuts at the top never load.
  • When I try to edit the RoboRumble/Participants page it tells me that the server did not receive some of the message and that I should confirm the edits, but it shows me an empty box instead of all the participants data.

These behaviours are seen on both Firefox 21 b6 and Chrome 26.0. I've cleared cache and done a hard reload in both.

Is anybody seeing these?

Skilgannon (talk)20:42, 9 May 2013

Yeah, LiquidThreads spinners all over the place for me. I haven't tried editing the participants list but that seems pretty high priority. Hrm..

Voidious (talk)20:43, 9 May 2013
 

I'm definitely noticing the first problem. I haven't yet tried editing the participants page.

Sheldor (talk)21:28, 9 May 2013
 

We seem to be getting a lot of user registrations, did the update break some of the blockers?

Chase00:17, 10 May 2013

Yeah, Rednaxela had some custom things in that got broken. He's working on it now.

Skilgannon (talk)02:24, 10 May 2013
 

Yeah, the update removed the Math extension which used to be part of the core of MediaWiki, but got moved into an extension. This broke some pages, and also broke the extra math question I added in added to the reCaptcha check. (Besides the extra math question, my modifications also included a "same IP address as received the captcha must solve it" check, which based on server logs was very effective)

Due to the error that was happening on the new user creation page, Voidious reverted back to the traditional reCaptcha extension temporarily, which let that flood of bots register.

Gladly, the custom extension I added which disallows accounts less than 24 hours old inserting external links was still intact after the upgrade, and appears to have foiled those spambots.

Also, I've now reinstalled the Math extension, both fixing some wiki pages and making my modified captcha checker work again, so all should be well now :)

Rednaxela (talk)02:45, 10 May 2013

Good to know. On that point though, I still think KittenAuth/Asirra would be a good auth system (and has nothing to do with me liking kittens, honest).

Chase03:48, 10 May 2013

Asirra was mentioned in some emails that went around. I don't think Asirra is fundamentally any better than reCaptcha for the main problem. I suspect there's a high probability that rather than pure computer-based bots, the reCaptcha system was being broken by a Mechanical Turk style system that farmed the captcha breaking task out to humans. From what I understand that is common these days. Asirra is equally vulnerable to that technique. Assuming that is the case, the reason my modifications help, would be that rather than preventing the captcha-breaking itself, they make it incompatible with some automation systems used to farm out captcha breaking. I have nothing against using Asirra if people want to switch it to that instead of reCaptcha, but at least in theory I doubt Asirra vs reCaptcha makes much of a difference.

Rednaxela (talk)04:35, 10 May 2013

Well fair, I do know Asirra is much more difficult to break then reCaptcha for computers. It might also be easier for humans to do as well ( a few clicks instead of the need to type). It could replace the two captcha systems with one (math+reCaptcha with Asirra).

But I am not going to push the topic if no one else thinks it is a good idea. I do not know the compatibility or reliability of the system, and there is always the ever present "don't fix what isn't broken" mantra as well.

Chase13:14, 10 May 2013
 
 
 
 

A quick update regarding the RoboRumble/Participants issue: I've confirmed it's definitely related to the total size of the page. I see the error if I click preview there normally, but I don't see the error if I delete half the content of the text box before hitting preview. I don't know why it only started happening after the update though, or what a good fix would be.

Rednaxela (talk)03:25, 10 May 2013

Participants issue is fixed, but the spinners persist!

Skilgannon (talk)09:51, 10 May 2013
 

Testing to see if the infinite spinning icon is fixed...

Rednaxela (talk)01:53, 11 May 2013

Yep! It's now fixed!

When the infinite spinning icon thing was happening, I checked in the browser for javascript errors. Sure enough, there was an "ext.WikiEditor" error. I looked around, and tried installing the WikiEditor extension, and it fixed the infinite spinning circle issue. It seems that the version of LiquidThreads we got in the update depends on the WikiEditor extension.

Rednaxela (talk)01:55, 11 May 2013
 
 

Wikipedia article

Any interest in helping me rewrite the Wikipedia entry for Robocode sometime? We can do it there (like on a user page), but just wanted to bring it up here first. It's all pretty stale, and I think could use a major overhaul besides the first 2-3 paragraphs. I also think the final product should be about half the size of what's there now.

Voidious17:49, 16 April 2013

I was under the impression that the point of Wikipedia was to have a stale and objective article for every subject.

The problem with the Robocode page is that it is not objective. It reads like an advertisement, or a fan's website. It also goes into unnecessary detail in some places, while leaving out important information in other places.

Sheldor18:19, 16 April 2013

Yeah, "stale" like "hasn't been updated in a long time" seems appropriate. Inaccurate information should be fixed or removed though.

Voidious18:55, 16 April 2013
 

I don't think anyone (on Wikipedia) cares about which robot is best at what and such, and keeping those up to date would be a pain anyway, last update was claimed to be in 2009. So I think the RR@H champions should be removed.

The influencial robots section needs to be adjusted some. For example to me Phoenix's entry reads like an advertisement, and is YersiniaPestis' passing Shadow for a bit really worth mentioning? Plus a few are missing like Raiko/RaikoMX (First Open Source Surfer), Chalk (Open Source kNN), BulletCatcher (Bullet Shielding), MoxieBot? (Bullet Shadows? Was it the first?).

But I wouldn't mind seeing a list of past competitions on there, might give the game more clout.

Chase10:13, 17 April 2013
 

Yep, I agree on all those points.

Taking a few of the bots on the Open Source page might be a good start for replacing the "influential bots" list. Maybe list more current/past competitions, but with less description of each than what's there now. For movement/targeting techniques, maybe instead of mentioning all those Robocode-specific terms, we could just mention some of the machine learning techniques that are widely used, like KNN, kernel density, multi-variate histograms (VCS), pattern matching, and neural networks.

I'm torn as to whether the wiki deserves its own special mention besides the link below. It is a pretty strong part of the online Robocode community and a resource for anyone doing Robocode, but I'm not sure that means it deserves more than just a link near the top of "See also" or "External links".

Voidious17:06, 17 April 2013

Agreed on all, unfortunately I am super busy again and don't have time to help with this.

I think there should be some sort of heading called "Community" or something like that, where you list the RoboWiki and the SourceForge forums as well as the dev groups.

Skilgannon20:04, 17 April 2013
 

I agree, and I like your thinking. Could almost copy Open Source wholesale for that section, after converting some of the jargon.

I think a mention in the actual article to the Robowiki would be justified. It is where most of the developments and long running competitions originate (like RR@H). But it might just be at most a sentence like "A great deal of the innovation occurs around Robowiki[External Link], the games premier wiki."

Perhaps a short mention of some of the licensing that occurs in Robocode. Otherwise there isn't really much to say beyond what is already covered.

Chase03:25, 18 April 2013
 
 
 

Import Robot to Robocode

Hello! We are creating our first robots, and we export the robots from eclipse, in .jar doing in the project, right click>Export>Java>JAR File.

In the next box, we export to JAR, but when we try to import the robot to robocode, it complete succesful, but it don't appear in the list of robots.

Thanks!

Cristian09:01, 2 April 2013

Welcome to the RoboWiki!

You don't need to export every time you want to run your robot. This tutorial shows you how to tell Robocode to get your robots straight from Eclipse.

It's also interesting that you say you imported the robot into Robocode, but it didn't appear on the list of robots. I assume that you used the "Import downloaded robot" feature of Robocode. I might've had the same problem with it. Try downloading this robot and then see if using the Robocode import feature works. If it doesn't, just copy the .jar file into the robot directory, and Robocode should recognize it.

This thread isn't really appropriate for the main page discussion; if you don't mind, I'll move it to User talk:Cristiancompany.

Welcome again and good luck!

Sheldor13:02, 2 April 2013
 

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
 

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) :)

Miked080100:27, 20 March 2013

What about reversing or not reversing directions when the enemy fires? It seems like DB's pattern is a lot more complex than reversing every other shot.

Sheldor03:21, 20 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
 

I didn't compile this so there may be a few minor errors. Thanks again.

/*
Epeeist v2.0.0 by Sheldor.  03/19/2013
A NanoBot with multi-mode movement and a Pattern Matching gun.
Codesize: ??? Bytes without any colors.

Epee (pronounced aay-pay) is one of the three forms of modern sport fencing,
along with Foil and Sabre.  http://en.wikipedia.org/wiki/Epee

Credits: 
Pattern Matching code from simonton.WeekendObsession_S and mld.Moebius,
and a general thanks to all open source bot authors and contributors to the RoboWiki.

Epeeist is open source and released under the terms of the RoboWiki Public Code License (RWPCL) - Version 1.1
see license here: http://robowiki.net/wiki/RWPCL
*/

package sheldor.nano;

import robocode.*;
import robocode.util.Utils;

public class Epeeist extends AdvancedRobot
{
	//Global variables.
	static double direction;
	static double enemyEnergy;
	
	static int deathCount;	
	
	//En garde!
	public void run()
	{
		//setAdjustGunForRobotTurn(true);
		
		//Start spinning radar and initialize direction to infinity.
		setTurnRadarRightRadians(direction = Double.POSITIVE_INFINITY);
	}

	public void onScannedRobot(ScannedRobotEvent e)
	{
		//Local variables.
		int matchLength = 30;
		double absoluteBearing;
		double distance;
		int i;
		int index;
		
		//Oscillating/Random movement.
		if (enemyEnergy > (enemyEnergy = e.getEnergy()))
		//if((enemyEnergy - (enemyEnergy = e.getEnergy())) > (Math.round(Math.random() * chancesOfReversing.charAt(deathCount)) * 111))
		//if( (char) ((enemyEnergy - 1.09  - (enemyEnergy = e.getEnergy()))) < 2)
		{
			direction *= (chancesOfReversing.charAt(deathCount) - Math.random());
			//direction *= (chancesOfReversing.charAt(deathCount) - (Math.random() * 2));
		}		
		setAhead(direction);
		
		//Stay perpendicular to the enemy.
		setTurnRightRadians(Math.cos(absoluteBearing = e.getBearingRadians()) + ((160 - (distance = e.getDistance())) * (getVelocity() / 2500)));
		
		//Pattern Matching.
		/*enemyHistory = String.valueOf((char) (e.getVelocity() * (Math.sin(e.getHeadingRadians() - (absoluteBearing += getHeadingRadians()))))).concat(enemyHistory);

    	// search for a match
    	while((matchPosition = enemyHistory.indexOf(enemyHistory.substring(0, integer--), 14)) < 0);

    	// calculate aim offset
    	integer = 14;
    	do { absoluteBearing += ((short) enemyHistory.charAt(--matchPosition)) /  160; } while (--integer > 0);*/
		
		//Pattern Matching
		enemyHistory = String.valueOf((char)(e.getVelocity() * Math.sin(e.getHeadingRadians() - (absoluteBearing += getHeadingRadians())))).concat(enemyHistory);
		while((index = enemyHistory.indexOf(enemyHistory.substring(0, matchLength--), (i = (int)(distance / 12.5)))) < 0);
		do
		{
			absoluteBearing += (short)enemyHistory.charAt(index--) / distance;
		}while(--i > 0);
		
		//Aim at the predicted target.
		setTurnGunRightRadians(Utils.normalRelativeAngle(absoluteBearing - getGunHeadingRadians()));
		
		//Fire!
		setFire(2.5);
		
		//Infinite radar lock.
		setTurnRadarLeftRadians(getRadarTurnRemainingRadians());
	}
	
	public void onDeath(DeathEvent e)
	{
		deathCount++;
	}

	public void onHitWall(HitWallEvent e)
	{
		//Reverse direction when the bot hits a wall.
		direction = -direction;
	}
	
	static String chancesOfReversing = ""
		+ (char) 1 + (char) 0 + (char) 1 + (char) 0
		+ (char) 1 + (char) 0 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5
		+ (char) .5 + (char) .5 + (char) .5 + (char) .5;

	//Preloaded log of enemy movements for pattern matcher.
	static String enemyHistory = ""
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 2
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char)-1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char) 1 + (char) 1 + (char) 1
		+ (char) 1 + (char)-2 + (char)-4 + (char)-6
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-8 + (char)-8 + (char)-8 + (char)-8
		+ (char)-7 + (char)-6 + (char)-5 + (char)-4
		+ (char)-3 + (char)-2 + (char)-1 + (char)1
		+ (char) 2 + (char) 4 + (char) 6 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 8 + (char) 8 + (char) 8 + (char) 8
		+ (char) 7 + (char) 6 + (char) 5 + (char) 4
		+ (char) 3 + (char) 2 + (char) 1 + (char) 1;
}
Sheldor16:59, 19 March 2013
 

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 :)

Miked080100:24, 20 March 2013

Thanks.

Skilgannon has already addressed the issue on another talk page, but I would appreciate any help I can get.

Sheldor03:00, 20 March 2013
 

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...

Miked080100:30, 20 March 2013
 
 
 

Was kinda bummed to see that FightCodeGame is on its way to becoming for-profit and maybe not-open source: [1] 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.

Voidious01:18, 20 March 2013
 

Is it ethical to edit other people's bot/user pages?

The majority of non-archive pages on this wiki are either bot pages or user pages. Many of these pages contain outdated information, or could be improved.

So, is it ethical to edit these pages, even though they were personally made by another user for their own work?

Sheldor23:14, 7 March 2013

For the most part, I think it's fine to edit almost anything on the wiki, particularly if your goal is to improve the wiki and make it more useful to more people. I've migrated/edited lots of such pages. Cigaret and Ascendant are both pages I migrated where I tried to preserve the author's text while also updating inaccurate info and reformatting for the new wiki.

There are a few things I'd consider rude though:

  • Major changes to something like User:Chase-san/NewTech.
  • On Diamond, editing the ranks in "How competitive" seems fine, but modifying "What's special about it" would seem rude.
  • Any major changes to a bot/user page for a user that's active - I'd just say you should discuss it on the talk page first.
Voidious23:37, 7 March 2013
 

Yeah, my thoughts are if the person is active then ask first, if the person isn't active feel free to add, but think very carefully before modifying.

The only good reasons I can think to modify are:

  • Grammar/spelling (which is fine)
  • Adding links and categories which may not have existed when the author was making the page (also fine)
  • Updating rumble positioning and scores (try to stick a date next to the data that's there, then add a new date with current data).
  • Possibly adding a brief blurb if the bot was particularly influential in Robocode development.
Skilgannon05:51, 8 March 2013
 

Take for instance my recent edit of AWs userpage. I contemplated it for a moment. But I decided he probably made a mistake, and so I felt it was safe to correct it.

But I wouldn't go through and change the structure of his page, or start adding on a new section. It's his page. So in the end I suppose my opinion is to have a light touch.

I don't completely agree with Skilgannon. Large corrections, yes, definitely. But for minor corrections, you shouldn't have to go through the possibly long process of asking. Such as if you can fix their misspelling of "froward" into "forward".

Chase08:44, 8 March 2013
 

Is it ethical to edit other people's posts for minor typos/grammatical errors/inaccuracies?

Sheldor17:04, 19 March 2013
 

I don't think it's unethical, but it might be unnecessary / annoying. :-) I wouldn't do it for discussion threads, but I might on a content page.

Voidious17:05, 19 March 2013
 

While loop in the 'run' method

I'm unclear as to when the while loop in the run method starts, so I added a debug command there:

while(true) {
	setDebugProperty("startingWhile", String.format("heading: %.1f° at time %d.", getHeading(),  getTime()));
	ahead(200);
	// ...
}

But to my surprise, this doesn't get displayed until after the ahead and all the following commands are executed, which I would assume should be the beginning of the second iteration. Is there something that prevents these debug properties from being displayed immediately?

To Wombi: Das ist der Fluch der guten Tat. Ich hoffe, Du bereust nicht, meine Frage beantwortet zu haben.

Astacus01:40, 5 November 2012

I never used setDebugProperty. Always used plain System.out.println.

Probably, setDebugProperty value is only used inside "execute" events, like all other setter methods.

MN14:22, 5 November 2012
 

Hi mate ...

I gave a little example on your user discussion page Discuss - it's a little more appropriate than the main page. Feel free to ask about whatever bother you - no matter what.

Wompi

Wompi14:31, 5 November 2012
 
First page
First page
Previous page
Previous page
Last page
Last page