View source for Talk:Main Page

From Robowiki
Revision as of 17:21, 28 December 2010 by Starhammy (talk | contribs) (→‎Question Forum: new section)

Talk:Main Page
Jump to navigation Jump to search

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)

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?

Contents

Thread titleRepliesLast modified
Help! Since I installed Robocode, my original Java isn't working anymore201:15, 5 November 2012
funny "Robocode has peaked" quote1816:42, 27 September 2012
3D Model213:33, 19 September 2012
Modifying the Robocode Game.503:00, 29 August 2012
state of the wiki1422:17, 18 June 2012
New to Robocode412:21, 9 June 2012
Robocode JGAP User Manual117:47, 11 May 2012
Robot vs Advanced robot617:44, 11 May 2012
Slow RoboWiki205:46, 9 May 2012
EverythingRobocode link214:42, 12 March 2012
Looking for Mentors611:18, 11 January 2012
The downtime this weekend.003:29, 6 December 2011
Slowness317:30, 4 December 2011
RoboRumble result207:26, 15 November 2011
Turbo Boost and Robocode202:23, 13 November 2011
RoboCode Mentors716:13, 11 October 2011
Virtual bullet doesn't line up with real bullets1407:33, 11 October 2011
Saving data between rounds220:56, 6 October 2011
while true loop307:12, 29 September 2011
LiquidThreads1013:56, 6 September 2011
First page
First page
Last page
Last page

Help! Since I installed Robocode, my original Java isn't working anymore

Hello, please forgive me if this isn't the right place to post this. I'm a noob to Java; two months ago I installed the JDK from Oracle and played around with the examples from the book "Java - A Beginner's Guide". It worked nicely until I installed Robocode. Now, Robocode is working fine, but regardless which of the example programs I try to run, I get the same error:

cd the_directory_that_contains_Example.class 
java Example.class 
Error: Could not find or load main class Example.class

I tried recompiling Example.class from Example.java, but that didn't help. I googled for this error; I found a nice reply at stackoverflow.com/questions/3005433/java-problem-could-not-find-main-class-helloworld, so I tried to explicitly point it to the class directory:

java -classpath . Example.class

But this didn't help either. BTW, I had added the follwing two environment variables for Robocode, but from what I read, they shouldn't matter:

JAVA_HOME="C:\Program Files\Java\jdk1.7.0_07"
Path=C:\Program Files\Java\jdk1.7.0_07\bin;C:\WINDOWS\system32;...

Please help me with this. Thanks!

Astacus20:23, 4 November 2012

Hi mate ... Not sure but i guess it should be:

java -cp . Example

not Example.class. Let me know if this worked out for you

Wompi00:51, 5 November 2012
 

That's it! Thanks a lot!

Astacus01:15, 5 November 2012
 

funny "Robocode has peaked" quote

Was just reading oldwiki:RobocodeNG/Archive and came across this choice quote from Albert.

Robocode as it is has reached its maximum. It was more than a year ago that the las truly new idea came (ie. WaveSurfing) and now its all tweaking and optimizing... really boring.

Not sure the date, I think 2005ish. =) And here we are, 7-8 years later, still reaching new heights with our bots. No more paradigm shifting breakthroughs, true, but tons of refinements, many small to medium improvements, and a few pretty big ones along the way. To me, it seems like Wave Surfing was more the beginning of something than an end to Robocode innovation. I think we've taken a more precise and mathemetically sound approach to all aspects of our bots since then.

Voidious16:36, 25 September 2012

Since then we've had:

  1. Precise Intersection
  2. Precise min/max GFs
  3. Bullet Shadows
  4. Kd-trees (and with them, fast log-based targeting)
  5. Super-survivalist bullet powers
  6. Gunheat waves
  7. Genetic tuning of variables
  8. Shoot-everybody melee gun
  9. Melee surfing

A lot of these ideas were dependant on wave surfing to begin with, I agree a little with Albert's quote, but it was a bit like saying that now that the transistor (or vacuum tube) was developed, suddenly hardware design was over. I would say no, it has only just begun =) Once we had wave surfing, the same ideas and stats which we used for gun we could adapt for movement, although the lower quantities of data posed a whole new set of problems. I would argue that before wave surfing, the tweaking of movement profiles was much more boring than what we are doing now (although definitely had a lower barrier to entry).

Skilgannon18:05, 25 September 2012

K-nearest neighbours/kd-trees and genetic tuning in particular are bleeding edge AI techniques that come from outside the Robocode world.

MN20:46, 25 September 2012

New in terms of statistics, I guess. I'm referencing papers for my MSc from the early '90s which were using kD-Trees to speed up KNN search.

Skilgannon21:02, 25 September 2012
 
 

Yeah, very well put. At this point, "Wave Surfing" feels to me like a very broad term that would be applied to any intelligent movement system, while there are still so many differentiating details beyond that. I mean, looking at any popular game or sport, most are long past the stages where earth shattering insights can be discovered about game play, but that doesn't mean they are immediately uninteresting. Michael Jordan didn't really do anything new, besides just doing everything better than everyone ever. And he's a pretty exciting chapter in basketball history, if you ask me. =)

Sort of on topic, as I've been working on a new game recently and designing rules, I've been thinking a lot about Robocode's rule set and how much of the game play depth is by luck or by design. It's pretty insane and impressive that the game has held up so well for so long. I try to give credit where it's due and believe it's by design. But then I think about how the scoring had to be changed after release because Mat didn't realize that a non-shooting bot might have the best survival strategy. And how simple the sample bots are, or even the earliest public bots - it's like nobody had any idea where things were going. But maybe if you have some good grasp of game play mechanics at a fundamental level, you don't have to be able to see where things are going to know that you have something with balance and depth. Or maybe Robocode isn't really all that deep compared to what could be, but it's the best we have in a really cool genre and succeeds for lots of other reasons too.

Voidious20:20, 25 September 2012

Robocode is NP-complete as most games with depth. Other games might include chess, go and poker.

But Robocode is more than simply a complex game. Having tanks and bullets as theme makes it a lot more fun. There is an intuitive feel about how a tank should behave. Moving and aiming efficiently is simply not enough, robocoders like to make theirs bots move smoothly or turn their guns without shaking.

The engine being open to everyone, with anyone being able to develop a bot (not necessarily competitive) and also being able to upload them in an open internet environment removes most barriers to entry. And being an AI competition ensures there is always someone to compete against. A great deal of Robocode longevity can be credited to RoboRumble.

MN21:08, 25 September 2012
 

I think the coolest thing about Robocode is the fact that it has incomplete information, but some information. As in, we don't know what they will be doing, but we can see what they are doing now, and we don't know where they shot, but we can tell that they shot. I'm not sure if this was accidental or not, but it allowed for an extremely complex set of strategies to emerge, and I think it is something which you should attempt to incorporate into BerryBots if you can =)

But yes, I totally agree with MN here, without the rumble and the competition it provides Robocode wouldn't have been nearly as interesting =)

Skilgannon21:25, 25 September 2012

FWIW, I have absolutely been trying to keep some good dynamics with incomplete information in BerryBots. But I haven't spent enough time writing bots yet to get a good feel for what I have so far.

I think what I'll end up with in BerryBots is significantly more information than you get from Robocode on an open battle field, but you also don't see anything beyond walls (besides death events), which is pretty major. I also think that between the visibility stuff and how I'm planning to model the coding of teams, team play could be a lot more fun and popular than it is in Robocode.

Voidious21:48, 25 September 2012

Out of curiousity, with regards to teams... how large teams are you thinking of? Some of the videos you've showed with a bunch of bots bouncing around make me think it would be kind of neat to do large swarms if it can be done with acceptable performance :)

Rednaxela22:03, 25 September 2012

Well, I'm certainly leaving the door open for huge teams (say 20, 50, 100 bots?), which I also think would be awesome. Running more than a few complex bots at once is probably not going to be a great experience on the Raspberry Pi, so running huge numbers of bots isn't a major focus just yet. But it should be fine on modern computers.

The big difference in how I want to handle teams is it will just be one program controlling multiple bots, instead of independent programs with only cumbersome messaging between them. You'll have a global view from the visibility of all your bots and be able to control them individually without messing with communication protocols or anything. This should also offer performance gains - the engine has a lot less line of sight calculations to deal with, running 2 Lua states with 50 bots each seems a lot nicer than running 100 separate Lua states, and the bot author can eliminate duplicate processing that would probably exist in each bot if they were running separately.

Voidious22:36, 25 September 2012
 

Imperfect information (invisible bullets) is what makes learning strategies dominant.

If radars could see bullets, Robocode would easily degrade into a ramming game. Imperfect information was probably intentional.

MN22:16, 25 September 2012

I agree that the game would be much less interesting with visible enemy bullets. However, I don't think that the game would devolve into ramming, or at least, not only ramming at the higher levels. It might make an interesting Robocode sub-species.

Actually, make the bullets visible, crank the gun cooling rate up, and get rid of the turret so that a bot can spit a bullet out in any direction it wants.

With visible bullets, the focus would become (in addition to ramming) the construction of configurations of bullets in air that are impossible to dodge. Pinning the enemy into a corner so that they have limited dodging options would be paramount.

The counter-resonse would be to shoot down the incoming wall of enemy bullets, though this means that one is spending time on defense rather than offense. The refinement of that would be finding the pockets of space-time that bullets could serve both a defensive and offensive function! This would probably represent an investment of processor cycles way beyond what has our bots skipping turns these days.

It'd still be interesting, but probably not as interesting. That information asymmetry really makes things fun!

Tkiesel17:02, 26 September 2012
 
 
 

Yeah, I was thinking that the incomplete information aspect has a lot to do with the depth of Robocode as well, but it's certainly also true that the rumble has a lot to do with it's longevity, allowing it to survive quieter periods when some authors are inactive.

The comparison to other NP-complate games like chess, as well as the incomplete information aspect being brought up makes me wonder how chess strategies would differ if the game rules were modified for incomplete information (i.e. you can only see spaces that your pieces either occupy, can move to, or can attack)

Rednaxela22:10, 25 September 2012

Doing a quick search... seems such chess variations do exist: wikipedia:Dark chess and wikipedia:Kriegspiel (chess).

Rednaxela22:14, 25 September 2012
 

Oops, NP-complete means the perfect move can´t be easily calculated. NP stands for Non-Polynomial runtime complexity.

But yes, imperfect information is a key feature in Robocode.

Perfect information and imperfect information usually leads to 2 completely different paths. The first leading to backward induction style analysis and the second leading to forward induction.

MN22:25, 25 September 2012
 

Man, "Dark Chess" is a really cool sounding game name. =) And appropriate too.

Voidious22:39, 25 September 2012
 
 
 

Just decided to put this together, it's a 3D model of a Robocode Robot, I am pretty sure such thing existed in the past, but here it is anyway.

http://file.csdgn.org/robocode/robot3d.png

http://file.csdgn.org/robocode/robot3d.dae

Chase-san13:15, 19 September 2012

I haven't done the UV mapping or rigid bone rigging yet, but at least the latter is pretty straight forward.

Chase-san13:16, 19 September 2012
 

Looks great. The radar is a little bit off - or maybe its just a bad angle. But it looks very very nice so far. Hopefully we can get more of this :)

Wompi13:33, 19 September 2012
 

Modifying the Robocode Game.

I'm trying to modify the robocode game for a University assignment and I'm currently stuck so if anyone could help me that would be greatly appreciated. To modify the game I decided to create a new robot type that freezes other robots for a certain amount of turns when it runs into them. I have created a new interface for the freeze robot and altered some of the other code. When the game starts up it goes through all the robots that the user can choose from and creates a RobotPeer for them. And for each RobotPeer they all have a RobotType. If I debug the game here I can check the FreezeRobot that I made that implements the interface and it shows that it has both type FreezeRobot and AdvancedRobot. Which is what I want because if it doesn't implement AdvancedRobot then it can't use any of AdvancedRobot methods. So up till here everything is fine.

Though when I select the FreezeRobot and start a game with it then debug to check the RobotPeer, it is now only an AdvancedRobot. Can someone explain why this is?

In case you are wondering, what I am trying to do is to make edit the RobotPeer code in the checkForRobotCollision method. After it creates a new HitRobotEvent and sends that to the robot, I want to check if the otherRobot is a FreezeRobot and in this case it will change some variable that makes the robot frozen. I haven't worked that part out yet but I need to be able to see if the otherRobot is a FreezeRobot first so hence this post.

If anyone has any advice/tips/help it would be greatly appreciated. Thanks

WhatsUp06:25, 28 August 2012

Hi mate. Not sure if someone here can help you with this. Maybe you should ask your question (or just link it to this post) at the help section of SourceForge Forums. I guess Flamming can say something that might help you.

I hope you keep us informed how it is working out :)

Take Care

Wompi09:35, 28 August 2012
 

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/Modifying the Robocode Game./reply (2).

 

Perhaps it is only declared as AdvancedRobot in RobotPeer, but the instance is a FreezeRobot (and, more specifically, your robot class)? If you were seeing the instantiated type, it would show as your robot class. No matter the declared type, in Java you can do "instanceof" to check whether the actual instantiated object is a certain class (like FreezeRobot, or DrussGT), so maybe give that a shot and see if it works.

But yeah, as these guys said, the robocode-developers group and project forums are better places to get input from people who actually work on Robocode. They don't compulsively check the wiki as often as us Robocode addicted bot authors. ;)

Voidious15:53, 28 August 2012
 

Ok thanks I'll try the developers group.

Also I tried 'instanceof' to check the type but it makes a compile error because RobotPeer cannot be compared to FreezeRobot.

WhatsUp01:46, 29 August 2012
 

Sorry - I meant where ever you're debugging and seeing an AdvancedRobot when you want to see a FreezeRobot, try instanceof on that variable. It's probably true for "instanceof FreezeRobot", which is one way you could test the type of a robot - though probably not the fastest way, so you might want to figure something else in final implementation.

Voidious03:00, 29 August 2012
 

state of the wiki

Hey guys, I'd like some input on this. Sometimes it bugs me that the wiki is so disorganized, so much content out of date or needing refactoring, so much unmigrated content on the old wiki. Other times, it feels very organic and like it servers its function perfectly. I'm not sure if spending tons of time cleaning up and migrating old content is really worth the time, but if it is, I'd gladly pitch in on that.

What do you guys think? What would make the wiki better / more usable / more useful / more fun to browse for you?

Personally, I find myself browsing talk pages a lot - it would be nice to have some saner way to browser old / interesting conversations across the wiki. I'd also like to get lots of old bot pages migrated - maybe a semi-automated way of doing that would help.

Voidious17:01, 14 June 2012

I´m quite confortable with the wiki the way it is. The only thing that bothers me a bit is having to search for a keyword twice, once in this wiki and again in the old one. Although Google can be a workaround.

MN18:50, 14 June 2012
 

I agree that there are some places that need cleanup and such. For my own part, I just need to be bold and go ahead and touch up things when I see them, and not be so afraid to add things. I personally feel far too outclassed and overshadowed by the giants of Robocode to feel myself knowledgeable enough to speak on lots of things, despite my rather thorough mathematical training at university. That might be fixed somewhat when I can get my bot a bit closer to the top of the rumble. *chuckles*

One things that's interesting to think about is the "ownership" of bot pages. There are a lot of bot pages that feature time-specific information (mostly about the bot's current rating) that's quite old indeed. These are bot pages whose authors seem to have left the community, at least for now. The status of what's considered polite to do there is a conversation worth having, I think.

As far as things the wiki could add.. I've noticed lately that there's a Robocoding-term/bot-component that gets mentioned a lot in talk pages and bot version histories and so on, but that doesn't have a wiki page explaining it whatsoever. I've been fiddling with adding this aspect to my bot, and recently decided to scrap everything I've done with it and start it over as a proper Object so it doesn't make a mess of my already messy movement Object. Can anyone guess what it is?

Tkiesel01:29, 15 June 2012

Flattener?

Reminds me... When I started in late 2005, the whole top 10 was Wave Surfing, but there was basically no centralized info on what all is involved or any of the gory details. Sometimes it takes a fresh pair of eyes to notice these gaping holes in the wiki's coverage of topics. =)

Voidious01:43, 15 June 2012

Bingo, flattener.

For migrating things over from the oldwiki, a talk page to help coordinate that project might be useful.. maybe have folks vote on whether or not certain articles should get moved over?

I'll try to be more proactive in helping to tidy up and extend the wiki. The information and conversation here is a big part of why I love Robocode! :)

Tkiesel02:45, 15 June 2012

There, started a little stub for Flattener. That's a start anyway :)

Rednaxela06:38, 15 June 2012
 

Is there a way merge two pages? Or better what is the best way to merge two pages with all the history and discussion stuff? :)

Wompi16:59, 17 June 2012

Hmm... I don't think there is a way to merge pages that preserves history for both. I suspect the best option would be... move the page with the most history/content to the new name (if it's not already the correct name), and add the content and discussion-history from the other page.

One thing that could maybe be done is have the "edit summary" include a link to the history of the other page. That way a link to the other appropriate history is there when people are viewing the page history.

Rednaxela17:24, 17 June 2012
 
 
 

I feel like some parts of the wiki could use a little cleanup to expanding on yeah, though I feel that for the most part it works as it should.

Hmm.. MN's comment about search makes me think that if I find some time, I may look into making a little mediawiki plugin to make the search results also show things for the old wiki.

Rednaxela06:23, 15 June 2012

Yeah, I use Google with site:robowiki.net quite a lot myself. That would be pretty cool if you could do that. If not, maybe a custom Google search box could work.

Voidious05:32, 16 June 2012
 

I would like to see something on the main page that shows that the community is active. Maybe some parts of the recent changes, current discussions, lately visited pages or last updated robots. Because when i started with robocode and came to the robowiki (trough the robocode page) it looked to me very abandoned because i was not familiar with the "recent pages" or "talk pages". I had a lot of questions and had no place where i could ask. I think i hit the first talk page by accident 3 month later and it took me even longer to find the "recent pages" (i know its a shame because it is linked on the main page). But i guess if you are not used to how wiki works behind you didn't notice it is there.

Some informations are hidden quite well if you don't know what you are looking for. Lets say the code size related pages. The informations about code size are spread over 3-5 pages i guess and you really have to know what you are searching for.

After i got used to the wiki i found out that most of the interesting informations are on the talk pages. Maybe it is possible to integrate the discussion threads, if they relate to the content, as links in the wiki page as well (probably -1 for bad style but it would save the time to edit the page after each new discussion).

For editing/making pages i would second Tkiesel and feel outclassed and overshadowed by the robocode veterans, plus i don't think my spelling is appropriate for that. I'm also very afraid of moving/summarize pages or insert relevant links because i can not estimate the damage it would bring.

Lately i was in the moot to make a bot pages for the probably most influencing bots to the robocode community - the sample bots :). Just because i think they deserve it and probably most of the robocoders have struggled against these little buggers. I don't know but i guess it would be nice if the new robocoder can start from these bot pages to discover the wiki basics. For example links to linear targeting on Walls or circular targeting an SpinBot, radar lock on SittingDuck or orbiting movement to show how to circle around SittingDuck and so on. My guess is, it would be some sort of entertaining tutorial, and also leads to the feeling what you need to make a robot. I don't know , maybe i'm wrong on that.

All in all i can say, now that i'm a little more used to the wiki i'm very happy with it and like the way how it bonds the community. I'm keen to help with whatever you need.

Take Care

Wompi11:12, 15 June 2012
 

If you want to make new pages, or edit anything, please just do it. If you want to change the main page to show more prominent links to Recent Changes or some sort of howto for the wiki, go ahead. If we don't like it we'll say. After all, it is easier to get forgiveness than to get permission =) Myself, I hardly ever look at the main page, I just bookmark Recent Changes.

When I first came to robowiki (2005/6 or so, I think), I also didn't see the recent changes page for about a week and was impressed that everybody managed to find my page. Of course, that was on the old wiki, but I think a lot of the same problems are still around.

I agree, what the wiki needs is something to get beginners acquainted with the layout (the talk pages, recent changes) and maybe a glossary of commonly used terms and 1 line explanations of them (VCS, wavesurfing, DC/KNN, flattener, HOT etc) with a link to their page. I'm busy over the next few weeks (off to Mexico for Robocup 2012!!), but feel free to do whatever you feel will make the wiki better. The wiki is a community resource, and as part of the community you are strongly encouraged to do whatever you think will help the most! If you want to update old bot pages, or migrate anything over from the old wiki, just go ahead.

Skilgannon11:55, 15 June 2012
 

Hi mates. I'm planing to link the wiki pages related to the Robocode terms to the terminology category. I think it would be a good source to browse the robowiki pages. Also can you get a fast look on everything that is interesting i guess. Would that be ok for you?

Is it possible to automate something with wiki commands? I had in mind to make a table on the main page where every new entrant to the paticipant pages is linked. So you can see the latest bots who are updated added and whatnot. Not sure where i should start to bring this to life.

It would be great if some of the native speakers could correct my spelling or rewrite some stuff that sounds weird or not appropriate for the official pages. For me it would be a great opportunity to see where i'm wrong and i would not be offended by that at all.

Anyway Take Care

Wompi21:10, 18 June 2012
 

You can write wiki bots to communicate with MediaWiki via APIs. I do some of this with User:VoidBot, and Nat has also done some. If you start working on any wiki bots, let me know and I can give your bot user the "Bots" permission (if you promise to be careful =)). Darkcanuck's RoboRumble server also has an API you can play with: Darkcanuck/RRServer/Query.

I do some neat auto-tracking of RoboRumble activity (which uses both those APIs), and posts its output to @roborumble on Twitter. I've thought about displaying this somewhere (Main Page or RoboRumble), but I'm not sure how to embed a Twitter feed in the content of a page. It's easy for @robowiki in the sidebar because I can just use regular HTML/CSS/Javascript, but the content of wiki pages is handled differently. I'm sure there's a way, maybe with a custom extension?

Voidious21:22, 18 June 2012
 

Hmm i guess the wiki bots is nothing for me by now. But i could think of using the RoboRumble API or even better would be to embed your twitter feed on the main page to see whats going on in the rumble. A quick goggle search told me there is a widget called "Twitter Search" that can embed Twitter feed in wiki pages. This would need the widget extension for this wiki. Not sure how much trouble it would be to set up these things.

I will have a closer look at the RoboRumble API to and maybe i find something that could make this happen.

Btw. the roborumble twitter is indeed very neat .. well done mate

Wompi22:17, 18 June 2012
 

New to Robocode

Hia I've only just started using robocode and I have never coded before doe anyone know any good tutorials out there ? Or could you give me any tips on how to get started. Any advise would be appreciated.

Rigged12:52, 8 June 2012

Hi Rigged!

The Tutorials on this wiki are great resources, especially Getting Started, My First Robot and Game Physics.

If you're brand new to programming entirely, I'd suggest that you also immerse yourself in some other avenues to learn programming concepts generally and Java in specific. Greenfoot is a tremendous tool for learning basic programming concepts in a very "object-oriented" way, with some great tutorials available.

There are also several good beginner's tutorials on Java in general.

Tkiesel14:14, 8 June 2012
 

Hi Rigged, welcome to Robocode. I had about 6 months programming experience at high-school (10th grade) level when I first got involved in Robocode. Although RC is a great way to pick up on programming, I do think it is important to have a tiny bit of knowledge of how the basic concepts etc work before starting. Once you understand what a class is, what a method is, and the basics of mathematics in a Java context (plus a bit of geometry/trig) you should be ready to start. The sample bots are lots of fun to play with, and understanding how they work is a great way to pick up on some of the concepts. Once you get there, just ask us what you should got for next and I'm sure you'll get tons of advice =)

Skilgannon16:00, 8 June 2012
 

Thanks for the advise :). I've started by building a simple robot and i was wondering how do you change the colour of your robot.

Rigged10:33, 9 June 2012
 

Hi. Lets talk about your questions on your user discussion page :) User_talk:Rigged. I think it would be to much for the main page and you can ask whatever you want there.

take care

Wompi12:21, 9 June 2012
 

Robocode JGAP User Manual

Hi

My name is Andrew Kirkland. I am currently writing a dissertation at the university of Abertay in Dundee(Scotland) which involves the use of Genetic algorythms to program robots in Robocode. I came accross Robocode JGAP . I have been testing it out but the webpage does not give me much information. Is their a user manual available for this software. I also need some general information on how it works for example the genome and what each of the 6 numbers represent, the fitness function, etc.

Any help would be much appreciated

Thanks

Ginganinja198015:38, 10 March 2012

I don´t think anyone here is using Robocode JGAP. But I know genetic programming algorithms are being used with success in RoboRumble.

Currently, the most successful uses of genetic programming algorithms combine conventional development os robots without it, then using genetic programming algorithms to find optimal constants in statistical methods, like parameters in k-nearest neighbors search, kernel density estimation or histograms.

MN15:32, 12 March 2012
 

Robot vs Advanced robot

Hi,

I've read about the differences between a Robot and an 'advanced robot' But there is a basic thing I do not understand : Does an advanced robot has an advantage in the battle field over a similar robot, because it can perform several action in the same tick?

As i understand it, if i call ahead(..) followed by fire(), a regular robot will call ahead (and block until it is done) and then fire, while an advanced robot calling setAhead(..) and setFire() will start moving forward and will fire at the same tick, thus having an advantage over it's fellow regular robot. that sounds weird, though..

Am i wrong?

Thank you very much yoni

Yonikes14:29, 18 April 2012

No, that's how it works. The only disadvantage I can think of is that Advanced robots can lose energy by hitting the wall. Personally, I find Robots boring and Advanced robots awesome, but maybe there are people who actually liked normal robots. Welcome to the wiki!

AW14:37, 18 April 2012
 

Thank you very much for the prompt reply.

So why on earth will someone write a regular robot, if a similar advanced robot will kick his ass? is it just a history thing?

Yonikes14:40, 18 April 2012
 

The author of Robocode thought Robot would be an easier starting point for beginners. I'm not really sure it is... And as for fairness, I'm not sure he could foresee how competitive Robocode would eventually become. :-)

As for why still write one? Sometimes people like writing bots under different constraints, even if they're silly. The most popular example would be weight classes based on Code Size (Mini/Micro/NanoBots), which even got their own Rumbles. People have also written Robots, Droids (+20 energy, no radar), and Perceptual Bots (don't store any state, even between ticks). Of course, comparing such bots to DrussGT is unfair =), but that doesn't have to ruin the fun. I recently wrote a Perceptual Bot myself (RetroGirl).

Voidious15:26, 18 April 2012
 

Someone can write a robot just for fun. Why there are races on bicycle, when you could also ride a motorbike. Why we have code-restricted classes. Mind you, the best robot (kawigi.robot.Girl) is not easy to defeat, especially in melee. Most school competitions I know of use Robots, as it probably easier to check and control the code and its behaviour, and to prevent 'lending' code from good bots out here. For me, writing a robot is more difficult than writing an advanced robot, because it is hard to wrap my mind around what to do when and so on.

GrubbmGait15:33, 18 April 2012
 

Hi,

Thanks for he answer. I didn't mean for question to be offensive (as in "why should one bother to write a Robot and not an Advanced one) I just wanted to make sure i understood correctly that the Advanced indeed has more power in the battle field.

Yoni

Yonikes17:11, 18 April 2012
 

RoboRumble could have an "extends Robot" category.

MN17:44, 11 May 2012
 

Slow RoboWiki

Hi mates. Is there an issue with RoboWiki? It is very slow and sometimes it even didn't responds.

Wompi09:57, 3 May 2012

Yes, I've also noticed this. I suspect a search engine may have been spidering, or perhaps a database backup was running.

Skilgannon17:33, 3 May 2012
 

I as looking into this on the server today, and it looks to me like the main thing loading the wiki down is Bing being ridiculously aggressive with it's spidering... :(

Rednaxela05:46, 9 May 2012
 

EverythingRobocode link

I'm not really seeing anything on EverythingRobocode that makes it worth having a prominent link on the front page. I don't want to seem like I have a problem with other sites about Robocode coming into existence, because I think it's great. If at some point it has a ton of original content, by all means we should link to it. But right now, it looks like just a few articles, and this is a pretty elite set of links. Could you just post a link on your user page for now?

Voidious22:58, 11 March 2012

I agree, we cannot link every page about robocode on the front page, only the most important/informative of them. Compounded the need to add a description as well, which is a bit needless. I will remove it (the link+desc) for now.

Chase-san04:38, 12 March 2012
 

Maybe an External Links page filled links? And then link the Main Page to that page.

MN14:42, 12 March 2012
 

Looking for Mentors

Hi everyone, Im new to this group but am hoping you might be able to help me out with a project I am going to be running at my school this term. I am going to be delivering an introduction to programming for some Yr 9 students (13 - 14 year olds) starting out with basic programming ideas and examples and then moving onto a group project where teams of students create their own robots using robocode. They will have regular competition against each other to see what team is making the most progress / come up with the best ideas.

The reason I am telling you all this is that I am looking for some mentors to help out and perhaps give some advice. All this would involve is you perhaps receiving 1 or 2 emails with some code or some questions about how to do something. This kind of interaction is really useful for students as they get to work with real experts and feel like they are being listened to and treated like adults.

The project will run for about 6 weeks and will start mid february, as I said it would only involve a couple of emails or perhaps a Skype session. The classes are all small and the students are really hard working

I would be very grateful if you would consider helping out and if you have any questions please fell free to get in touch with me.

Thanks for your help,

Darren

Mr Sutton07:45, 6 January 2012

I'm happy to help. I'll be very busy over the next few months getting my project ready for the international Robocup, but the occasional email should be fine.

Skilgannon09:15, 6 January 2012
 

I'm ready to help, but i'm afraid, that my english skill can become a problem

Jdev20:28, 6 January 2012
 

Thanks for the quick reply, its great to hear that people are keen to help out! I guess the best way to move forward would be to share some contact details. I will then give these out to the students once we start the robocode part of our project around the middle of february. Perhaps each of you could mentor a couple of teams therefore limiting the number of emails you will be getting.

It would be great if you could perhaps tell some other people about this project and see if they would also like to help our as the more people we have involved the better!

My email address is dsutton@nlcsjeju.kr, please email me from the account you would like students to contact you at so that I can start putting a list together.

Thanks again for your help and I look forward to hearing from you and perhaps some other willing helpers soon.

Darren

Mr Sutton04:59, 7 January 2012
 

I'd also be glad to help. Projects like this are always interesting :)

Rednaxela05:11, 7 January 2012
 

actually i think that every active robocoder is ready to help. and there are google+ circle for robocode: https://plus.google.com/102023615133629629984/posts?fd=1

Jdev11:05, 7 January 2012
 

Thanks for the great response, I've had quite few replies and am also looking for mentors from other more general programming areas as well. If you think you might like to get involved please contact me and I can tell you all about it.

The students had their first programming lessons this week and are really excited, particularly by the idea of working with robocode and having mentors they will be able to contact and share ideas with.

If you have said you will be involved or would like to be can I ask you to send me a quick Bio about yourself and your experience that I can give to students so they can find out a bit about you. It would also be great if you could supply a picture as well and this could be an avatar if you like, It would be nice if students could put a name to a face!

Thanks again for all your help, if you know of anyone who might be willing and able to help please put them in contact with me.

Darren

Mr Sutton11:18, 11 January 2012
 

The downtime this weekend.

Just for the record, the downtime this weekend was my fault. Got the server into a nasty OOM state when trying to optimize performance. It should be working properly now (and still faster).

Rednaxela03:29, 6 December 2011

If anyone is noticing Robowiki being slow, it's because a PHP process is hitting a cpu bottleneck right now.

The logs are showing Bing and Baidu doing some heavy spidering right now so it could be that... but it could be something else, I'm not 100% sure.

Rednaxela23:14, 3 December 2011

Are you using php-fpm or spawn-fcgi? From my test, the former performs better under heavy load (though I am not sure since I tested it with nginx, not lighttpd; tested with apachebench with wordpress installation)

Nat Pavasant15:50, 4 December 2011

fcgi, however the number of requests per second was fairly modest really, so I doubt that type of overhead was the issue. More likely something on the MediaWiki side was being inefficient on the particular pages being spidered I think.

Rednaxela16:39, 4 December 2011
 

Yay for speedups! :D

I did some tweaking to the server configuration... according to benchmarks I improved things so that Main_Page went from 5.41 requests/second, all the way up to 80.71 requests/second.

Special:RecentChanges improved less though, going from 2.26 requests/second to 3.44 requests/second.

Rednaxela17:30, 4 December 2011
 
 

RoboRumble result

What's the means of "APS","Survival","ELO Rating","Glicko-2(RD)","Battles","Pairings","PL Score" in the RoboRumble?And how to work out them?

Lcya8610:24, 14 November 2011

"APS","ELO Rating","Glicko-2(RD)": Darkcanuck/RRServer/Ratings
Premier League: [1]

Survival - it's average percent of rounds where robot survive
Battles - it's count of battles in which robot takes part
Pairings - it's count of another robots with which robot has battles
PL Score - it's count of wins in pairings (score percent > 50) * 2

for example robot A has 2 battles with robot B with score percents (45, 60) and no battles with robot C. In this case APS will be (45 + 60) / 2 = 52.5; battles will be 2; pairings will be 1; PL Score will be 1 * 2 = 2

Jdev12:20, 14 November 2011
 

soga,thank you ^_^

Lcya8607:17, 15 November 2011
 

Turbo Boost and Robocode

I just switched to a Sandy Bridge computer recently, which I believe has the most aggressive Turbo Boost nowadays (not counting the AMD Bulldozer, which I am not sure). I find that a lot of older robots started to skip turn like crazy (DrussGT is like skip 1 turn every 10 turns). I think the reason is that when Robocode calculate CPU Constant, it concentrates the extreme math to single core, which trigger the boost (to 2.9GHz in my CPU), but when the battle is being run, there are several threads running (plus the CPU temp would be higher due to more calculation being done), so the boost is not triggered, hence the cpu run at base speed (2.0GHz in my case).

Personally I run my Robocode at 1.5x the original CPU Constant. I don't know which CPUs you guys are on, but I think this may be a problem, especially on RoboRumble clients. What do you think? Should I fire a bug report?

Nat Pavasant11:41, 12 November 2011

I don't have such an issue on my AMD box, but that's a very good point. Hmm... --Rednaxela 16:48, 12 November 2011 (UTC)

Rednaxela17:48, 12 November 2011
 

I also have an increased CPU constant, approx 1.5 times the original. Just because I still have a single core P4 and sometimes I want to do something without stopping my client. It does not seem to hurt anyway.

GrubbmGait02:23, 13 November 2011
 

RoboCode Mentors

I'm new to robocode, and the learning curve is quite steep.

To phrase that another way, at one point my robot was locking on quite nicely to other robots, but subsequent versions (and prior versions) never appear to do anything sensible.

I'm an experienced programmer with lots of C and a bit of Java under my belt, so it's not the programming I'm struggling with.

I can get help with the specific physics questions (how do you get the angle between two headings? for example), so it's not that either.

I really just need someone who I can fire off a question "what does this do?" or "how does this work?" and get a simple response or a link to a wiki page.

I think if some sort of "big brother" mentorship programme were set up, a lot of people who would otherwise be put off by the massive learning curve might be encouraged to join in. More robots = more challenge = more fun. Right? :)

Until such a programme is set up, is there anybody out there who'd like to take a newbie under their wing? Please? :)

Cbrowne23:37, 10 October 2011

I would say just make yourself at home on the wiki and post all the questions you like. You'll probably get better / faster responses giving everyone a chance to answer them. Most of us watch Recent Changes and are happy to help. =) I'd also love to hear what kind of intro / tutorial pages would have been helpful to you, once you get your footing.

Welcome to the RoboWiki!

Voidious01:58, 11 October 2011
 

Yeah, just ask away. If you're not sure where to ask, just ask on your user page. It also helps if you keep some sort of documentation of what you're doing, it doesn't have to be fancy, but more like a changelog - it makes it easier for us to give suggestions. I'd think that the majority of the stuff is already here on the wiki, but knowing what to call it and where it is needs a bit of experience =). Fresh blood is always appreciated! So go wild with the questions.

Skilgannon07:32, 11 October 2011
 

Ok, I guess the format of the Wiki and the highly-conversational style are throwing me a bit. I wasn't expecting a response so quickly (or at all, for that matter).

I think a brief primer on the physics/maths calculations you'll need for robocode would be useful, eg:

- how to calculate the difference between two headings
- how to calculate the relative velocity of another bot vs your bot (don't know if this is used in any of the 'top' algorithms, but it feels like it could be useful to newbie bot authors)
- how/why to normalise headings to relative angles (I know the Utils class has this, but it would be useful for newbie bot developers to know how to do it themselves and why it's useful)
- how to calculate the distance between two headings (subtle difference between this and the first point)

If this already exists, could someone point me in the right direction?

Cbrowne14:04, 11 October 2011
 

I'm not sure if this is covered explicitly anywhere - I know for all of the geometry problems I run into I sketch it on paper then solve it traditionally.

That said, the difference between two headings is just (scan1 - scan2). You might want to use normalisation - either relative or absolute - to put it in the range you want.

On this wiki we generally refer to relative velocity in terms of its components - Lateral_Velocity and Advancing_Velocity. The pages for those explain how to calculate them, and yes, they are used in a lot of the more advanced algorithms =)

Relative normalisation is used for determining how far something is to the left or right - for instance, whether you should turn your gun left or right. It puts the angle between -Pi and +Pi (or -180 and +180). Absolute normalisation is usually used to figure out where something is 'relative to North' and gives a value between 0 and 2*Pi (or 0 and 360).

As to your last question, I'm not sure exactly what you're asking. Perhaps you want the absolute value of the heading difference? If so, take the relative normal angle first so you don't get the situation where one is on 355 degrees and the other 5 degrees, and the difference between them is 350 degrees instead of 10.

Skilgannon15:03, 11 October 2011
 

scan1-scan2 is over-simplified, if you want the -shortest- difference between the two headings, which is more useful, it should be: `360 - Math.max(scan1,scan2) + Math.min(scan1,scan2)` I think. Different when dealing in radians (obviously).

The last question is a little difficult to phrase, but no I'm not talking about the absolute value of the heading difference. I'm talking about calculating the distance between two points on two given headings. Using trigonometry. Eg "where is the bullet the robot I just scanned just fired? if he fired one", I know this specific example is impossible to model exactly, but for modelling best-guesses of enemies' guns I would imagine this kind of equation would come in handy.

Thanks for the links to Lateral and Advancing Velocities, it makes sense that they're used a lot in the more advanced algorithms, but those algorithms are all pretty much magic to me at the moment so I had absolutely no idea what is and isn't used.

I'm also not asking for specific answers to these questions, just asking if it might be wise to set up a wiki page that has some basic physics for the purposes of other newbies who don't have answers to the questions (I do, because my dad teaches A-level physics). But thanks for your answers nonetheless, as they did help clarify one or two points I wasn't sure about. :)

Cbrowne15:41, 11 October 2011
 

I'd take the difference, then normalise it relatively and take the absolute value.

As for the other one, you probably want to look at projecting a point from an origin location, a certain distance at a certain angle. If you look in the source of Raiko (or pretty much any other open source bot) you'll see the 'project' function. Once you have the new location of the point, you can calculate the distance the normal way, sqrt((x1-x2)^2 + (y1 - y2)^2).

Skilgannon16:11, 11 October 2011
 

Oh, and if you want to have a starting point for more advanced algorithms, I suggest Pattern_Matching. It's what I started with, and it makes a good introduction =)

Skilgannon16:13, 11 October 2011
 

Virtual bullet doesn't line up with real bullets

I have a virtual gun that fires a virtual bullet, for some reason it's just slightly off when i actually fire.

MisalignedVirtualBullet.png

What's the proper way to align and fire? I think my timing is just off.

Ultimatebuster22:56, 3 October 2011

I would guess this is the result of the Robocode idiosyncrasy where a bullet is fired before the gun is turned (so if you do setTurnGunRightDegrees(10), setFire(3), execute(), the bullet is fired before the gun is turned right 10 degrees). So your actual aim is probably the aim from the previous turn, while your predicted is from the current turn.

Skotty23:28, 3 October 2011
 

Well... can't really tell without more information what's wrong, but my first guess about what's wrong, is that perhaps you're not accounting for how within a tick, firing happens before gun turning does. The angle you fire at when you call setFire() is the angle resulting from the prior tick's setTurnGun() type call.

Rednaxela23:28, 3 October 2011
 

Yeah that's correct, the setFire is from the last tick.

What's a typical pattern for robocode as to code placement? I'm currently placing the gun turning code in the while true loop and the firing code in onScannedRobot

and it's wrapped with if (getGunHeat() == 0.0)

Should I change that layout? (also add && getGunTurnRemaining() == 0.0 to the fire wrap?)

Ultimatebuster02:03, 4 October 2011
 

Using onScannedRobot or run is totally just a matter of preference - for 1v1 it won't make any difference, really. It could also be an off-by-1 error in the bullet source location - it should be your location on the tick you called setFire. Or your target angle was farther than your gun could move during that tick, in which case the getGunTurnRemaining == 0 check would solve it.

Voidious02:18, 4 October 2011
 

I know if i combined the 2 logics in 1 function, the code would fail (for me at least) Nevermind i figured it out.

(Also Voidious: I'm testing my bot against yours now because it has pretty debugging graphics and I can see my weaknesses :P Also I perform better against your bot (diamond) if i don't fire :P)

Ultimatebuster02:58, 4 October 2011
 

Also, am I suppose to, with my virtual guns, determine the fire direction using last tick's information, since gun turns after bullet fires...

Right now this would f with my simulated hit rate, as sometimes a bullet might hit but not a virtual bullet, or vice versa.

Ultimatebuster03:25, 4 October 2011
 

Yep, you should, though the impact is probably quite minor.

Voidious04:48, 4 October 2011
 

Hm. Even last turn's angle doesn't match with the actual fired one. Idk what's going on, also I think the virtual bullets also hits better..

Anyway to compensate the gun turn after the bullet fire?

Ultimatebuster17:15, 4 October 2011
 

My bullets were not lined up either, until in March this year, I finally solved the problem with GresSuffurd 0.2.28. It turned out that when using the estimated bearing of the next tick (firing tick) position iso the bearing this tick (aiming tick), my real bullets indeed lined up with my (correct) virtual bullets. It gained me 0.2 APS, but I reached spot #11 with slightly misaligned bullets, so it is really not that important. Also keep in mind you have to aim at the opponents next tick position.

GrubbmGait23:39, 4 October 2011
 

Wait i'm not sure if i understand what you mean by the next tick's position. How do I accomplish that?

Here's what I roughly have:

   while (true){
       if (getGunHeat() == 0.0){
           fireVirtualBullet(enemyCurrentAbsoluteBearing); // Just use Head on targeting as an example because it's simple
           fire(2);
       }
   
       turnGunRightRadians(enemyRelativeGunHeading);
   }

I know this would be wrong. I just don't know how to fix it =S

Ultimatebuster04:03, 5 October 2011
 

He means something like:

Point2D.Double myNextLocation = project(myLocation,getVelocity(),getHeadingRadians());
Point2D.Double enemyNextLocation = project(enemyLocation,e.getVelocity(),e.getHeadingRadians());
double nextAbsBearing = absoluteBearing(myNextLocation,enemyNextLocation);

I've tried this, and using it to predict the enemy location didn't help me, although it did help for my own location. I think it depends on the way you define wave hits and starting locations in your gun. In DrussGT I wait until my gun-turn remaining at the beginning of the tick is 0, then fire. I put my bullet on the wave from last tick. As long as you make the same assumptions everywhere it should be ok.

Skilgannon06:21, 5 October 2011
 

Yeah that doesn't help me either, predicting my next location and then aiming via that doesn't make it line up either. I also wait until gun turn is complete.... Still not aligning..

Also, how does bullets collision work? I thought it's a line segment that's between last tick's location and this tick's location (length of the velocity). Whatever the line segment intersect will be collided (other bullet lines or robots)

Ultimatebuster15:10, 5 October 2011

Maybe try staying still while shooting to see if that is the problem? If it still doesn't line up, it is some sort of gun alignment issue.

Skilgannon07:33, 11 October 2011
 

Yes, that is how bullet collisions work. Maybe take your last aim and align the bullet to that? What I do is mark my previous wave as having a bullet the moment setFireBullet() returns a non-null result.

Skilgannon16:40, 5 October 2011
 

Saving data between rounds

Can I save data between rounds in the static variables of other classes other than my main robot class?

Ultimatebuster20:45, 6 October 2011

Yep. Anything that's static will stick around in any class.

Personally, I model most of my stuff so the main robot class has objects that are static (gun, movement, etc) and then everything else is non-static in those classes, but you can model it however you'd like.

Voidious20:55, 6 October 2011
 

Yes.

Skotty20:56, 6 October 2011
 

while true loop

How is the while (true) loop actually broken down? Does robocode executes the code there 1 iteration per turn? Or..?

Ultimatebuster20:49, 28 September 2011

Generally, yes - when you call execute(), the Robocode engine processes one tick, including firing all the events on your bot, and then your run() method continues executing. So most of us have an infinite loop that calls execute() at the end, and each iteration is one tick.

But there's no magic to it - you could have a run method that goes:

public void run() {
  turnRight(20);
  ahead(100);
  fire(3);
}

And that would be perfectly valid. Or you could call execute() every third iteration of your loop. In Dookious, my run method used to have a loop that was while (notWonYet) ..., then a victory dance.

Voidious22:00, 28 September 2011
 

The timing thing for me is very confusing...

For example, if i want to fire at a certain angle, i have to rotate to it.. by the time i do.. i have another angle... which requires more rotation.. etc..

Same thing for turning the robot and going ahead.. I never know how to correctly time them. (Effectively stuck)

Ultimatebuster00:36, 29 September 2011
 

For gun aiming, see Robocode/Game_Physics#Firing_Pitfall. This can cause your aim to be a tick behind. I think most robots don't worry about it. But if you do worry about it, what I do is predict robot positions 1 tick into the future and use that for aiming. It's not exact, but works well enough for me.

Skotty07:11, 29 September 2011
 

LiquidThreads

Just installed LiquidThreads... Hope we all dig it. =)

Voidious18:41, 3 September 2011

We might!

Chase-san19:39, 3 September 2011
 

Liquid threads are kind of better, but still not ideal. My main concern is that this still requires you to go to different pages, some are difficult to get to (have to know it specifically or get refered). For example, if someone were to ask a question/start a discussion on certain type of targeting etc.

Personally I think a forum works the best, as it can break things down into different categories and list everything out in a manageable fashion.

The Facebook group is good, but it lacks the community involvement, in my opinion.

Google+ seems cool, but I can't sign up for it with my Google Apps account..

... and who uses yahoo? :P

Ultimatebuster02:17, 5 September 2011

That's what the Special:RecentChanges is for - you can see modifications made anywhere on the wiki. Questions can be asked on the person's homepage and moved later, if necessary.

Skilgannon11:39, 5 September 2011
 

It will take a while to get used to. But there is no need to diff the discussion pages anymore. Neither convert local times to UCT every time I write something. Nice work.

MN02:59, 5 September 2011

Just doing 4 tildas (~) will automatically do a UTC timestamp, plus signature.

Skilgannon09:40, 5 September 2011
 

I have only one complain. LiquidThreads is polluting the Recent Changes page.

MN03:03, 5 September 2011
 

Ultimatebuster: With regards to a forum, personally the problem I would have with a traditional one, is that conversations are often with regards to a specific concept that either has or should have it's own wiki page anyway. The tight linkage between pages and talk pages encourages cross-pollination between the two sides, with discussion inspiring wiki pages and wiki pages inspiring discussion. Plus, I feel that the categories that would be created in a normal forum would be too broad for robocode and cronological sorting within such large groups too limiting.

Rednaxela06:12, 5 September 2011
 

A forum would be much more open for beginners to ask questions though. you shouldn't try to put everything into categories but just leave it to different threads in topics. --Peltco 06:15, 5 September 2011 (UTC)

Peltco07:15, 5 September 2011
 

Maybe it would make sense to have a page using liquidthreads which is specifically for asking questions when a specific page is not known? Perhaps do something like prominently link it from the main page, or even embed it?

Rednaxela16:43, 5 September 2011
 

Well, although beginners may not know, but I believe with our not-so-large community you can ask questions on almost any talk page, and if it seems inappropriate, someone will move the conversation to the right place. I really think we should have a bot that post welcome message to user, since IIRC it tells that you can ask question on your talk page.

Nat Pavasant13:56, 6 September 2011
 
First page
First page
Last page
Last page