Mario AI Competition 110
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."
Uhhhh (Score:1, Redundant)
Re: (Score:1, Informative)
Too bad. Otherwise, you could send them one of the files from the TAS of SMB (available somewhere on here [tasvideos.org]) which is very probably frame-perfect at this point.
Re:Uhhhh (Score:4, Informative)
Re:Uhhhh (Score:4, Interesting)
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.
Re: (Score:2)
You dont need Mario to explore every last block in the game, alls you need is for him to finish the level, and if the AI is smart, it will do it without the use of items (stars, mushrooms, etc). You could just use a simple pathfinding algorithm with detection for enemies and obstacles, and let mario complete the entire level while running and stopping only to wait for certain events (such as those stairs moving up or down).
8^300 states is a lot of data and would never perform well in realtime AI calculation
Re: (Score:1)
Re: (Score:3, Informative)
Let's see if any of these guys have a go... (Score:5, Informative)
http://tasvideos.org/ [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.
Re: (Score:3, 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".
Re: (Score:2)
At the very least they're going to have a head start: they'll have a good grasp of the SMB physical simulation.
But does Infinite Mario Bros. use an identical simulation, down to the 1/16th or 1/256th pixel resolution that a lot of these games used to represent coordinates? And if so, are Nintendo's lawyers interested?
Re: (Score:1)
The competition doesn't use the original SMB game so the detailed physics may differ.
TASing does occasionally involve the use of bots but AFAIK they only brute force it. I think the entire autoscrolling part of Pulseman was done with a bot.
Re: (Score:1)
The prize seems kind of paltry (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.
Re: (Score:2, Informative)
I love how you included fuzzy logic in your list of otherwise hard to pull of AI functions.
Re: (Score:2, Funny)
Airfare and a hotel stay (Score:2)
Not to mention that you need to be present at the conference to claim your prize. Otherwise you just get a certificate.
In that case, the prize might not even cover airfare and a hotel stay.
Re: (Score:1)
And the worst thing is that the price might not even cover the conference registration fee!
But for the scientific value is quite interesting, moreover this is more aimed at the scientific community where researchers usually get sponsored by their institutions when publishing a paper and going at conferences
Re: (Score:3, 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.
Re:The prize seems kind of paltry (Score:4, Informative)
Re: (Score:2)
I'm sure it'll get plenty of interest from academic research groups, but no amount of prize money is going to tip it over into the "new research investment" category, which is normally the situation for using prizes to draw in academics.
Re: (Score:2)
A cash prize like that is more like a recognition of the achievement than an incentive to compete. Same way no-one goes after the Fields medal for the money.
Re:The prize seems kind of paltry (Score:4, Informative)
Re: (Score:1)
The temporal difference between the effort to build such an AI and 500 bucks seems a little too great.
Sure, because nobody's spending hundreds of millions of dollars in research and development for the 1-million dollar purse in the various X-Prize competitions (launch vehicles, lunar landers, autonomous vehicles, genomics, etc)
Oh, wait...
Thanks for the advanced notification! (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).
Re:Thanks for the advanced notification! (Score:4, Insightful)
Re:Thanks for the advanced notification! (Score:4, Informative)
Re: (Score:1)
Enemy stomping shouldn't be much harder then just normal jumping from platform to platform, as both are a simple matter of pathfinding and pathfinding happens to be well enough understood problem, at least when it comes to simple tilebased worlds. It gets a little trickier then static platforms, as the enemies move around, but not that much harder, as they behave completly predictable.
This is hard (Score:5, Interesting)
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?
Re: (Score:2)
Re: (Score:3, Funny)
Re: (Score:2)
Heh, maybe I'll enter. How hard can it be?
Very. As in "really fucking hard".
Re:This is hard (Score:4, 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.
Re: (Score:1)
Uh? Sorry if I misunderstood and you have some weird, religious-like definition of "learning" as something only God's special, soul-endowed children can do.
As far as I am concerned, any system that applies knowledge gained from experience to a situation in order to solve it has learned. A tic-tac-toe playing computer program that starts out not knowing the rules of the game but eventually ends up winning or playing you to a draw every time, without you doing anything except playing against it (or, in true W
Shard of glass in my delicious pie! *gruff* (Score:1)
First thought: "WOAH, this seems awesome! Can't wait to see what kind of crazy awesome stuff people come up with! Perhaps something like Air Man versus Genetic Algorithm [youtube.com]?"
Second though: "Hmm.. Emulating keypresses is easy as cake, but I wonder how their game passes info about Mario's environment to the controller? After all, this is a contest of skill and creativity, so there should be a system in place to allow code monkeys and 1337 programmers to contribute, regardless of their tools of choice."
Still thin
Re: (Score:1)
Re: (Score:2)
While I think Eclipse is great, I believe NetBeans [netbeans.org] is even better these days, at least for someone just picking up Java. The advanced features don't get in your way as much as with Eclipse.
Re: (Score:1)
Thanks for the friendly replies! ^^
Just to make one thing clear though, I'm not running for 1st place here. I just want to tinker around with this to see if I can make Mario survive any significant distance at all.
I'm thinking I might make a genetic algorithm type thing in which each string of "DNA" contains conditions and reactions. Like, conditions might be "blocking tile in position 1.0 (relative), no blocking tile in position 1.1" and the reaction would be "tap jump,press forward". Of course, represente
Re: (Score:1)
Netbeans.org all the way! (or eclipse if you wanna be like that)...
Re: (Score:1)
HAH! I also program loads of VB6 stuff! All your base, Lucy!
Anyways.. Yes, I know php isn't a compiled language. Yes, I know I'm a php scripter who enjoys php scripting. Does the fact that php is a language I enjoy immensely as a recreational platform for doing things like distributed processing MD5 brute forcing, the classic mona lisa genetic algorithm thingie and tic-tac-toe AI crap as well as making CMS/gallery/forum-systems for friends, a better helpdesk-system for work, a gatekeeper to merge several se
Re: (Score:1)
What you did ?
What makes you useful as a bland cog in a corporate machine ?
Following your passions with the tools available to you ?
Seems to me you've got some kind of superiority thing going on because you're better-with-computers ? Because you've sat through the many fun eclipse hours of now-where-the-hell-would-a-developer-hide-that-option. Because the language you know is compiled, ffs ? I don't think you're in a position to be talking about
Re: (Score:2)
We need to post a sign around here or something: "Please don't feed the trolls."
Re: (Score:2)
Re: (Score:1)
Except one thing, EMACS SUCKS!!!
Re: (Score:1)
I'm not even going to get into a genitalia-measuring match with you. Nope, na-ah, no way. You know what? Because I am 24 years old and I know what I can and cannot do. Since you seem to be having some issues comprehending what I am trying to say, I will (probably without much hope) try to clear things up for you.
I use php as a recreational platform. Why?
Re: (Score:1)
Sorry, I come on a bit strong when I get exited. I'm not saying Java isn't good, I'm not saying I can't write Java if I have to. My reaction was purely based on the fact that if I was hosting that sort of competition, I'd make a TCP-interface as the main option for anyone, regardless of platform or language could use. After all, with all the awesome possibilities here, it should be about the algorithm used not the language used for the implementation.
When you see the Shell eco-marathon, it's all about creat
Re: (Score:1, Offtopic)
A. She's hot as hell
B. I'm not exactly Johnny Depp or Brad Pitt
C. I don't have a very deep wallet =(
I'm guessing my 16cm, all-in-all pretty average self somehow manages to keep her happy ^^,
Oh, btw.. From what I know both from personal experience and what friends of both genders tell me, neither the size nor the speed matter all that much without stability, and that o
Re: (Score:1)
Re: (Score:1)
With the way you get into these personal attacks, I'd love to see what you look like. I'm a perfectly normal guy who tries to stay in shape and keep my diabetes under control. I don't use linux because.. well.. Like c/c++, eventhough I am fairly competent at it, for most my needs it would be a whole hell of a lot more effort to use linux for day-to-day activities than Windows.
And by "normal" I don't mean 20kg++ overweight, and by "diabetes" I mean the type (type 1) you get for no spesific known reason, not
Re: (Score:1)
Heh, I'm not American, but the eating habits and general ignorance they have over there seem to be spreading, just like every other type of "americanization" (language, fast-food, coke, advertising, etc.). 10 years ago nearly everyone I knew was into football (soccer), karate, or something and everyone used their bikes to get around if the weather allowed it.
These days, I know one person who works out actively (as in, needing a shower and change of clothes), and that is the guy who owns the basement gym I w
Re:Shard of glass in my delicious pie! *gruff* (Score:4, Informative)
Um... no.
Re: (Score:1)
Uuuh! Awesome! Seriously, how the hell did I not see that? It's not like that site is all that content heavy. o_O
I might just suffer from some sort of sneaky invisible ninja selective blindness but I can't seem to find any info on this TCP interface. Curse you, sneaky invisible ninja selective blindness!
Re: (Score:3, Interesting)
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.
Re: (Score:2)
Not only is it expressive, but there are lots of useful AI and Machine Learning libraries written in it. Java may get a bad reputation from a lot of people, but it is heavily used by academics.
Re:Shard of glass in my delicious pie! *gruff* (Score:4, Informative)
Re: (Score:1)
Ok ok, I was too quick to post. I get it *wanders off to corder with both feet firmly lodged in mouth*
Luckily, I never cared much about making an ass of myself, "thinking before speaking is like wiping your ass before you.. well, you get the idea" and all. So I'll just ask and hope I get an answer and not a painful reaming.
How do I launch the network agent? I've tried everything I can find here [google.com] but at best it launches the game in keyboard control mode. Do I just suck? Should it be blatantly obvious how to g
Re: (Score:2)
thinking before speaking is like wiping your ass before you.. well, you get the idea
It sounds like whoever coined that idea really should have thought before they spoke. Unless they were being intentionally ironic.
too short. (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
Re: (Score:2, Insightful)
Consider just doing it for fun then, the $500 price isn't worth whining about anyways.
Re: (Score:2)
While I admit the documentation is a bit on the short side, it should be perfectly enough to get started. All you need to do is look at the Agent interface, and there you have the format of the data the game is giving to you.
Re: (Score:2)
Re: (Score:1)
It is amazing [youtube.com] what less whining and more working can achieve.
That's nothing. (Score:1)
Re: (Score:3, 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.
Nintendo's AI (Score:1)
Re: (Score:2)
Unfortunately, New Super Mario Bros. Wii is using a fixed level... So it's not so much AI as it is preprogrammed response. It likely wouldn't know how to deal with a randomly generated level.
Neat! (Score:2, Interesting)
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 programme
Mechanical Turk? (Score:2, Funny)
But really, any approach is fair game
Just how random is random? (Score:1, Interesting)
Just how random is the 'random' level generator. If the AI is beaten by weaker AI because another team managed to exploit pattens in pseudo-randomness, then your competition results wouldn't really mean anything
2009 Reinforcement Learning Competition (Score:3, Interesting)
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
Re: (Score:1)
It would be more interesting to make a more complex game/simulator, however the problem with this is it rapidly raises the bar for entry into the competition. Amatures without the necessary computing power could end up being rather left out.
A game where the input space is larger and less predictable, which also has scope for live tactical and/or strategic decisions would be interesting. How about a 3D, fully Newtonian physics space combat simulator in a chaotic asteroid field. Basically robocode++. The agen
This has been done for the original asteroids (Score:1)
Asteroids played by robots. Contest: http://www.heise.de/ct/projekte/machmit/asteroids/ [heise.de] Results: http://www.heise.de/ct/creativ/08/02/ergebnisse/ [heise.de] (push on the play buttons to see the videos)
Can humans even do this reasonably? (Score:2)
Re: (Score:2)
An AI could have some memory of the level too, its really not hard to just save the actions up to where it died, keep a state of what the area looked like and then plan ahead for its second try.
Re: (Score:3, 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?
Most difficult yrs in marriage R after the Wedding (Score:1)
Re: (Score:2)
Stop spamming already.
Re: (Score:2)
Re: (Score:1)
Actually you are quite wrong to say CUDA is irrelavent. Not all the AI techniques that could be applied to this problem require heavy branching. Neural networks, for example, can have minimal branching and will be considerably accelerated using CUDA/OpenCL.