Slashdot Mirror


Mario AI Competition

togelius writes "We're running a competition to see who can program the best AI for a version of Super Mario Bros. It's about deciding what to do at each time step — run, jump, shoot etc. — based on a description of the platforms, items and enemies around Mario. This is hard. It's so hard we believe that some sort of machine learning algorithm will be necessary to reach good playing performance. But really, any approach is fair game. We welcome hard-coded submissions, commercial AI programmers, academics and amateurs alike. Whoever wins, it will be really interesting. The competition is associated with two IEEE conferences, and there are cash prizes available for the best submissions."

27 of 110 comments (clear)

  1. Re:Uhhhh by Toridas · · Score: 4, Informative

    If you had read TFA you'd know that they are using the game Infinite Mario Bros, which has randomly generated levels.

  2. Let's see if any of these guys have a go... by VinylRecords · · Score: 4, Informative

    http://tasvideos.org/

    TAS = Tool Assisted Speed Runs. Basically you program controller inputs (at very slow speeds) and then play them back at 1:1 speeds and you watch a pre-programmed controller run through an entire game as quickly as possible. There are runs for basically most of the more popular NES and SNES games as well as other games. Pretty interesting stuff and usually a daunting task is creating a TAS of a game.

    1. Re:Let's see if any of these guys have a go... by Sockatume · · Score: 2, Insightful

      I'm doubt that would count, seeing as you've just got a human doing the decisions. It's "artificial intelligence" not "artificial fingers".

      --
      No kidding!!! What do you say at this point?
  3. The prize seems kind of paltry by BadAnalogyGuy · · Score: 5, Insightful

    500 dollars for the winner, but you are expecting evolutionary neural nets, genetic programming, fuzzy logic, and temporal difference learning.

    The temporal difference between the effort to build such an AI and 500 bucks seems a little too great.

    1. Re:The prize seems kind of paltry by Anonymous Coward · · Score: 2, Informative

      I love how you included fuzzy logic in your list of otherwise hard to pull of AI functions.

    2. Re:The prize seems kind of paltry by TheCowSaysMooNotBoo · · Score: 2, Funny

      Not to mention that you need to be present at the conference to claim your prize. Otherwise you just get a certificate.

    3. Re:The prize seems kind of paltry by Sockatume · · Score: 2, Insightful

      On the other hand offering a larger prize for a competition of this nature is pointless. I doubt that you'd get MIT to devote a research grant even if it was offering up $500,000.

      --
      No kidding!!! What do you say at this point?
    4. Re:The prize seems kind of paltry by jtogel · · Score: 3, Informative

      Actually, this is not true. The competition is mainly aimed at academic researchers, who work with these techniques anyway, and for whom 500 dollars (into your own pocket, not your research fund) is not a completely insignificant amount. But of course, the main motivation for researchers to take part is of course the recognition. And of course others than academics are very welcome to take part as well! We're very much looking to broaden the participation.

    5. Re:The prize seems kind of paltry by jtogel · · Score: 3, Informative

      In previous competitions on simulated car racing AI we've had submission from Imperial College, National University of Singapore, Politecnico di Milano, University of Birmingham and other internationally leading universities. So a submission from MIT would not surprise me the least.

  4. Thanks for the advanced notification! by risinganger · · Score: 5, Insightful

    We welcome hard-coded submissions, commercial AI programmers, academics and amateurs alike.

    Yet you only post this on slashdot with 13 days before the deadline. You couldn't have posted it here back in May? (the earliest date a post seems to have in your google group).

    1. Re:Thanks for the advanced notification! by TheRaven64 · · Score: 3, Insightful

      Maybe he submitted it back in May and it was waiting since then for an 'editor' to approve it?

      --
      I am TheRaven on Soylent News
    2. Re:Thanks for the advanced notification! by jtogel · · Score: 3, Informative

      We did some advertising for this within the academic research community in spring, but for various reasons we were a bit late with reaching out beyond academia. Definitely an oversight on our part. Still, the deadline for the CIG phase (you don't have to submit to the first phase) is almost a month away, and if the competition is a success this year we'll run it next year as well.

  5. This is hard by phantomfive · · Score: 4, Interesting

    This is hard. I think if I were going to do it, I would break it up into steps.

    First, I would teach the AI to move around on flat surfaces. Then I would teach it how to navigate over holes. Then I would add pipes and things it would need to jump over. Finally I would add random bricks. These are hard because if you jump underneath them, you might bump your head and change your trajectory.
    Secondly I would start adding bad guys. Start with goombas, then add green turtles, then red turtles, then piranha plants, then bullets.

    This is hard, the AI will need to learn to recognize certain features of the landscape, which is something humans are really good at doing. It will have to learn things like, "if I stand next to a tube, the piranha plant will not come out." It will have to learn that sometimes a short hop is appropriate, and sometimes a long jump is better. It will have to recognize that if a red turtle is on a ledge, it doesn't need to worry about it falling, and it can run underneath at full speed.

    Heh, maybe I'll enter. How hard can it be?

    --
    Qxe4
    1. Re:This is hard by hesiod · · Score: 3, Informative

      even the most advanced AI doesn't learn.

      Depends how you define that. If human learning is just based on strengthened signals between synapses, then a weighted neural net certainly DOES learn.

    2. Re:This is hard by BJ_Covert_Action · · Score: 2, Funny

      My AI's level difficulty processing goes to 11...

  6. too short. by tetha · · Score: 5, Insightful

    I highly like this competitions idea, but I won't participate, because the deadline is far, far too soon.

    I mean, I am supposed to understand their framework and implement, test and tweak an artificial intelligence for a pretty complicated task like this in a month (let alone, 2 weeks), with my rusty java, rusty AI-knowledge (I'd try emergent behaviour, probably)? Sorry, but this is just plain impossible, since there is enough work to do from the university and other hobby projects. Give me until, like. Christmas and I'd try.

    Plus, the time shortens even further, as it appears that there are documentation issues, so one would probably have to work out how the game state is given to the AI.

    So overall: very interesting, but too short for someone who actually has other work to do

    1. Re:too short. by WarpGiGA · · Score: 2, Insightful

      Consider just doing it for fun then, the $500 price isn't worth whining about anyways.

  7. Re:Shard of glass in my delicious pie! *gruff* by RegularFry · · Score: 3, Informative

    "Java only? What the hell !?"

    Um... no.

    Controllers written in any language are welcome, as long as they can be interfaced to an unmodified version of the marioai package - directly if written in Java, through the TCP interface otherwise. In any case, the controllers must be able to run in real time on an Intel machine running either Mac OS X (preferred), Ubuntu Linux or Windows XP.

    --
    Reality is the ultimate Rorschach.
  8. Re:Uhhhh by TheRaven64 · · Score: 3, Interesting
    Note, however, that mario levels are composed of blocks of something like 15x20 visible at one time. Each of these has a small number of relevant states (wall, enemy, hazard, tube), let's say 8 possible states. That gives 8^300 possible states for the visible game. From each of these states, you have a small number of options. This means that infinite Mario is really finite Mario with a really large set of levels.

    Brute forcing this is not really feasible, but there are probably a large number of states that you can treat as equivalent. For example, you don't care about whether a block is destructible if you are above it, you don't care about the state of any tile under the one you are standing on, and so on.

    --
    I am TheRaven on Soylent News
  9. Re:Shard of glass in my delicious pie! *gruff* by TheRaven64 · · Score: 2, Interesting
    Java is a language. It's a descendant of Smalltalk via StrongTalk/Objective-C with syntax inspired by C++.

    This competition is about algorithms. The implementation language is largely irrelevant. Java is far from my favourite language, but it's expressive enough for a project of this nature.

    --
    I am TheRaven on Soylent News
  10. Re:Shard of glass in my delicious pie! *gruff* by jtogel · · Score: 3, Informative

    Personally, I love Java, but I recognize that not everybody does. As another poster has already commented below, any language is permitted as long it can somehow interface to the game code. To begin with, there are several languages other than Java that run on the JVM (Scala, for example) and these can interface directly to the code. You can also interface via the provided TCP interface; we've included a Python example. Or via JNI (Java Native Interface) for c programs.

  11. Neat! by The_Duck271 · · Score: 2, Interesting

    Programming games are fun!

    However, I've yet to see a such a contest in which the successful entries used AI techniques rather than handcoded decision-making. My money says the winners of this will be handcoded and possibly tuned automatically, and not based on neural networks or genetic programming or whatever. I suspect this is true because these games are set up so that the game mechanics and the outlines of good strategy are very intuitive to humans, and so it's most efficient for the human programmer to encode that knowledge into the controller. Then if there's some minor detail that the programmer doesn't know how to optimize, like "what is the exact threshold from which I should switch from strategy X to strategy Y", then that can be found by running a lot of games automatically.

    That's how I'll be working, at least; in any case, I don't think I could write a decent learning algorithm for something like this in a month (or probably even given a lot more time).

    I hope this isn't considered spam, but those interested in this might like to know about some other programming games I've enjoyed:
    http://jrobots.sf.net/ (Java clone of CRobots)
    http://robocode.sourceforge.net/ (More complicated version of above)
    http://sillysoft.net/ (Risk game that accepts AI plugins)

  12. Mechanical Turk? by GranBurguesa · · Score: 2, Funny

    But really, any approach is fair game

  13. 2009 Reinforcement Learning Competition by gizmoguy4242 · · Score: 3, Interesting
    Just thought I'd point out that we also did this in the 2009 Reinforcement Learning Competition (I was the general chair):

    http://2009.rl-competition.org

    We also used Infinite Mario Bros, but combined it with the RL-glue coding framework to make the interface easier. That way, a well-coded agent is automatically compatible with any other domain that is RL-glue compatible.

    The prizes were also comparable: ~$450 for the first place team, ~$250 for the second place team.

    The results were interesting: far from developing interesting and novel RL algorithms, most competitors used clever feature engineering combined with dimensionality reduction to reduce the full Mario problem to a simpler one that could be solved efficiently using existing RL algorithms that are robust and well understood.

    One of the big lessons that we took away from this was that we haven't solved the mechanism design problem of competitions in AI. While Mario sounds like a good "grand challenge" problem for RL / AI, it turns out that simple heuristics work pretty well. I think this is a common problem for most of these competitions -- there's the Trading Agent Competition, there's Netflix, there's the General Game Playing Competition, etc. They all have the same goals, and they all have the same problem: competitors engineer algorithms to solve the competition, not to spur progress in general AI. These games are all a proxy for what we really care about (like the Turing test), and the proxy isn't perfect (like the Turing test).

    I think the only way to get around this is to craft a domain that mimics the real world, because then if anyone "solves the competition," you've made progress on what you really care about.

    It would be interesting to design a competition with these goals in mind. Maybe an extraordinary complex simulator based on a physics engine (Bullet or Havok) would be a step in the right direction -- different objects with continuous, high-dimensional state spaces and complex material properties (some are soft, some are rigid, some break, etc); interesting physical interactions between objects (collisions, joints, hinges, stacking, breaking, etc.); multiple levels of spatio-temporal abstraction (from low-level motor control to abstract tasks) and a strong vision component. Now that would be a cool competition!

    David Wingate
    wingated@mit.edu

    --
    ---- Computers are useless. They can only provide an answer.
  14. Re:Original author here. by Hatta · · Score: 2, Insightful

    So how does it test that a random level is completable? Seems to me that if there were an algorithm to do this, this competition would be moot. If there's not, there's going to be a lot of trouble with impossible random levels.

    --
    Give me Classic Slashdot or give me death!
  15. Re:Can humans even do this reasonably? by Bakkster · · Score: 2, Insightful

    Can humans even do this reasonably?

    No, but shouldn't a computer be able to do it better? Perfect concentration, perfect timing, the ability to make split-second decisions, no visual limitations of how much of the screen can be seen; computers have the potential to do far better. Isn't that the idea?

    --
    Write your representatives! Repeal the 2nd Law of Thermodynamics!
  16. Re:Uhhhh by alexandreracine · · Score: 3, Informative

    Here is one guy doing it. Pretty impressive... http://www.youtube.com/watch?v=0s3d1LfjWCI

    --
    No sig for now.