Slashdot Mirror


Robocode Rumble: Tips From the Champs

Jason writes "The Robocode Rumble is over and the winners have been declared. Who are they and what are the secrets of their success? Dana Barrow talks shop with some of the mad scientists behind the winning Javabots and with Mat Nelson, who reveals what he has planned for Robocode 2.0. You can get the free download here."

129 comments

  1. Robocode's Rival by FortKnox · · Score: 4, Informative

    Robocode is great. Its a neat exercise to get people intersted in OOP and Java.

    Being a Java programmer, I've also looked at C# and seen what MS did to improve the language (lets face it, C# took the good things of Java, and fixed the bad things in Java).

    The C# version of robocode?
    Terrarium, and damn is it fun (I just wish you could change the stats of your offspring to 'adapt' instead of/in addition to just passing off AI)!

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    1. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      He's right!

    2. Re:Robocode's Rival by Tablizer · · Score: 2, Troll

      (* Too bad that good OOP and Java are mutually exclusive. *)

      Everybody and their dog have a different opinion on what "good OOP" is [1]. You will start a huge flamewar by bringing up that. No doubt Smalltalk fans will jump in saying that Smalltalk is the only "true" OO. Then Eiffle fans.....

      [1] This relates to one of the problems with OOP in my opinion: lack of consistency in design methodologies. (oop.ismad.com)

    3. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      They both suck: the products of hype & bullshit to make buzzword-spewing consultants rich and coorporations slaves to them.

      So, the intelligent man becomes a buzzword-spewing consultant to be rich.

      The GNU hippy makes fun of him to become poor
      and smelly
      and forced to live in his parents basement.

      Come'ere. I'll give you some money. Just realize its from my consulting business.

    4. Re:Robocode's Rival by Anonymous Coward · · Score: 0
      lets face it, C# took the good things of Java, and fixed the bad things in Java

      ...like letting every idiot play with pointers if he wants to?

    5. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      The GNU hippy makes fun of him to become poor and smelly and forced to live in his parents basement.

      Sounds 'bout right.

      Now pass the doobee.

    6. Re:Robocode's Rival by dmorin · · Score: 3, Interesting

      Say what we want about java's failure to do true "write once, run anywhere", but MS has its own version of that. I tried to run Terrarium on my NT box and couldn't do it because I can't get the most recent DirectX. So there. That never happens with Java. Don't ask why my office machine is NT. I don't want to talk about it.

    7. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      Good thing you're not a programmer then.

    8. Re:Robocode's Rival by FortKnox · · Score: 1

      Now, I never said that I prefer .net.
      I'm a J2EE consultant by trade.
      I just find terrarium more fun than robocode.

      If I had the time, I'd write a nice project to rival it in Java.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    9. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      Perl 6, biotch. I await the day I can do in Perl ANYTHING I can do in C/C++...it'll happen too.

    10. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      ...like letting every idiot play with pointers if he wants to?

      i think you meant to say: ...like letting every idiot java programmer play with pointers if he wants to?

    11. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      YoU Will Assimilated...
      Click-Me ...Minimum requirements To install Dotnetfx.exe, you must have one of the following operating systems with Microsoft Internet Explorer 5.01 or later installed on your computer: * Microsoft® Windows® 98 * Microsoft Windows 98 Second Edition * Microsoft Windows Millennium Edition (Windows Me) *
      Microsoft Windows NT® 4 (Workstation or Server) with Service Pack 6a
      * Microsoft Windows 2000 (Professional, Server, or Advanced Server) with the latest Windows Service Pack and critical updates available from the Microsoft Security Web site * Microsoft Windows XP (Home or Professional) * Microsoft Windows .NET Server family Caution If you install Dotnefx.exe on Windows .NET Server Beta 3, you will break the version of the .NET Framework that is installed with the operating system. Windows .NET Server Beta 3 installs version 1.0.3215 of the .NET Framework. If you install a later version of the .NET Framework, version 1.0.3215 will be broken. If you install a later version, you can run and use the later version. However, you will not be able to use version 1.0.3215, even after uninstalling the later version. Recommended software Depending on your application requirements, you might also need to install one or more of the following: * MDAC 2.6 or later for data access, available from the Universal Data Access Web site. * Core WMI for Windows instrumentation, available from the Code Center. Note If the recommended software requirements are not met, Setup will not block installation or warn you of their absence. Recommended server software Depending on your application requirements, you might also need the following server software: * MDAC 2.7 for data on the server, available at the Universal Data Access Web site. * Internet Information Services (IIS) on the server for Windows 2000, Windows XP (Professional), and Windows .NET Server. This is required for using ASP.NET applications. Hardware Requirements Table 5. Minimum hardware requirements Scenario CPU Required RAM Required Client Pentium 90 MHz* 32 MB** Server Pentium 133 MHz* 128 MB** * Or the minimum CPU required to run the operating system, whichever is higher. ** Or the minimum RAM required to run the operating system, whichever is higher. Table 6. Recommended hardware Scenario CPU Recommended RAM Recommended Client Pentium 90 MHz or faster 96 MB or higher Server Pentium 133 MHz or faster 256 MB or higher .. wonder how it quick it goes on a minimum configuration PC...

    12. Re:Robocode's Rival by olevy · · Score: 1

      I saw your post in another forum touting Net Terrarium, so I downloaded it. It turns out that Net Terrarium, an official Microsoft example product for .Net does not run, ironically, on my MSN DSL system. The problem, apparently is because I don't have a static IP. That is a pretty common, major problem -- that pretty much wipes everybody out from using it.

      The Java alternative, JXTA (at jxta.org) handles this with the notion of http peers. Java has a surprising number of thriving open source projects (JBoss, Ant, JXTA, Tomcat, Jetty, etc.).

      And then you have just plain fun events like this Robocode.

    13. Re:Robocode's Rival by Anonymous Coward · · Score: 0

      I agree with the AC above. Microsoft is a good and decent bunch of guys and gals who are just trying to get their fair share of the market, which is 100%. Supporting C# and knocking Java in the post above helps us achieve this noble goal and thus makes the world better for all and less free. Thank you.

      Please use only Microsoft products, legally-purchased and with all the licenses, of course. You can't trust anyone but Microsoft, especially that open-source stuff.

      How do you know they don't put backdoors in open-source software, hmm? Tell me THAT!

  2. Re:43787719648973.0 by Anonymous Coward · · Score: 0

    Paying you 50 Karma points still won't get you a score higher than 0.

  3. Re:Jehovah's Witnesses: The happiest people in the by Anonymous Coward · · Score: 0

    Go back to GBS

  4. That's great, but. . . by Eponymous+Cowturd · · Score: 0, Offtopic

    Where's the code for Robo-Carmen Electra?

    1. Re:That's great, but. . . by Anonymous Coward · · Score: 0

      Where's the code for Robo-Carmen Electra?

      Gettin' it on with R2D2.

  5. Others? by DonkeyJimmy · · Score: 1

    Does anyone know about any other competitions, or similar AI programming games? I did a couple classes in college where you designed real-time and turned based AIs for games, and it was a lot of fun. RTSes interest me the most... I don't suppose there's an open starcraft clone or something with a good AI interface?

    --
    "Probably the toughest time in anyone's life is when you have to murder a loved one because they're the devil." -Philips
    1. Re:Others? by Osty · · Score: 1

      Does anyone know about any other competitions, or similar AI programming games?

      Terrarium is an AI programming game where developers write herbivorous and carnivorous bugs (and plants) in any .NET language, then let them try to survive in a P2P "terrarium" of other bugs and plants. Microsoft holds periodic contests (US contests and International contests) for Terrarium bugs, and there seems to be a fairly active community around the whole thing. And the best part is that you're learning .NET, while at the same time having fun.

    2. Re:Others? by Tool+Man · · Score: 1
      AHA! I KNEW that Microsoft had some crazed bug-breeding program somewhere....

  6. Similar skillsets by Tablizer · · Score: 3, Funny

    The Robocode Rumble is over and the winners have been declared. Who are they and what are the secrets of their success?

    When the slashdotting slows, I expect something like:

    Champ: "Well, I write a lot of viruses. The skillsets are very similar actually. You set it loose and it needs self-contained smarts to destroy anything and everything without getting caught or stopped."

    1. Re:Similar skillsets by Anonymous Coward · · Score: 0

      Viruses are never that complex. They don't trap deletes, and reinfect for every infected file deleted, it's very rare you'll find one that contains even basic AI, or is equipped with a general set of tools that'll let it run around a system in any way other than that which it's creator intended.

      Robocode 'bots aren't self-replicating. A virus is not a virus that doesn't self-replicate. All the 'bots have access to the same API and they (for example) hack into the phyisics code and stop bullets.

      Maybe you're thinking of agents, but they're only hypothetical right now.

    2. Re:Similar skillsets by Tablizer · · Score: 2

      (* Viruses are never that complex......it's very rare you'll find one that contains even basic AI *)

      Curious why not. There are many K viri out there, and none have AI-like intelligence in them?

      Is this due to size constraints, or are *all* virus writers dull?

      (* Robocode 'bots aren't self-replicating. *)

      I did not mean to imply that they were. Just because it may share many features with viri does not mean it shares all.

    3. Re:Similar skillsets by Hard_Code · · Score: 2

      Some viruses are actually very interesting. There are ones which are polymorphic, which introduce variations in themselves when they replicate. There are even types which start out as a population with randomized payload pieces, and they come together to "mate" and their payloads match up in some unique way. Some are cooperative, and coordinating over the network. Very interesting.

      --

      It's 10 PM. Do you know if you're un-American?
    4. Re:Similar skillsets by Procyon101 · · Score: 1

      Actually, I think the reason most viruses are simple is twofold:
      1) Most of the times, some of the best strategies are simple ones. More complex better ones may exist, but they are not generally worth the trouble. I once saw a long run of a genetic state machine prisoner's dillema solver. Although some very interesting complex strategies came up after VERY long run times, the tit-for-tat strategy, which is one of the simplest, dominated most of the run.

      2) I used to be interested in viri writing and the like when I was 12-14 and a mediocre coder. Once I got good at what I did, I realized that constructive tasks are much more rewarding then destructive. I assume it is probably like this with most coders. People who want to cause havok don't have the patience to build complex systems typically, and builders of complex systems don't want to rip others hard work apart because we have more respect for it.

    5. Re:Similar skillsets by Kintanon · · Score: 2

      I always thought the idea of info gathering viruses would be an interesting one. Instead of going out and hosing peoples machines they would scan the systems for promising keyword files and then snag the file and try to get it back to the virus originator (indirectly of course, not just e-mailing it back or something stupid). If someone dumped a bunch of those into the wild they could harvest all kinds of great corporate and personal info!

      Kintanon

      --
      Check out JoshJitsu.info for Brazilian Ji
    6. Re:Similar skillsets by Hast · · Score: 2

      There was one virus which updated itself through encrypted packages distributed on Usenet. That's a pretty neat idea.

      But most just use tried and tested methods. Not very high-tech perhaps, but it works.

      Also if you increase the complexity of the virus it gets easier to detect. Both since size increase and since you are more likely to have easy to detect thumb prints of op sequences.

      But most virus writers are probably quite inexperienced, so they are not going to do really neat stuff. (Or those that do don't get detected. ;-)

  7. Robot Battle by Anonymous Coward · · Score: 2, Informative

    I'm sorry, but some things seem to be VERY similar to Robot Battle, a pretty old game with the same concept: www.robotbattle.com

    Not trying to troll.. just wanted to point out.

    1. Re:Robot Battle by Anonymous Coward · · Score: 0

      Robocode mentions Robot Battle in the about box.

  8. Java slow by fortinbras47 · · Score: 0, Flamebait
    Maybe I just have a weird sense of coding aesthetics, but I always feel dumb when trying to do AI stuff in Java (in the same way I feel dumb trying to do nice beautiful code in c).

    No matter how good you try to code it in Java, a similar c++ version will run SO MUCH faster... And so when you're doing AI (which tends to test the border of what's computationally possible), I walk away with a dirty feeling if I try to do, let's say a SAT solver in Java.

    1. Re:Java slow by Tablizer · · Score: 1, Troll
      a similar c++ version will run SO MUCH faster

      Java

      seems

      fast

      to

      me.

      Really.



      Sincerely, Shellon Turtlebum

    2. Re:Java slow by FortKnox · · Score: 1

      No matter how good you try to code it in Java, a similar c++ version will run SO MUCH faster...

      I really hate how everyone keeps saying that Java is slow.

      C++ is faster, but not by much. Several years ago, Java was slower than dirt. You had a right to complain, then. Since then, most people won't even try it, believing its still that 'slow old Java'. The speed difference between the newest version of Java and C++ is negligable on modern technology.

      And AI doesn't depend on each clock cycle to be effective. Especially when every cycle is even in robocode.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    3. Re:Java slow by bharlan · · Score: 1
      Most AI programmers prefer languages that are strong in symbolic manipulation, such as Lisp or Prolog. When did the computational speed of a particular implementation become the most important criterion for every problem? Implementations of languages are fast or slow, not languages.

      Your statement that C++ will always run faster than Java clearly is based on hearsay, not experience. Ignorant coding will make any language slow. I've seen unoptimized java code run faster than C++ equivalents. Why? Because the VM can profile the code while running and recompile on the fly, unlike statically compiled C++. A statically compiled program will never know if loops are long or short and cannot unroll them to greatest advantage.

      --
      (Reality reasserts itself sooner or later.)
    4. Re:Java slow by Procyon101 · · Score: 2, Interesting

      Your generalizing too much here. There are many types of AI, and many languages to do them in. Each language is an abstraction of the problem space you are working in, so rather than making a blanket statement about a good language for AI, you should pair up the AI your talking about with a preferred language.

      1) Genetic algorithms are probably in the category you are talkng about. Good ones take massive processor power to come up with. Once they are done though, the end result is generally small and fast. This type of AI is usefull fr finding a near optimal solution in a complex but static problem space, ie What is the best wing design for this airplane. C, C++, Assembly are typically good languages.

      2) Neural networks. These can take up alot of processing power, or not, depending on their complexity. There is a rather large family of these also, existing in both asynchronous and synchronous forms. These are used to pattern match and generalize. Good for things like handwriting recognition. C++, Java are pretty good languages.

      3) Pattern matching knowledge databases. These are good at cross referencing data by finding subtle patterns in it. The construction of the database and pattern finding is intensive, but use typically is not. Lisp, Java, SQL, Perl can be good here.

      4) Expert systems. Used to categorize information for retrieval based on a information given by the user. Not at all processor intensive. Lisp, java good for this.

      5) State machines. This is where our Robocode fits in. Very object like, I can hardly think of a better language than Java for it's simplicity. These are not very processor intensive. C++, or C# might be good candidates.

      6) High level applied systems, lumping in natural language processing, vision recognition, etc.. These are generally heavy duty specialized systems that can be very data and processor intensive. C++ is a good general purpose choice for these, but each needs to be looked at individually.

    5. Re:Java slow by Anonymous Coward · · Score: 0

      Wouldn't it be easier
      to actually learn how to write OOP and Java


      writing OOP and java is not possible.

  9. I tried this... by Bobulusman · · Score: 2, Interesting

    I don't have a lot of java experience, but I tried this to try to get that experience. Unfortunately, no matter what cool stuff I put in my bot, the tutorial bots beat it on a regular basis. :(

    I think one of the problems was that the way I wrote it, it could fire more shots than average. Unfortunately, you lose a bit of energy with every shot, so all my missed shots led to my bot typically just shooting until a single shot by an opponent killed it. D'oh

    --
    Cogito ergo sum in Slashdot.
    1. Re: I tried this... by Antity · · Score: 2

      I didn't know much about Java and all, and I found the API descriptions in this contest rather lousy. But I tried to write a really simple bot (Ashley) within a few hours and submitted it two months ago. Didn't touch it after. (so everyone below my rank had about 2 months of time to optimize against my bot's play.)

      Well, this really dumb code scored rank 84 in Intermediate. How many people took part in this contest again?

      As I understand it, the best 100 in every class took part in the final fights, so I think many people had a quite good chance to get a nice rank if even my "junk bot" managed 84. :-)

      --
      42. Easy. What is 32 + 8 + 2?
    2. Re: I tried this... by Anonymous Coward · · Score: 0

      Funny thing about AI...
      Usually, in a simple game, the simplier AI beats the complex AI.

  10. Re:European Scum by drxenos · · Score: 0, Offtopic

    Hey, don't lump all us Americans in your racist, war-mongering, ignorance, trailer-trash rant. Its people like you that give us a bad name.

    --


    Anonymous Cowards suck.
  11. /.ed IBM by smartin · · Score: 1, Offtopic

    So much for big iron, snicker.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
  12. Re:Jehovah's Witnesses: The happiest people in the by Anonymous Coward · · Score: 0

    I love reading wack religious literature, so I gave it a quick read. These are the best parts:

    (talking about the garden of eden snake)
    Indeed, modern studies of classification of cats, while not necessarily being reliable as they may be based on the discredited 'theory' of evolution, strongly associate felines with serpents (despite some external differences in physiology and morphology, which confuse those who do not study these matters deeply)

    Additionally, cats practice many unclean habits not befitting a Christian household:...licking inappropriate body areas on their own bodies...vocal and blatant promiscuity (unknown to any other species, all others being endowed with Godly chastity and decorum) and widespread sexual misconduct without the benefit or sanctity of holy matrimony, even orgiastic practices, substance abuse of catnip (an intoxicating herb) which produces conditions akin to drunkenness.

    You can't make up stuff funnier than that. And remember, kids, an invisible man in the sky is looking down on you and doesn't want you to touch yourself.

  13. music visualation by Anonymous Coward · · Score: 0

    anyone got a robocode bot version wich moves the game/bots along with playback of a mp3 file?

  14. Re:Jehovah's Witnesses: The happiest people in the by Anonymous Coward · · Score: 0

    Today on "Learning the difference between FYAD and Slashdot"...

  15. Don't mod down! He's just starting a dialogue! by Anonymous Coward · · Score: 0

    He's simply trying to start a dialogue so that we can all move forward towards peace and reconciliation.

  16. Change your development "hobbits" by Anonymous Coward · · Score: 0

    Get it? Get it?
    That "joke" is just as funy each time I read it as it was the first time!

  17. something similar - MelBotWars by theoramus · · Score: 4, Informative

    There's a similar AI robotic combat program Tech tv did a story on called MelBotWars.
    It's basically a plugin for maya which uses the MEL(Maya Embedded Language) programming language for coding your bot's AI, and uses the rigidBody dynamics in Maya for the physics.
    Also, take note that you only need the Maya personal learning edition to use it, which is free.

    1. Re:something similar - MelBotWars by Anonymous Coward · · Score: 0

      Also, take note that you only need the Maya personal learning edition to use it, which is free.

      What is the real difference between the learning version and the full version?

    2. Re:something similar - MelBotWars by unicron · · Score: 2

      About $5,000 dollars, I think.

      --
      Finally, math books without any of that base 6 crap in them.
    3. Re:something similar - MelBotWars by Chundra · · Score: 2

      Nope. It's now $1999 for maya complete. The biggest differences are that the file formats between the two versions are completely incompatible, and the personal learning edition has these really annoying overlays on just about everything. Otherwise the PLE version is kickass, and successfully lets people learn how to use maya without warezing it.

    4. Re:something similar - MelBotWars by Saeger · · Score: 1
      There's quite a few differences besides the $2K pricetag.

      Still... A more expensive tool won't make you a better artist.

      --

      --
      Power to the Peaceful
  18. Everyone's offtopic, I'll join too! by fortinbras47 · · Score: 0, Redundant
    It's kinda interesting how some stories generate a lot of informative and thoughtful comments and others only generate big flaming piles of shit...

    I think the robocontest story was interesting, but only about 10% of the posts attached to this story have content, and the other 90% are like "woooooooooo, wooooooooooo look at ME, FIRST POST!!! I'm a big fucking idiot! Yeeeeeeehhhhhhhhaaaaaaaaaaaaa."

    1. Re:Everyone's offtopic, I'll join too! by drxenos · · Score: 0, Offtopic

      Welcome to the degadation of the human race. Fasten your seatbelt; it's gonna be a long ride.

      --


      Anonymous Cowards suck.
    2. Re:Everyone's offtopic, I'll join too! by Anonymous Coward · · Score: 1, Funny

      ah, another one attains enlightenment.

  19. Comedy Central by Whispers_in_the_dark · · Score: 0, Redundant

    Now they should show *this* instead of BattleBots on Comedy Central.

  20. genetically generated code? by ceswiedler · · Score: 4, Interesting

    Why not do it genetically? I'm not an expert on the subject, but the way I've always thought is that it's clearly possible to "breed" programs to do a particular task, as long as the task is very "ratable", i.e., you have a separate algorithm which will evaluate how well the program did. In this case, the "arena" program which pits the bots against each other serves very well. Generate random Java bytecode, run it as a bot, look at the points scored. Breed well-performing bots with each other by combining bytecode together in various fashions. Repeat several billion times...

    Obviously, the first N iterations wouldn't be syntactically correct bytecode (though I would suggest that you hard-code the 0xCAFEBABE prefix) and would probably throw exceptions almost immediately (resulting in disqualification). Eventually, however, you'd get a program which would at least not produce errors, even if it did nothing productive like moving and shooting.

    What's the best way to combine two bytecode programs to produce offspring which are similar-yet-different, and have the best chance of doing well? You would obviously want a chance of mutation (possibly reducing over time).

    1. Re: genetically generated code? by Antity · · Score: 2, Insightful

      I don't think Java would be a good platform for evolutional programming in bytecode. The test cycles are just too long with Java.

      Think you breed 16 or 50 childs every iteration and have to test them for success/failure, each of them. IMHO this is just too slow with Java. I doubt you'd have got a bot doing more than stand around without throwing exceptions within the contest time...

      --
      42. Easy. What is 32 + 8 + 2?
    2. Re: genetically generated code? by FortKnox · · Score: 3, Interesting

      I don't think the issue is with 'Java' as much as it is with 'Robocode'. Robocode does its battles graphically. To really get a good genetic AI going, you want it all done in memory so you can whip through a ton ov evolutionary steps ASAP.

      A good friend of mine did a genetic algorithm problem as a senior design project in school. It was REALLY cool (but was not done graphically).

      Perhaps if you modified Robocode itself to have a 'memory' mode, then after a buncha evolutionary steps, bring the latest one in for a graphical battle?

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    3. Re: genetically generated code? by Antity · · Score: 1

      A good friend of mine did a genetic algorithm problem as a senior design project in school. It was REALLY cool (but was not done graphically).

      Are you allowed to give more details? Stuff like that is always fascinating.

      --
      42. Easy. What is 32 + 8 + 2?
    4. Re:genetically generated code? by edrugtrader · · Score: 1

      several billion times?

      using this method would take several quadrillion times if not more.

      maybe if you took the top 200 bots, and just swapped their code in and out.... who knows.

      but pure random bytecodes is not feasible.

      --
      MARIJUANA, SHROOMS, X: ONLINE?! - E
    5. Re: genetically generated code? by Pentagram · · Score: 3, Informative

      I assume the orginal poster meant to evolve programs before the contest. This is difficult though; what measure are you going to use to select the best robots? The sample ones? Your other generated robots? I don't think a genetic approach like this would work very well. I imagine there must be quite a bit of psychology in programming these robots - a robot that is devastating against one robot is likely to be very susceptible against the tactics of another. How do you avoid the rock-paper-scissors vulnerability?

      And evolving the bytecode would be hard. Much easier to use a higher level evolving system. You could constrain the programs you generate to a certain grammar at least to eliminate your problem of evolving syntactically-incorrect programs.

      There have been successful GP systems evolving programs at the machine code level, but none that I'm aware of based on Java bytecode.

      An idea that occurs to me: maybe you could use a simple GA system with a small number of parameters (gun fire rate, shot power, attraction to certain corners etc.) and try and measure your opponents' values for these (maybe hard, I forget how much information you have access to in the game) and try and combine the parameters of the best robots in your tournament. This might take a lot of rounds though before you found the best combination. Or if you were allowed to enter several robots and have them swap genetic material at the end of a round.

      I've played with the system, and it's a lot of fun. Especially if you can get a few friends to enter robots.

    6. Re: genetically generated code? by Pentagram · · Score: 2

      Have a look at the comp.ai.genetic faq.

    7. Re: genetically generated code? by FortKnox · · Score: 2, Interesting

      Geez, it was years ago, but he's an open-source type of guy (actually he introduced me to /. and has a lower UID than me). I'll email him and see if he'll release the whole project out so you can read it.

      I know it was a game where two bots fought one another... it was a linux game (something to do with hacking memory? I never played it, so I can't remember the name). Anyway, IIRC, he pitted two different bots together and fought them. Each bot had 5 chances to win before becoming removed... once removed, it was genetically altered 1 line, then reintroduced.

      He graphed all their behavior (in gnu-plot) and there was VERY noticable steps when one made a genetic breakthrough. He let it run on his machine for months, and I think the end result even beat him using the most obscure technique you could think of (which, IMHO, is the coolest part of genetic AI. It comes up with ways to win that normal people wouldn't even think of).

      Anyway, my name is Josh Marotti, so email me at <firstname>@<lastname>.com, and I'll get back to you on it.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    8. Re: genetically generated code? by theperplepigg · · Score: 1

      there are plenty of places to find info on this on the internet. one such place is The Hitch-Hiker's Guide to Evolutionary Computation

      if you want to learn about some of the many variations of GA, try doing a search on ieeexplore.ieee.org (assuming you are a member) or try www.researchindex.org (free) note that these are both research sites, and so learning something like this from research papers can have a steep curve. i'm sure many academic books cover the subject, too. another topic that would be interesting to use is neural networks (some might say that is obvious, and i would agree) the realm is similar to GA, but VERY different in the guts of the solution.

      --paul

      --
      -- Every time you kill a kitten, God masturbates.
    9. Re: genetically generated code? by Slak · · Score: 3, Informative

      This is possible. Robocode does *not* need to run with graphics and in fact has a whole API to control battles. I've done some of it with BeanShell. And there is RoboLeague software which does the same thing. Combined with the ability to write to the filesystem, and you can store result values. I believe the JollyNinja bot determined sundry parameters this way, though most of the algorithms were designed and implemented by the biological agent known as Simon Parker.

      Regards,
      Slak

    10. Re: genetically generated code? by Mastos · · Score: 1

      Actually, if anything, Java would be a good match for this type of application. First off, Java has the ability to improve performance over time becoming much faster than C++ in some cases. Second, the platform independent nature of Java would lend itself to distributed computing. You could setup nodes running generations on several machines at once.

      That said, I agree, pure random bytecode is not the way to go.

    11. Re:genetically generated code? by Mastos · · Score: 1

      Instead of random bytecode, what if you used a system artificial neural networks (feedfoward multilevel percepetrons) combined with intelligent input calculations (such as "goodness" functions)? You could use one ann per functional area (movement, firing, prediction, etc) each fed by the result from their respective input functions in addition to basic input information (last known location of enemy bots, position, etc).

      Hmm, perhaps I found a topic for my genetic programming class...

    12. Re: genetically generated code? by Aexia · · Score: 2

      You could do it by starting with 100 bots. Sort by win/loss ratio. Take the top 50 bots and breed them with each other one in some fashion. That gives you 2500 bots.

      Now we need to filter those down. That's where a pool of control bots come in. Require new offspring to beat them, possibly within a time limit

      Level 1 - Opponent just sits there.
      Level 2 - Opponent sits there and fires in different directions.
      Level 3 - Opponent moves in a pattern while firing.
      Level 4 - Opponent moves in a pattern and always fires in the direction of bot.
      Level 5 - Opponent chases bot and fires regularly.

      Anyone who can't beat these bots in one try is eliminated. That should get you down to a manageable pool. If you have more than 50, use the time taken to beat the control bots as a tiebreaker. If you have less than 50... well, nature isn't looking at your species too kindly.

      Your new pool consists of the 50 "parents" + the 50 "children". In order to continue, the children have to best each other *and* their parents. Repeat as many times as possible.

      Get a checksum from each bot and maybe someway to track parentage and see who's dominating. This should hopefully avoid compeltely stupid robots and robots that are really good at killing their stupid offspring but nothing else.

    13. Re: genetically generated code? by Pentagram · · Score: 1

      Get a checksum from each bot and maybe someway to track parentage and see who's dominating. This should hopefully avoid compeltely stupid robots and robots that are really good at killing their stupid offspring but nothing else.

      I'm unconvinced! Unless you're going to code the bots yourself using a bit of pyschology, your only measure of success is going to be how could your robots are at beating the examples you give them.

    14. Re:genetically generated code? by Hast · · Score: 4, Informative

      You wouldn't get results in this millenium if you did that. First of you want to make sure that you only generate valid code, and from what I've heard bytecode is a bit of a bitch to do by hand so generating java files which you compile is probably a better idea. (Or just use parameters which you tweak, that is the usual way of doing genetic programming.)

      You need to feed the generator with a lot of domain info too, otherwise it will just produce garbage. (Even if it is compilable garbage.)

      If you are interested in this stuff check genetic-programming.org.

      I know that some guy used genetic programming to generate bots for Quake1. They were really stupid though. (He had a sort of blog where he told what had happened lately.) He got bots which would kill you right away if you circle strafed to the left. If you circle strafed to the right they would be completely lost. It's fun but not very usable.

    15. Re: genetically generated code? by Saeger · · Score: 2
      I remember watching some amazing MPEG video of work that Thinking Machines Corp did in the early nineties (before they under). The video depicted artificially evolved creatures swimming/flying/walking/flopping/etc in a somewhat granular 3D space. It was jawdropping, even now.

      Anyone still doing work along these lines?

      --

      --
      Power to the Peaceful
    16. Re: genetically generated code? by Saeger · · Score: 1
      This is the old video (9MB) I'm talking about.

      --

      --
      Power to the Peaceful
    17. Re: genetically generated code? by RichardX · · Score: 1

      This is a pretty cool experiment in ALife/Evolution/etc. And it's got pretty 3d graphics & physics, too

      Framsticks

      --
      Curiosity was framed. Ignorance killed the cat.
    18. Re: genetically generated code? by Saeger · · Score: 1
      Thank you. Thank you. Thank you.

      This is just what I'm looking for. :)

      --

      --
      Power to the Peaceful
    19. Re:genetically generated code? by kiwimate · · Score: 2

      When I was at university, I learned about an A.I. system which generated "concepts". It started with a base set of rules (say, for mathemetics, addition, subtraction, and so on), and generated new rules, or "concepts". Those were then rated by human experts and used to generate further concepts and determine a relevance ranking.

      This was many moons ago, so I don't remember many details. But one of the most interesting points I do remember was that the generated concepts had a very high usefulness index to start with, but became progressively less and less useful. This was intriguing; you'd imagine that using a base of complex and affirmed concepts would lead to more complex and subsequently useful concepts as the system learned what garnered a high approval ranking from the human experts.

      Mind you, it wasn't perfect. Amongst the cuter generated concepts was a parasitic concept. It didn't generate new concepts itself; it waited until a new concept had been generated and then attached its name to that new concept and claimed it had been the generator.

      Another concept decided that any concepts generated by the system were automatically useless and must therefore be immediately deleted. Funnily enough, the very first concept it deleted was itself. So much for "artificial intelligence".

    20. Re: genetically generated code? by John+Harrison · · Score: 2

      The bots profiled in the article all have source availible. Make your bots compete against those bots that are known to be good. You could even start by stealing some tricks from the champion bots.

  21. than what? by Anonymous Coward · · Score: 0

    Better or worse than what? You "lack decent evidence" that you are comparing OOP to anything in particular.

    1. Re:than what? by Tablizer · · Score: 1, Troll

      (* Better or worse than what? You "lack decent evidence" that you are comparing OOP to anything in particular. *)

      Anything. The literature often brags about how OO improves stuff, makes maintenance allegedly easier, etc. You tell me what they are comparing. I did not write all that.

      I generally compare it to procedural with liberal usage of a database. Databases and OOP tend to fight over territory. In procedural/relational the "noun model" is mostly in the database or reduced to relational formulas. In OOP the noun model is mostly via code structure. Databases are overall superior IMO than code for managing noun models and noun-related structuring. At least for me. Databases are more powerful than code when things scale or change. In summary:

      OOP:

      tasks: In code
      noun model: Via code structures

      P/R:

      tasks: In code
      noun model: Via relational database and formulas

      BTW, I never compared them WRT robot games. However, the literature implies that OOP is for every domain.

  22. how about a 3D robocode. by fishlet · · Score: 1


    I'm no expert on the subject but last I know there were some GL bindings for Java. It would be cool to have the robots battle in 3D space (with some real physics thrown in). Maybe in Robocode version 20.

    1. Re:how about a 3D robocode. by Anonymous Coward · · Score: 0

      I'm no expert on the subject but last I know there were some GL bindings for Java.

      Why use GL when you can use the Java3D package (got a zaurus? Cause the MicroJavaSDK for it includes J3D and works GREAT).

    2. Re:how about a 3D robocode. by Joseph+Vigneau · · Score: 2

      Java3D actually uses OpenGL (or DirectX) as the underlying rendering layer on many platforms. See here...

    3. Re:how about a 3D robocode. by Exiler · · Score: 1

      Google "roboforge"

      It's pretty point-and-click based, and the major part is putting the parts on your bot but it's still really fun for a while.

      --
      Banaaaana!
    4. Re:how about a 3D robocode. by grungeman · · Score: 1

      There is a pretty neat game called Roboforge. Instead of programming Java you build and combine AI blocks. The game is written in Java, too.

      --

      Signature deleted by lameness filter.
  23. don't bother... by edrugtrader · · Score: 0, Offtopic

    comedy central just sent out a memo...

    robocode rumble is officially cancelled.

    --
    MARIJUANA, SHROOMS, X: ONLINE?! - E
  24. RealTimeBattle by NoRSfall · · Score: 1

    Another Robots Battle prog (http://realtimebattle.sourceforge.net/)
    The biggest advantage of this one is that you can program your robot in any langages by interacting with stdin/stdout. Another good thing is realtime. And like it's written in C, it's quite portable
    Some robots of Robocode have parameters optimized by genetic evolution.
    I hope to see better robots with new technologies like Animat with sensor/actuator, Evolutionnary Neural Network, Multi-Agent (for team battle)

    1. Re: RealTimeBattle by Antity · · Score: 3, Interesting

      RealTimeBattle is cool. BTW, you can write your Bots in any language since communication is done using stdio.

      I wrote a bot for RealTimeBattle once ("Defensive Attack" - funny that this beast is still available) and found it to be real fun. I was a bit distracted that for the IBM project you could only use Java. With new experiments like this, I like to be able to use the language I'm best in.

      --
      42. Easy. What is 32 + 8 + 2?
    2. Re: RealTimeBattle by jsse · · Score: 2

      Just fyi.

      The orignal Robbocode was intented to help people learn Java by tinkering your own robot (in Java Class) to fight the others robots running by the computers. The sole purpose is to help people learn Java.

      May be inspired by the other online combat projects I don't know, but people soon find it to be more fun to fight online, thus Robocode Rumble was born.

      The purpose of Robocode and Robcode Rumble is to encourage people to learn and use Java. You might wonder why it's by IBM not SUN. In case you don't realize, the biggest employer of Java on earth is not SUN, but IBM. :)

  25. Starcraft clone? What about Freecraft? by xactoguy · · Score: 1

    Open Starcraft clone? Well, the closest that I can think of is Free Craft. Right now it is being based on Warcraft, and I don't know about the AI currently, but I'm sure they would be glad to have some more help.

    --


    And so we go, on with our lives
    We know the truth, but prefer lies
    Lies are simple, simple is bliss
  26. Book Suggestions by Lechter · · Score: 2
    Since we're on the topic of AI/genetic/emergent algorithms. Could anyone suggest any good practical introductory books on these topics? (With some code to look at rather than abstract predictions on how "x" will save human civilization)

    This is a topic I've been interested in for a while, but I've yet to see any good information to start me off...

    --
    credo quia absurdum
    1. Re:Book Suggestions by Mastos · · Score: 1

      I found these free (donation suggested) web books to be a good primer on the subject.

    2. Re:Book Suggestions by Hast · · Score: 2

      I've used "Artificial Intelligence:A modern approach" by Russel/Norwig in a class on applied AI. It's pretty good and talks about a lot of different topics. The edition I have had a lot on logic and stuff like that too, so it may be a bit theoretical if you just want to get your hands dirty.

      For that I'd recommend searching the web. Lot's of AI stuff out there.

  27. Resistance is Futile! by Anonymous Coward · · Score: 0

    YoU Will Assimilated... CLICK ME, /a Minimum requirements To install Dotnetfx.exe, you must have one of the following operating systems with Microsoft Internet Explorer 5.01 or later installed on your computer: * Microsoft® Windows® 98 * Microsoft Windows 98 Second Edition * Microsoft Windows Millennium Edition (Windows Me) * Microsoft Windows NT® 4 (Workstation or Server) with Service Pack 6a * Microsoft Windows 2000 (Professional, Server, or Advanced Server) with the latest Windows Service Pack and critical updates available from the Microsoft Security Web site * Microsoft Windows XP (Home or Professional) * Microsoft Windows .NET Server family Caution If you install Dotnefx.exe on Windows .NET Server Beta 3, you will break the version of the .NET Framework that is installed with the operating system. Windows .NET Server Beta 3 installs version 1.0.3215 of the .NET Framework. If you install a later version of the .NET Framework, version 1.0.3215 will be broken. If you install a later version, you can run and use the later version. However, you will not be able to use version 1.0.3215, even after uninstalling the later version. Recommended software Depending on your application requirements, you might also need to install one or more of the following: * MDAC 2.6 or later for data access, available from the Universal Data Access Web site. * Core WMI for Windows instrumentation, available from the Code Center. Note If the recommended software requirements are not met, Setup will not block installation or warn you of their absence. Recommended server software Depending on your application requirements, you might also need the following server software: * MDAC 2.7 for data on the server, available at the Universal Data Access Web site. * Internet Information Services (IIS) on the server for Windows 2000, Windows XP (Professional), and Windows .NET Server. This is required for using ASP.NET applications. Hardware Requirements Table 5. Minimum hardware requirements Scenario CPU Required RAM Required Client Pentium 90 MHz* 32 MB** Server Pentium 133 MHz* 128 MB** * Or the minimum CPU required to run the operating system, whichever is higher. ** Or the minimum RAM required to run the operating system, whichever is higher. Table 6. Recommended hardware Scenario CPU Recommended RAM Recommended Client Pentium 90 MHz or faster 96 MB or higher Server Pentium 133 MHz or faster 256 MB or higher .. wonder how it quick it goes on a minimum configuration PC...

    1. Re:Resistance is Futile! by Anonymous Coward · · Score: 0
  28. [OT] inventiveness of EC by Pentagram · · Score: 1

    the coolest part of genetic AI. It comes up with ways to win that normal people wouldn't even think of

    On that note, I can't help but mention this story.

  29. I can beat that... by Black+Perl · · Score: 2

    I used to code robots for RoboWar (for the Mac) in the early 90's. It was great fun. It's so old you need the wayback machine to see a page:
    RoboWar

    --
    bp
    1. Re:I can beat that... by Anonymous Coward · · Score: 0

      Oh come on, didn't anyone else play probots or crobots? That goes way back to the early '80s at least.

  30. ATTN: FortKnox Fans! by Anonymous Coward · · Score: 0

    Hey, all you FortKnox fans: Are you tired of befriending FortKnox and not having that friendship reciprocated? Sick of being just a "fan?" Hop on his journal and demand that FortKnox keep his Friends/Fans in complete equity.

  31. Creator's thoughts by jcsehak · · Score: 2

    Rumblecode creator Mat Nelson: "Today, Java is fast, though many people still do not realize it. Computer speed has increased at an amazing rate, JVMs are faster than ever, Java has matured, and we even have hardware-accelerated graphics. Java is ready for the client now, and I hope Robocode can help to prove it."

    --

    c-hack.com |
  32. Fermat's Info by Kuts · · Score: 2

    Hi

    If anyone's interested, here is a description of Fermat's movement algorithm described more clearly along with other silly questions. This is the original set of answers I submitted to them.

    And if you're even more interested, visit Robocode Repository for all the test bots and related information you will ever need.

    Arun Kishore
    [about to sleep...]

  33. CORE WARS - 1984 by mekkab · · Score: 2

    blah blah blah, blah blah blah blah.

    CORE WARS, devised in the 60's, played in the mid 80's, this was what you did!

    Now the sadness: I had both corewars and robo war for my mac plus. Guess which one I wrote bots for? That's right! NEITHER.

    Is there anything worse than a lazy geek?!

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:CORE WARS - 1984 by osolemirnix · · Score: 2
      Well, no need to write corewars robots. While graphically less exiting than robocode, core wars redcode pseudo-assembler is a lot easier to improve via genetic algorithms than robocode.

      So instead of seti@home, just run that as a screensaver and you should have a decent core wars bot in a couple of months. Many good bots to pit him against for evolution too.
      :-)

      The ongoing King Of The Hill tournament showed signs of a fractal pattern though, imho. Certain strategies would be good and certain would be bad against others. So after a while there was kind of a repeating circle of strategies, like a paper, scissors, stone game.
      Now it would be interesting to know how robocode differs in that aspect?

      --

      Idempotent operation: Like MS software, wether you run it once or often, that doesn't make it any better.
  34. CORE WARS by Anonymous Coward · · Score: 0

    Doesn't any body remember core wars?

  35. Re:Others? boson looks promising? by martintt · · Score: 1

    Boson has very pretty looking screenshots but has no AI yet, so you could try to write some for them. If you do, try to make it modular so people can easily write their own AI and get them to compete.

    Freecraft are advertising for some much needed artists to help them, but look good otherwise.

    --
    If you laid all the MicroSoft users in the world end to end around the equator, 2/3 of them would drown.