Slashdot Mirror


2004 ICFP Contest Spinoff Game

TheRealFoxFire writes "Taking a page from the popular Corewars competitive programming game, the 2004 ICFP Programming Contest task has been turned into an online competition: Ant Wars. In the game, programmers create state-machine ant "brains" which battle against each other for food and programmer glory. And just in time for the ICFP contest itself, where this year's winners will be announced."

59 comments

  1. ...but that would be cool, too... by BalorTFL · · Score: 4, Funny

    Totally misread this the first time around:

    ...In the game, programmers with state-machine ant "brains" battle against each other for food and programmer glory...

  2. Very cute but... by Anonymous Coward · · Score: 5, Insightful

    ...if you'd like to see a more advanced simulator which has an ant demo, see MASON. A nice paper on it was presented at AAMAS this year.

    1. Re:Very cute but... by Anonymous Coward · · Score: 0
    2. Re:Very cute but... by Anonymous Coward · · Score: 0

      Yes. It's the one by Panait and Luke.

  3. Sounds like IBM's Robocode contest from... by Hollinger · · Score: 4, Interesting

    This sounds like IBM's Robocode contest from a while back. In that particular game, you wrote a robot class built around a predefined basic robot, using a provided API for stuff like "radar," and sensing when you're in the line of fire. Your robot would battle with N other robots in an arena, and the last left standing would win.

    I think whoever won the contest last time won a new ThinkPad Notebook, but that was two years ago. By now, I think Robocode's been set aside within IBM.

    Now it looks like some Third Party's built a competition around IBM's Robocode.

    1. Re:Sounds like IBM's Robocode contest from... by Fjornir · · Score: 4, Interesting
      Let's not forget C Robots! A similiar game where you hack your robot's instructions with a psuedo-c.

      There's a C++ variant as well.

      There was a less interesting (but much more complex) programmable-robot game floating around in the BBS days which used a BASIC. Although it had a beautiful GUI (for the era) its biggest failing was that it allowed customization of your robot's chasis, weaponry, etc. Unfortunately this wasn't well balanced, and the competition we had running quickly degraded and we all lost interest.

      --
      I want a new world. I think this one is broken.
    2. Re:Sounds like IBM's Robocode contest from... by einer · · Score: 1

      Core Wars? Fun game concept though.

    3. Re:Sounds like IBM's Robocode contest from... by ezzzD55J · · Score: 1
      " Let's not forget C Robots! A similiar game where you hack your robot's instructions with a psuedo-c."

      Oh yeah, I remember crobots from my amiga days.. fantastic fun. I'd like to try a little more of it (nowadays we'll be able to run simulations enormously fast), do you have a 'better' link? The sourceforge link looks pretty empty to me, and the 'official' page only has a dead link to a .zip with only an executable..?

    4. Re:Sounds like IBM's Robocode contest from... by r2q2 · · Score: 2, Interesting

      This is more advanced than core wars. Instead of having one program it has the same program done multiple times (as little ants). Look at the species page and try a combination (Foo 0.1 against foo 0.4 for example). Note you need java.

      --
      My UID is prime is yours?
    5. Re:Sounds like IBM's Robocode contest from... by FnH · · Score: 2, Informative

      Robocode is still very much alive.

      Proof of this is a very active wiki.

      Join, we could use some new cannon fodder :)

    6. Re:Sounds like IBM's Robocode contest from... by Anonymous Coward · · Score: 0

      My CS105 class used Robocode to teach some Java...

  4. My entry... by Black+Parrot · · Score: 4, Funny


    [start] --> [attackjudges]
    [attackjudges] --> [checkrankings]
    [checkrankings] --> [idle] , if rank is "1st"
    [checkrankings] --> [attackjudges] , otherwise
    [idle] --> [checkrankings]

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:My entry... by zebadee · · Score: 1

      I'd rather use

      [Start]--> [BecomeAardvak]

      And if thats aready a species, combat it with

      [Start]--> [BecomeAntFromPinkPanther]

    2. Re:My entry... by Fjornir · · Score: 1

      Mmm... If your entry becomes an Aardvark then I'd have no choice but to have my entry become a bunch of hard-line Cirinists....

      --
      I want a new world. I think this one is broken.
  5. corewars.org?! Try http://www.corewar.info instead by Anonymous Coward · · Score: 3, Informative

    http://www.corewar.info/ Is maintained by Christrian Schmidt, one of the great corewars men. Or you could go to http://www.corewar.co.uk/ Maintained by John Metcalf, corewar hall of famer.

    Or better yet, you could try www.koth.org or sal.math.ualberta.ca and go straight to the hills.

  6. Bug Brain by tuxter · · Score: 5, Interesting

    This is quite a nice visual program. The idea is to build a brain to "run" a bug. Nice educational tool....

    1. Re:Bug Brain by Anonymous Coward · · Score: 0

      This is quite a nice visual program. The idea is to build a brain to "run" a bug. Nice educational tool....

      Bugbrain was great, and Mindrover was one along similar lines. I wish we'd see more neural-net based stuff these days.

    2. Re:Bug Brain by rasz · · Score: 1

      brain ?? what have you been smoking lattely ? Bugs are simple and stupid :
      http://www.seattlerobotics.org/encoder/200205/anco b.htm
      http://www.seattlerobotics.org/encoder/200205/abio nin.htm

    3. Re:Bug Brain by tuxter · · Score: 1

      Ummm, bug brain would be the name of the program....

  7. Winners will be announced at the ICFP by bringert · · Score: 2, Informative

    The winners will be announced at the ICFP (International Conference on Functional Programming) itself, not the ICFP Programming Contest. The contest took place in June. The conference is in Snowbird, Utah, September 19-22. See you all there.

  8. take the test.... by leav · · Score: 1, Funny

    will the ants take the turing test do determine who gets to be the queen? i'm not witty.

    --
    I own a pump action golf ball cannon. I made it myself.
  9. Just in time for... by Anonymous Coward · · Score: 0

    the ICFP conference, you mean? (Redundant, actually. The C stands for Conference.) The contest was months ago...

  10. Forum statistics by onthefenceman · · Score: 2, Informative

    "In total there are 182 users online :: 2 Registered, 0 Hidden and 180 Guests"

    Looks like a promising audience...

    --
    Have you seen my stapler?
  11. Intro to the game by Rightcoast · · Score: 4, Informative

    Here is a very simple introduction for anyone new to the game and interested in playing.



    http://www.koth.org/info/corewars_for_dummies/dumm ies.html
  12. Google ads by Anonymous Coward · · Score: 1, Funny
    The best part is the Google ads on that page. The algorithm totally failed, with four ads for ant-control. Yes, real ants.

    Oh well.

  13. Check out the Google ads on the Ant Wars page by corporatemutantninja · · Score: 3, Funny

    I guess the Google algorithm took the words "ant" and "programmer" and assumed some kind of nasty infestation.

    --
    Actually, I was trying to be Insightful, not Funny.
  14. Swarm intelligence? by metachor · · Score: 0

    This sounds like a good application for swarm intelligence.

  15. anyone remember omega? by Hubert_Shrump · · Score: 1

    man, there were tanks and shit. BOOM!

    some related stuff, as i was looking for it:

    http://www.gammax.net/aiforge/game-links.htm

    --
    Keep your packets off my GNU/Girlfriend!
  16. realtimebattle by Hubert_Shrump · · Score: 2, Interesting
    --
    Keep your packets off my GNU/Girlfriend!
    1. Re:realtimebattle by TheRealFoxFire · · Score: 1

      The ants in Ant Wars are defined using a bytecode, so you can create/use any language which generates said bytecode.

      An example ant species genome:

      .f6..2..81....5...2....l...6.2..b..d0.....6.1..g..
      i0v....1.......8.f3..o..t1....r...3.....6.2..w..y0
      ....l6.1..B..D0v...l1....l..t

  17. Corewar is still alive and active at: by Anonymous Coward · · Score: 1, Informative

    corewars.org is a quite unlucky link for corewar. Much better sources are:

    http://koth.org
    http://www.corewar.info
    http:/ /www.corewar.co.uk

    Fizmo

  18. Acronym by Noksagt · · Score: 3, Informative

    Slashdot submitters: try to explain acronyms you use in your submission. Same should go to people who make the original websites too. It took a lot of poking around to figure out ICFP=International Conference on Functional Programming.

    1. Re:Acronym by Anonymous Coward · · Score: 0

      It took a lot of poking around to figure out ICFP=International Conference on Functional Programming.

      Soooo... The first 33 hits on Google didn't tip you off?

      (I agree, "ICFP" isn't really common knowledge, even on Slashdot. But let's not be overdramatic.)

    2. Re:Acronym by Noksagt · · Score: 1

      Fair enough. I should've said that it was difficult enough to find in TFA, that I had to resort to a google search. My beef wasn't with the obscurity, but with the fact that both TFA & the OP didn't have the forethought to consider it might be a little obscure.

  19. Corewar links correction by lastfish · · Score: 3, Informative

    The corewars site linked to in the story has never been known to be active or complete.

    The KOTH server is home to the "pro" hills of which 94NOP is the most active.
    The most up-to-date site for info & links is Fizmo's.

    There are beginner's hills and others at
    SAL hills
    Yellow hills

    There's also an IRC channel at irc://irc.koth.org#corewars

    Ant wars looks interesting - pity the event is over

  20. Strange syntax by ceswiedler · · Score: 2, Interesting

    It's done in Java, so why not use Java as the scripting language? I imagine with Java security managers, you could give programmers access to a small set of ant-related classes, and disallow access to everything else, including lots of the standard built-in classes, even HashTable and List, so you can't build particularly complex code. At least it would be in a standard syntax, instead of their custom state-machine language.

    Formicidae source files consist of a sequence of constant and state
    definitions. They have the form:

    (DEFINE-CONSTANT )
    (DEFINE-STATE ...)

    STATE-EXPRESSION is any of:

    (-> )
    Unconditional jump to the state named by STATE-NAME>

    (BEGIN ...)
    Sequencing of states.

    (STATES (( ...) ...) ...)
    Local & recursive (a la LETREC) binding of state names to their
    respective state sequences.

    (IF

    )
    State branches. CONDITION may be a simple branch -- a Formicidae
    state whose operator takes multiple continuations, {PICK-UP, MOVE,
    SENSE, FLIP}, which would not be otherwise usable outside of IFs --
    or uses one of the three boolean logic operators {NOT, OR, AND},
    whose meanings are obvious.

    (COND ( ...) ...
    (ELSE ...))
    Syntactic sugar for nested conditionals. This is exactly as COND
    in Scheme...

    1. Re:Strange syntax by r2q2 · · Score: 1

      Dude have you ever heard of lisp? It uses an interpter programmed in java but it implements the scheme programming language. Google SISC. or RTFC

      --
      My UID is prime is yours?
    2. Re:Strange syntax by SvendTofte · · Score: 1

      S-expressions are a easy to parse notation, and is so simple, that "standard" could surely describe it. At any rate, they mention that while you could write the whole program yourself, having code, that generates your program, would be optimal. Java code, that generates java code? I would hate to see that. S-expressions are easy to generate, consider Lisp code, that generates, or evaluates Lisp code.

    3. Re:Strange syntax by bert.cl · · Score: 1
      What I personnaly like, is the fact that you can actually write it in asm or a higher language language, while I haven't got enough time, I can think of some people who'd enjoy writing a little interpreter for, let's say, perl to handle the syntax and then run the asm file through the assembler.

      I always thought these kind of things were great, reminds of me of gridwars and stuff

    4. Re:Strange syntax by TheRealFoxFire · · Score: 2, Informative

      As has been mentioned, the high level language is written to be easily parsed and compiled (its recursive and LISPy). The target is actually bytecode, so there is nothing stopping people from writing any sort of syntax, or higher level frontends capable of things that aren't possible in the provided language.

      We don't use Java, one, because we don't want people to have to use Java, and more importantly we have to avoid turing completeness both to keep the game simple and elegant, and to ensure a reasonable amount of time to simulate games.

      Besides, the Java Security Manager isn't so fine grained that you can turn off arbitrary parts of the Java library. It just prevents certain known dangerous things like I/O, etc.

    5. Re:Strange syntax by j1m+5n0w · · Score: 2, Informative
      why not use Java as the scripting language?

      Part of the challenge of the IFPC contest was that the ant language is significantly less powerful than what people are accustomed to coding in. In order to write anything that isn't horribly painful, you have to write your own compiler.

      The only per-ant state that is remembered is the state number (ants are limited to 10000 states). For instance, in order to remember which way your ant is pointing you can't just remember it in some variable, you have to make six copies of your program and jump between copies any time you turn right or left.

      What this means for the game is that when an ant reaches food, it can never remember how to get back without actually marking some sort of trail (which might lead nowhere). Coordinating complex behavior between multiple ants is difficult, though not impossible.

      -jim

  21. Not only has robocode done this, but MS has too! by SpectralOne · · Score: 0

    http://gotdotnet.com/terrarium/
    The whole concept of using ants and insects to compete programmtically is a total rip-off of the Microsoft example at the above address.
    OSS emulating pre-existing software; yep, nothing unusual about that.

  22. Phones by xombo · · Score: 2, Interesting

    I heard about a technology a few years ago nicknamed "Ants" for phone lines that found the best possible route from point to point in much the same way that ants leave chemical trails to tell the other ants where food etc. is.
    I'm sure there's more practical uses of programming "ant brains" that this contest will uncover.

  23. Don't .. by fforw · · Score: 1
    Java code, that generates java code? I would hate to see that.
    .. don't follow this link.
    --
    while (!asleep()) sheep++
    1. Re:Don't .. by SvendTofte · · Score: 1

      Ok ... so I did ;)

      Now, I've never done much (if anything) with JSP, so please tell me how Java can easily, and naturally, without much string mucking, can both a generate, and interpreter of itself? Some simple code examples would be great, since of course, I can't really spend time learning all of JSP.

      Now, generating bytecode objects, or stuff like that, isn't the idea. It's generating plain text files, with Java. From Java. With my limited knowlegde of Java, I don't see anyway, this can easily be done, without the use of very complex abstracting libraries. Lisp, and S-expressions on the other hand, are supremely suited for this.

    2. Re:Don't .. by Oligonicella · · Score: 1

      "...so please tell me how Java can easily, and naturally, without much string mucking,..."

      Well, since source code is usually text, eliminating "string mucking" certainly makes it harder, don't you think?

      Can you think of some other ways to ham-string your request?

    3. Re:Don't .. by fforw · · Score: 1
      Well.. a JSP implementation is java code which generates java code, not java bytecode.

      If you want to generate/manipulate bytecode directly you should take a look at the Byte Code Engineering Library.

      --
      while (!asleep()) sheep++
    4. Re:Don't .. by SvendTofte · · Score: 1

      Either you're being facetecious, or you don't know how to write a language, and a compiler. The extreme simplicity of s-expressions, versus the full grammar of the java language should alone tell you that string parsing the java language is going to be 100 times as difficult.

    5. Re:Don't .. by Anonymous Coward · · Score: 0

      What part of lexing isn't "string mucking?" I think (if you went to college) that wherever you went did a great disservice to you.

      Now Java certainly has a more complicated grammar than s-expressions, but that's irrelevant to whether or not processing text requires string processing.

    6. Re:Don't .. by Anonymous Coward · · Score: 0

      I guess the point he's spectacularly failing to get through is that in lisp you don't have to process text to compile newly created code at runtime. You work directly with parse trees, with no "string mucking" in sight. On the other hand, there's no technical reason why a Java compiler library couldn't take in simple parse trees, it's just inconceivable that working with the tree structure would approach the simplicity of working with the lisp source-as-a-tree concept. But on the whole, Java programmers seem to be able to get work done nicely within the confines of the language, and there are distinct advantages to such a rigidly structured language.

    7. Re:Don't .. by gedhrel · · Score: 1

      Take a look at the JSP specs. The semantics of JSP constructs are specified by saying that they are equivalent to a bunch of constructs using the java servlet spec. There really is no magic; JSPs can be converted into java servlets (dynamically, if required) and compiled into classes (again, dynamically: the stock java compiler's written in java and is available from runtime). The final (often dynamic) piece of the puzzle is to use a classloader to grab the generated class files and make them available in the runtime. No "java interpretation of java" going on, really.

      The two specs are written in the usual Sun style - double spaced and nice big fonts, so they make a pretty easy read. (This isn't facetious: I find their manual layout kind on the eye.)

  24. Access Denied by bonniot · · Score: 1

    And of course, you need to register before you can even have a look at this project. How friendly...

    1. Re:Access Denied by TheRealFoxFire · · Score: 1

      No, the only restricted parts of the site are starting ranked matches or submitting ants.

    2. Re:Access Denied by TheRealFoxFire · · Score: 1

      Something's definitely wrong with your browser or DNS then. The front page has no authentication whatsoever.

    3. Re:Access Denied by Anonymous Coward · · Score: 0
      I tried with a different agent (wget), and I get redirected several times, to the same point. Here is the log:
      wget http://gotdotnet.com/terrarium/
      --15:41:15--&nbsp ; http://gotdotnet.com/terrarium/
      => `index.html'
      Resolving gotdotnet.com... 207.46.248.125
      Connecting to gotdotnet.com[207.46.248.125]:80... connected.
      HTTP request sent, awaiting response... 302 Redirect
      Location: http://www.windowsforms.net/Terrarium [following]
      --15:41:16-- http://www.windowsforms.net/Terrarium
      => `Terrarium'
      Resolving www.windowsforms.net... 66.129.69.40
      Connecting to www.windowsforms.net[66.129.69.40]:80... connected.
      HTTP request sent, awaiting response... 302 Object Moved
      Location: http://www.windowsforms.net/Terrarium/ [following]
      --15:41:16-- http://www.windowsforms.net/Terrarium/
      => `index.html'
      Connecting to www.windowsforms.net[66.129.69.40]:80... connected.
      HTTP request sent, awaiting response... 302 Found
      Location: http://www.windowsforms.net/default.aspx?tabIndex= 6&tabId=42 [following]
      --15:41:17-- http://www.windowsforms.net/default.aspx?tabIndex= 6&tabId=42
      => `default.aspx?tabIndex=6&tabId=42'
      Connecting to www.windowsforms.net[66.129.69.40]:80... connected.
      HTTP request sent, awaiting response... 302 Found
      Location: http://www.windowsforms.net/Admin/AccessDenied.asp x [following]
      --15:41:18-- http://www.windowsforms.net/Admin/AccessDenied.asp x
      => `AccessDenied.aspx'
      Connecting to www.windowsforms.net[66.129.69.40]:80... connected.
      HTTP request sent, awaiting response... 302 Found
      Location: http://www.windowsforms.net/Forums/Login.aspx?Retu rnUrl=%2fAdmin%2fAccessDenied.aspx [following]
      --15:41:19-- http://www.windowsforms.net/Forums/Login.aspx?Retu rnUrl=%2fAdmin%2fAccessDenied.aspx
      => `Login.aspx?ReturnUrl=%2FAdmin%2FAccessDenied.aspx .1'
      Connecting to www.windowsforms.net[66.129.69.40]:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 11,631 [text/html]
      Is anybody else seeing the page?
    4. Re:Access Denied by Anonymous Coward · · Score: 0

      it is asking me for a forums login. i am using IE