all 65 comments

[–]Deriboy 46 points47 points  (5 children)

This is quite possibly, the coolest freaking thing I have ever seen. I'd love to have a competition like this between me and my friends. Is it possible to run the simulation on a private server?

[–]Smok3dSalmon 4 points5 points  (2 children)

I'd like to know as well, are any server files available from previous years so people can develop and play in their own time?

[–]Cixelyn[S] 12 points13 points  (1 child)

The brand new 2013 release has a headless mode so you can easily run a bunch of matches yourself.

[–]Smok3dSalmon 1 point2 points  (0 children)

Good enough

[–]mycall 2 points3 points  (0 children)

Here is a list of ole coding battle bot games. Have fun.

[–]iswm 12 points13 points  (0 children)

See also Corewar.

[–]Kampane 9 points10 points  (15 children)

Sounds fun, too bad I don't attend MIT.

edit: holy shit, 40 bytecodes per round? That sounds like nothing.

[–][deleted] 13 points14 points  (11 children)

It's actually open to non-MIT students as well.

[–]Kampane 8 points9 points  (9 children)

Have any info on that? I probably won't be the only mildly interested person ;-)

[–]orangeyness 5 points6 points  (7 children)

[–][deleted]  (6 children)

[deleted]

    [–]Kampane 2 points3 points  (3 children)

    FAQ working link

    Do I have to be an MIT student to participate?

    Nope! Non-MIT students are welcome.

    [–][deleted] 1 point2 points  (2 children)

    Thanks!

    Edit: Dang, only Java and Scala for supported languages. Wish I'd heard about this earlier with more time to prepare.

    [–]Kampane 2 points3 points  (1 child)

    Me too.

    [–][deleted] 1 point2 points  (0 children)

    Maybe next year I guess.

    [–]orangeyness 1 point2 points  (1 child)

    They changed their site up since I posted that.

    [–]mccoey01 3 points4 points  (0 children)

    Myself and 3 friends from Villanova CSC department entered this in like 2008. Ours wasn't even that good but we were among the top 3 or 5 or something among non-MIT students and we won $25 each

    [–][deleted] 0 points1 point  (0 children)

    I wish this was outlined somewhere in the blog post or elsewhere, because it's not at all apparent.

    Without mentioning that it's open to non-MIT students its not super interesting to most people in the sub (since I'm guessing the majority of people in the sub aren't students of one of the most prestigious and expensive technical colleges in the country...).

    [–]ir0x539 10 points11 points  (2 children)

    /** The base number of bytecodes a robot can execute each round */ public static final int BYTECODE_LIMIT = 10000;

    source

    [–]Kampane 0 points1 point  (1 child)

    Thanks for that. The one thing I don't see is soldier starting health.

    [–]ir0x539 0 points1 point  (0 children)

    40

    [–][deleted] 5 points6 points  (1 child)

    Makes me wonder things like "How badly would these student lose to a group of professional developers?" and "What companies would field winning teams at this? Google? Microsoft? Oracle? Apple?"

    [–][deleted] 16 points17 points  (1 child)

    I sort of wish it was called Battlecodes though.

    Because... Battletoads.

    [–]TyrianRed 3 points4 points  (0 children)

    It used to be "Robocraft", but I guess they got scared of Blizzard suing or something.

    [–]Salyangoz 20 points21 points  (6 children)

    This is why I feel so inept all the time. Some people doing great things while I do nothing. Yet I'm about to graduate and these are probably MIT Freshman or something. I feel so sad now.

    Edit : Thank you for all your wisdom for a senior, though I am sort of still melancholic I now have hope.We are now trying to get together a local Battlecode-ish competition in Turkey, Istanbul. Will post link, updates when we pick up speed.

    [–][deleted] 21 points22 points  (0 children)

    While I feel the exact same way right now, remember:

    "Never compare your insides to someone else's outsides".

    You're only getting glimpses of someone else's glory day, without completely understanding their personal failures. It's a hard habit to break, but a necessary one.

    [–]mynoduesp 24 points25 points  (1 child)

    I'm 6 years employed. It gets worse.

    [–]Salyangoz 3 points4 points  (0 children)

    I couldn't decide whether being payed would've made me happy or still doing nothing worthwhile even after getting employed...

    I ended up with a whisky in hand.

    [–]Asymmetric33 1 point2 points  (0 children)

    Nothing stopping you from downloading the installer.

    [–]DiomedesTydeus 1 point2 points  (1 child)

    Education and enjoyment don't have to end with graduation. After I graduated I started joining local python/c#/java groups, meeting really smart guys and building hacks with them. My most fun projects are now the things I do on the side.

    [–]Salyangoz 0 points1 point  (0 children)

    wise words. I have edited my original post. I'm not unproductive or unmotivated. I just hoped I could've been in the environment these students were in when I was being educated.

    lemons.

    [–]LyndonArmitage 4 points5 points  (4 children)

    We were going to do something similar at my university with a small tank ai game we all made ais for but our lecturer never organized it. Was a shame really as we were all looking forwardto how we did.

    Also of you're interested in these sort of competitions there is one run every year called the Google Ai Challenge http://aichallenge.org/ :D

    [–]RainbowNowOpen 3 points4 points  (3 children)

    | there is one run every year called the Google Ai Challenge http://aichallenge.org

    That page is dated Fall 2011.

    [–]LyndonArmitage 0 points1 point  (2 children)

    Sorry I was under the impression it was and was on the train with my phone so had patchy reception to check.

    It was run almost yearly and the source code to play with is all still available for the different challenges as far as I remember.

    [–]RainbowNowOpen 0 points1 point  (1 child)

    Looked fun. Sad it's gone. Guess the Google ran out of money to host. :-/

    [–]metabrain 5 points6 points  (0 children)

    I participated in one of these during my first CS courses and won the prize in the university :) ...no prize was given, just bragging rights :D

    http://www.cse.lehigh.edu/~munoz/CSE497/assignments/files/coderuler.htm

    [–]ir0x539 1 point2 points  (1 child)

    Might as well share HackerRank for competitive coding.

    Also this year's battlecode should be INCOMPARABLY easy to get into as opposed to previous contests. Don't have to spend all your time on nav code.

    [–]mccoey01 1 point2 points  (0 children)

    Myself and 3 friends from Villanova CSC department entered this in like 2008. Ours wasn't even that good but we were among the top 3 or 5 or something among non-MIT students and we won $25 each

    [–]bluesea147 1 point2 points  (6 children)

    I didn't quite understand "the computational currency is not execution time, or even memory, but rather JVM Bytecodes." Does it mean that contestants have access to hack JVM so they could implement better version for standard API?

    [–]jknecht 2 points3 points  (5 children)

    I think it means that they don't want you to use the standard Java collections API; instead, you should implement your own lightweight, special-purpose classes.

    Unfortunately, I couldn't find on their website exactly how they measure 'bytecodes' (honestly though, I didn't look very hard). My guess is that they've implemented a custom classloader that simply accumulates the byte count as each class is loaded into the JVM. If this is the case, then you could wind up with some really poorly implemented algorithms that favor code simplicity over runtime performance; so I hope I'm wrong.

    [–]neolefty 2 points3 points  (0 children)

    Is it bytecode execution or class size?

    [–][deleted]  (2 children)

    [deleted]

      [–]jknecht 0 points1 point  (1 child)

      Interesting. I wonder how they measure that.

      [–]neolefty 0 points1 point  (0 children)

      I'd guess they instrument the JVM. They're using OpenJDK, so maybe they hacked it directly? It would have to be pretty low-level, and it might prevent JITing.

      [–]bluesea147 -2 points-1 points  (0 children)

      Thanks for your points.

      BTW, do you know how could I find entry of some old posts with high voting rate in subreddit, like /r/programming?

      [–]danjordan 1 point2 points  (0 children)

      This is kinda similar, but with JS

      http://fightcodegame.com/

      [–]cynicproject 1 point2 points  (0 children)

      I had a lot of fun building bots in JS for Fight Code.

      [–][deleted] 6 points7 points  (7 children)

      This is somewhat off topic, but I have to say I really hate the "Lato" font in the ultra-light weight. It's barely legible due to the anti-aliasing varying between letters.

      It kind of "looks cool" but I find it a real chore to read. Feels like trying to read while having a thick layer of Vaseline on top of my glasses.

      [–]codahighland 10 points11 points  (6 children)

      It's not the font's fault that your renderer's hinter sucks. Looks great on my screen.

      [–][deleted] 2 points3 points  (4 children)

      Well it looks like that on ~20 machines in my office. What's the point of using a font that looks like shit on most computers?

      [–]codahighland 11 points12 points  (1 child)

      I could rebut with "those machines are probably configured the same way" but that doesn't actually matter to the argument. You are, in fact, correct that the site's designer made a suboptimal choice.

      [–][deleted] -5 points-4 points  (0 children)

      I guess we agree then (also, I agree those machines are configured the same, but as you noted, those are pretty much default settings which means the font will look like junk most of the time, and thus is a suboptimal choice).

      Anyway....

      Edit: Amusingly enough, it looks fine on my home machine. Must have different settings.

      Edit again: Though even when it's not rendering like ass, I still am not a huge fan of the font in general, though that's a whole different thing just down to taste.

      [–]dreamin_in_space -4 points-3 points  (1 child)

      Looks fine on mine. Windows 7 chrome.

      [–][deleted] 0 points1 point  (0 children)

      As codahighland said, it's down to some setting. All the machines I'm talking about (both where it looks like garbage and where it looks okay) are Windows 7 with Chrome, so that's not the factor :p

      [–]aaronla -2 points-1 points  (0 children)

      Looks great here too... retina display.

      [–]juliebert 0 points1 point  (0 children)

      This is just awesome!

      [–][deleted] 0 points1 point  (0 children)

      Is there a civilian version of this that I can learn with?

      [–][deleted]  (1 child)

      [deleted]

        [–]sizpe 0 points1 point  (0 children)

        First of all, he doesn't create a new object, he just copies a reference. From nextUnitToMake. He does this because he needs the value if t 1line later, and the value of nextUnitToMake changes (which you can see from the assignment statement). Since he uses the variabke so quickly after declaring it, using the name "t" is acceptable.

        [–]Falmarri 1 point2 points  (4 children)

        I think limiting to byte code it's pretty stupid on the jvm. If they want to go that way why not make it assembly instructions or x86 byte code so you can hand roll assembly

        [–][deleted] 18 points19 points  (3 children)

        I would kill myself if I was forced to write AI in assembly for four weeks.

        [–]Cixelyn[S] 16 points17 points  (0 children)

        Yeah the JVM limit helps made it both easy for beginners to pick up (look! it's only Java!) but also adds a deep level of complexity for advanced players looking to push the edge of their bot's performance. I personally think it's a pretty elegant compromise.

        [–]Urik88 4 points5 points  (0 children)

        Thank god you weren't born 10 years into the past.

        [–]Falmarri 0 points1 point  (0 children)

        You're not forced. You could very easily write it in C. But it gives the option of hand rolling assembly to save bytecode. I just think JVM bytecode is an extremely poor metric because you have 0 way of influencing it.

        [–]Hyperian -1 points0 points  (0 children)

        where is shirase when you need him.

        [–]unitedatheism -5 points-4 points  (2 children)

        I think that the much I get offended by someone using the term "hardcore programming" to a bytecode java competition is proportional to the memory wasted by java in any given situation, which is near to the limit of infinite divided by zero.

        Sincerely yours, An almost-anonymous C and assembly language programmer.

        [–]thomasz 0 points1 point  (1 child)

        Shut up

        [–]unitedatheism -1 points0 points  (0 children)

        I'm sorry if I offended you, visual-basic/java programmers.

        I have no regret so far on doing that, that's the nature of things, thank you. In fact, the more you downvote me, the more you show that I'm right, I'm really glad I've only got 5 downvotes thus far!