Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Mario AI Competition

Soulskill posted about 5 years ago | from the must-be-on-mushrooms-when-you-write-the-code dept.

Programming 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."

cancel ×


Sorry! There are no comments related to the filter you selected.

but can they come up with an AI... (-1, Troll)

Anonymous Coward | about 5 years ago | (#28953047)

...creative enough to make a unique second psot?

Advertising (-1, Offtopic)

Anonymous Coward | about 5 years ago | (#28953067)

How come my Adblock plus didnt detect this "advertisews" to block it?

Uhhhh (0, Redundant)

Idiomatick (976696) | about 5 years ago | (#28953189)

Can I keylog myself beat the whole game on an emulator and submit the log? ... Seems kinda silly having ai for games that have nothing random in it.

Re:Uhhhh (0)

Anonymous Coward | about 5 years ago | (#28953209)

Actually they're using a variant of the Infinite Mario game which generates a random level each time.

Re:Uhhhh (1, Informative)

Anonymous Coward | about 5 years ago | (#28953231)

Too bad. Otherwise, you could send them one of the files from the TAS of SMB (available somewhere on here [] ) which is very probably frame-perfect at this point.

Re:Uhhhh (4, Informative)

Toridas (742267) | about 5 years ago | (#28953221)

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

Re:Uhhhh (3, Interesting)

TheRaven64 (641858) | about 5 years ago | (#28954755)

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.

Re:Uhhhh (1)

jerep (794296) | about 5 years ago | (#28957525)

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 calculations anyways.

Re:Uhhhh (1)

deadkennedy (1594629) | about 5 years ago | (#28959199)

I think exploring some various state machine configurations would help here.

Hurr, hurrr, what article? (0)

Anonymous Coward | about 5 years ago | (#28953249)

"We are basing the competition on a heavily modified version of the Infinite Mario Bros game by Markus Persson. That game is an all-Java tribute to the Nintendo's seminal Super Mario Bros game, WITH THE ADDED BENEFIT OF ENDLESS RANDOM LEVEL GENERATION."

Re:Uhhhh (-1, Troll)

Anonymous Coward | about 5 years ago | (#28953273)

Yes, you can. If there's a prize for "asshat that doesn't RTFA", you may already be a winner!

Let's see if any of these guys have a go... (4, Informative)

VinylRecords (1292374) | about 5 years ago | (#28953283) []

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:Let's see if any of these guys have a go... (2, Insightful)

Sockatume (732728) | about 5 years ago | (#28953537)

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:Let's see if any of these guys have a go... (0)

Anonymous Coward | about 5 years ago | (#28953591)

At the very least they're going to have a head start: they'll have a good grasp of the SMB physical simulation.

Re:Let's see if any of these guys have a go... (1)

tepples (727027) | about 5 years ago | (#28955931)

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:Let's see if any of these guys have a go... (1)

skelterjohn (1389343) | about 5 years ago | (#28956817)

The game was coded up from scratch, as far as I know. It does use Nintendo-owned graphics, though :) But as he makes no money distributing his game (it is released into the public domain) I doubt the Nintendo lawyers would care.

Re:Let's see if any of these guys have a go... (0)

Anonymous Coward | about 5 years ago | (#28958201)

I dunno. I didn't read that far. I just read 'a version of Super Mario Bros.' and assumed that it would be ... Super Mario Bros.

Re:Let's see if any of these guys have a go... (1)

KDR_11k (778916) | about 5 years ago | (#28961265)

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:Let's see if any of these guys have a go... (1)

astrowill (1593647) | about 5 years ago | (#28953639)

True, but TFA states that they are running "with the added benefit of endless random level generation".

The prize seems kind of paltry (5, Insightful)

BadAnalogyGuy (945258) | about 5 years ago | (#28953345)

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:The prize seems kind of paltry (2, Informative)

Anonymous Coward | about 5 years ago | (#28953369)

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

Re:The prize seems kind of paltry (2, Funny)

TheCowSaysMooNotBoo (997535) | about 5 years ago | (#28953485)

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

Airfare and a hotel stay (1)

tepples (727027) | about 5 years ago | (#28955995)

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:The prize seems kind of paltry (2, Insightful)

Sockatume (732728) | about 5 years ago | (#28953551)

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 (3, Informative)

jtogel (840879) | about 5 years ago | (#28955021)

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.

Re:The prize seems kind of paltry (1)

Sockatume (732728) | about 5 years ago | (#28955771)

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:The prize seems kind of paltry (0)

Anonymous Coward | about 5 years ago | (#28960729)

Could you answer a few questions about IP rights for this competition?

Does the code have to be open for public inspection, or can I send you an encrypted library with a java wrapper?
Are you going to wave your rights to disassemble or otherwise inspect the binary to understand the methods (other than scoring its performance)?
Will you agree not to re-use or redistribute it for any purposes other than on this one occasion?

Am I permitted to attach a restrictive license to my code?

Thanks for your attention. I realize these are non-issues for most of academics working in the field, but not for me.

Re:The prize seems kind of paltry (1)

SoVeryTired (967875) | about 5 years ago | (#28954133)

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 (3, Informative)

jtogel (840879) | about 5 years ago | (#28954975)

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.

Re:The prize seems kind of paltry (1)

damien_kane (519267) | about 5 years ago | (#28956269)

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! (5, Insightful)

risinganger (586395) | about 5 years ago | (#28953471)

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! (3, Insightful)

TheRaven64 (641858) | about 5 years ago | (#28954779)

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

Re:Thanks for the advanced notification! (3, Informative)

jtogel (840879) | about 5 years ago | (#28955063)

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.

Re:Thanks for the advanced notification! (0)

Anonymous Coward | about 5 years ago | (#28956031)

Hey - it's a great idea though... it's leaving me wanting to try my hand at it! What about a Prolog CSP (Constraint Satisfaction Problem) approach? Constraints would include time, avoiding pits & various baddies, stomping on baddies when possible, working for power-ups and one-ups, etc...

Me thinks the really tricky part would be getting the AI to recognize when you have to actually stomp an enemy to extend the distance of your jump to reach a distant platform. Seeing as this technique can be chained together... hrm... leaves a whole bunch of probabilities open, doesn't it...

Re:Thanks for the advanced notification! (1)

grumbel (592662) | about 5 years ago | (#28957591)

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 (4, Interesting)

phantomfive (622387) | about 5 years ago | (#28953507)

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?

Re:This is hard (1)

jtogel (840879) | about 5 years ago | (#28955095)

Yeah, please enter! You can set the level difficulty from 0 to 10, and choose whether to have enemies in or not (with the world paused/unpaused option), so basically you can evaluate your solutions first on a paused level with difficulty 0 (few holes and few obstacles) and then incrementally increase the difficulty.

Re:This is hard (2, Funny)

BJ_Covert_Action (1499847) | about 5 years ago | (#28960815)

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

Re:This is hard (-1, Troll)

Anonymous Coward | about 5 years ago | (#28956253)

Of course by teach you mean, program it to do something specific right? Because, even the most advanced AI doesn't learn.

Re:This is hard (3, Informative)

hesiod (111176) | about 5 years ago | (#28956477)

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:This is hard (1)

plastbox (1577037) | about 5 years ago | (#28956741)

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 Wargames style, pitting it against itself), has most assuredly learned. Ok, so it's not infinitely adaptable. It likely can't do crap outside of the world (board and rules) it was "raised" in. I'd argue that this applies to you as well. I mean, imagine all of a sudden being dragged into some weird n-dimensional world where time and space either don't exist or exist completely differently. You think the aliens inhabiting that place would classify you as particularly intelligent, not having the body to affect things right, the senses to sense things right or the brain to comprehend things right (if at all)?

Granted, the above might be a stupid example but there exists both software and hardware that learns. Nothing anywhere close to human/animal (same thing, really) "wetware" in terms of flexibility or.. well.. any other measure of intelligence. Still, that doesn't mean they don't learn and adapt!

Cheerio, mate!

Re:This is hard (1)

Lisandro (799651) | about 5 years ago | (#28958047)

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

Very. As in "really fucking hard".

consider CUDA programming (-1, Offtopic)

crazybit (918023) | about 5 years ago | (#28953511)

for a project like this, CUDA can give a great amount of processing power for a very low price.

What is CUDA? []

Re:consider CUDA programming (1)

X0563511 (793323) | about 5 years ago | (#28953805)

Stop spamming already.

Re:consider CUDA programming (1)

TheRaven64 (641858) | about 5 years ago | (#28954791)

Are you an idiot who doesn't realise that this has absolutely no relevance to the discussion and that CUDA is incredibly poorly suited to the kind of branch-heavy coding that a solution to this is likely to involve, or is nVidia paying you to spam?

Re:consider CUDA programming (1)

CnlPepper (140772) | about 5 years ago | (#28955335)

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.

Whaa? (1)

sonicmerlin (1505111) | about 5 years ago | (#28953527)

Did someone say money? Drool... Seriously though, I hope the contestants aren't in it for the prizes.

Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28953703)

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 [] ?"

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 thinking: "Java only? What the hell !? I don't like Java! Ok, so I know Java probably doesn't suck as much as the purist c anti-Java crowd would have me believe, but I still think it's bloatware compared to c/c++ or even .Net stuff and I'm still kind of stuck on the ol' saying "Claiming Java is good because it works on all OS' is like claiming anal sex is good because it works on all genders.". I do ok for a n00b c/c++ programmer, I can monkey my way through anything with c/Pascal or BASIC syntax and an IDE, I'm an effin wiz at php, but of course this otherwise awesome competition has to be Java-only. For the love of all that is retro, why isn't this "heavily modded version" of the game made with an interface that would let me talk to it with good old QBASIC or c (which would be time appropriate ) or any other language for that matter!?

This challenge is still too tempting for me to just write a Flamebait-only reply though.. Could any of you brilliant, experienced guys point me in the direction of a Java dev tool (compiler, IDE, etc.) that is appropriate for someone who runs Windows on their main machine and has little to no experience doing Java development? I could really need something that is at least simple to set up and use so all I have to wrestle with is getting used to the actual language.


Re:Shard of glass in my delicious pie! *gruff* (1)

Arthurio (1392181) | about 5 years ago | (#28953943)

get eclipse [] and jdk - that's it. happy coding!

Re:Shard of glass in my delicious pie! *gruff* (1)

andi75 (84413) | about 5 years ago | (#28954007)

While I think Eclipse is great, I believe NetBeans [] 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:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28954049)

I second that motion! :)

also for tons of resources to get ya started...

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28954865)

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, represented as much as possible in a format that can easily and freely be mutated to change/add to/remove from condition/event-sets, add a new condition/event-set or remove one. Though, even if I could implement something like that smoothly enough to not get locked in some local maxima it would take a lot more than a week or two to both develop and let the evolution run it's course.

Re:Shard of glass in my delicious pie! *gruff* (1)

WarpGiGA (647974) | about 5 years ago | (#28954631) all the way! (or eclipse if you wanna be like that)...

Re:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28953973)

Sorry, as a PHP "programmer" I think this is a little out of your league.

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28954749)

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 separate systems at work into one site with AD authentication, etc. exclude the possibility of me not being a pathetic script kiddie who thinks he's 1337? (yes, I know I wrote "n00b", zeros and all. my bad)

I did mention, did I not, that I have some experience with c/c++? I've done a ton of fun stuff in QBASIC back when I didn't know any better and I still use VB6 now and then because it's simplicity make it pretty much perfect for quick, ugly proof-of-concept/test/hobby project stuff. I've also tinkered enough with Delphi to know my way around that syntax fairly well and at least VB.Net is easy enough that if I was making software for other people, I'd jump from VB6 to to at least not be lagging a decade and a half behind.

Offtopic :I remember back in school.. One of my friends who (reads Linux conf files for a hobby) and I decided to write a chat program to soothe our lack of stimulating activities (we were in school, after all). He started writing his client in c++ on a terminal, I used VB6. Somewhat long story short, my program was in a perfectly usable state before he had the gui working proplerly and the program connecting to my server. Right tools for the right job and so on. ^^

Feel free to piss on my parade all you want. I really don't care (despite the stupidly long reply. I'm bored, ok?). I know that if I want to program Java, I will program Java. Obviously nowhere near as well as a seasoned Java developer but my general programming (yes, that would include simple scripting) knowledge (and Google) is enough to let me tackle most new languages fairly well for a noob.

Re:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28955253)

Your ignorance and lack of knowledge really shines through that long rant of yours. I'm sorry, no matter how you look at it, if you use PHP "as a recreational platform", you will never be able to move on to the "next level" of software development. If the language is not suited for it, *you* are not suited for it.

I don't think you are going to respond again, but let me tell you what's going to happen here.

You will download Eclipse, perhaps manage to get the JDK as will. After finally pulling of the installation after a few hours, you start the IDE, find yourself lost and without further guidance promply give up, telling yourself Java is a worthless complex language anyway.

But, actually, I don't blame you. Because there's no way a script programmer with no other experience with staticly typed OO-heavy languages other than that small course in high school is able to pick one up and become productive in less than 6 months. Also, the language is the last of your concerns here. What are your background in algorithms, or even data structures? Just give up, you are just an embarassement to yourself.


Re:Shard of glass in my delicious pie! *gruff* (1)

mrrudge (1120279) | about 5 years ago | (#28955919)

I'll reply, AC, just wondering, what's the next level ?

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 modern scripting languages ? Ignorant of would be a better description.

If you were confident in your abilities, you would encourage others, knowing that you might learn something too. As it is you're a fearful troll lashing out from the safety of your cowardice to keep your denial that the few things you've learned somehow make you a superior person. If understanding OO design and knowing a few algorithms is all you have to be proud of then your life must be very lacking indeed.

Back in your hole, go on, shoo.

Re:Shard of glass in my delicious pie! *gruff* (1)

hesiod (111176) | about 5 years ago | (#28956751)

We need to post a sign around here or something: "Please don't feed the trolls."

Re:Shard of glass in my delicious pie! *gruff* (1)

phantomfive (622387) | about 5 years ago | (#28959885)

I can't speak for him, but I can tell you, in many cases, getting to the next level is a matter of realizing that the language doesn't actually matter all that much, it's all about the person and how well they organize their code. Most decent programmers I know can pick up a language in a week pretty well, and start doing useful things the first day, and moving from C++ to Java is almost like moving from one pond to another, they are so similar. So whining about the language gets the same kind of eye-rolls as whining about vi or emacs. Sure they are different, but not really.

Re:Shard of glass in my delicious pie! *gruff* (1)

holmedog (1130941) | about 5 years ago | (#28961589)

Except one thing, EMACS SUCKS!!!

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28959379)

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?

  • Because it's a very rich language and still fairly snappy for a scriptet language
  • It's a very light and fast tool to play around with when a cool ideas drops into my head, such as brute forcing hashes and spreading the load over several free webhosts. I think we can all agree that that is rather useless, though doubtless a fun way to spend an evening or two with a fellow geek and good friend!
  • Because combined with a little jQuery, some MySQL and a backend (yes, written in a compiled language), it's quite easy to make good looking, extremely accessible front ends for things like media playback at our place, as well as a little electronics (tv-remote, etc.)
  • Because my seniors at work see the huge advantage of throwing out a lot of their old tools and instead having me make them web-based and integrated with other systems, so they can be accessed pretty much where ever my colleagues are.

Also, would you be so kind as to describe this "next level of software development" you have mastered? My previous job was as a developer at a company that makes one of Europe's most used software packages for debt collection companies. Here's a hint: I worked with 2 different compiled languages and Oracle, MSSql and Access *shudder* databases. And no, I didn't get canned for being a script kiddie like you are probably thinking. I resigned, as I was tired of being the lone developer left on the project, with management that was completely unable to act as a buffer between me and stressed out clients. Before that job, like now, I work as an IT-administrator/consultant/whatever-the-correct-title-is-these-days, for which I do in fact have an education. Do I love it? Meh, it's ok, but at least I can enjoy programming and scripting when I get home now.

And just out of curiosity.. What makes me come of as "ignorant and lacking knowledge"? I have not technically made any errononous statements except about the challenge being Java only, and I quickly admitted and excused my temporary selective blindness. I have not claimed to be unnaturally skilled in anything (except php, in which I am quite skilled) nor have I willfully insulted you. You, on the other hand, attack me and call me ignorant. You claim to be so much better than me that you are entitled to act like a complete asshat, and best of all, you post your bullshit superiority rant as Anonymous Coward.

Have I nice day!

Re:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28955505)

Also, how old are you? If you are not in high school, I recommend you to start paying attention to how you present yourself. With the way you are writing, you come off as quite immature unfortunately. Your grammar and spelling are good however, but you need to learn how to use the words as well.

Re:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28956603)

I don't see why you're making such a big deal about which language you use. Unless you're using a functional programming language or whatever, most of what you do is exactly the same in any language (after you have set up your data structures at least), just with slightly differering syntax. I have worked with several versions of BASIC, C, C++, Delphi, Perl, PHP, JavaScript, etc. and after the first three or four languages I stopped getting hung up on the differences and just got on with it (obviously having to consult a reference from time when I needed to use a new feature or library for whatever language I was using). I did a tiny bit of Java/Eclipse at Uni as part of the course, it wasn't a big deal.

For a competition like this I'd expect that they give you some kind of template to start working with anyway, so most of the heavy lifting should be done already and you just put in the AI algorithms that you want. This is how I made bots for Counter-Strike way back when. Even though I had only had C experience rather than C++, I found it very easy to work with the HPB Bot template because all the necessary classes etc already been set up.

I expect if you are that bothered, you could even set it up so that it uses a DLL written in your favourite language rather than having to do all the coding in Java.

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28959795)

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 creativity and the builders skill, not what brand of screwdrivers they used.

Do I really fail so badly at making my points? I have enough experience to think about programming the same way you do. Language is the tool to do the job but once you're good enough at the job, which tools you use don't matter that much anymore (though I still think php will always be my forté, simply since I love it). I openly admit that I am in no way skilled or experienced with java, so it annoys me that they have not made a working, documented universal interface that would allow me to stay in my comfort zone instead of trying my hand at a hard problem while getting used to a new language.

I like anal sex, you insensitive clod (0)

Anonymous Coward | about 5 years ago | (#28954015)

"Claiming Java is good because it works on all OS' is like claiming anal sex is good because it works on all genders."

If you think that small and fast is preferable... Your girlfriend has not been totally honest with you.

Re:I like anal sex, you insensitive clod (1, Offtopic)

plastbox (1577037) | about 5 years ago | (#28954295)

Just so happens, my girlfriend and I have been together and lived with each other for two years now. She might be lying but considering
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 often comes down to skill more than tools. ;)

Re:I like anal sex, you insensitive clod (0)

Anonymous Coward | about 5 years ago | (#28955501)

Yeah, we all believe you.

Re:I like anal sex, you insensitive clod (1)

plastbox (1577037) | about 5 years ago | (#28958707)

I know, I know ^^ I also work out. As in, at the gym, not with our Nintendo Wii. =O

Re:I like anal sex, you insensitive clod (0)

Anonymous Coward | about 5 years ago | (#28962831)

Did you seriously use "work out" as something to brag about? My god, I'd love to see what you look like. Like your average PHP programmer I assume, fat with a neckbeard, masterbating to Linux kernel release notes. You do realize right that most people work out in one way or another and saying that yourself do it is like saying "I take a shower regularly". Hmm, on a second note, perhaps you will have a hard time relating to that.

I have seen my share of pathetic people on Slashdot, but you seriously take the cake.

Re:Shard of glass in my delicious pie! *gruff* (0)

Anonymous Coward | about 5 years ago | (#28954021)

I still think it's bloatware compared to c/c++ or even .Net stuff

Ah, thanks. That made my day. Let me guess, you also prefer C# because Java is so horribly slow? :)

Re:Shard of glass in my delicious pie! *gruff* (3, Informative)

RegularFry (137639) | about 5 years ago | (#28954679)

"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.

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28954929)

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:Shard of glass in my delicious pie! *gruff* (2, Interesting)

TheRaven64 (641858) | about 5 years ago | (#28954897)

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.

Re:Shard of glass in my delicious pie! *gruff* (1)

Helios1182 (629010) | about 5 years ago | (#28959063)

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* (3, Informative)

jtogel (840879) | about 5 years ago | (#28955239)

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.

Re:Shard of glass in my delicious pie! *gruff* (1)

plastbox (1577037) | about 5 years ago | (#28955367)

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 [] but at best it launches the game in keyboard control mode. Do I just suck? Should it be blatantly obvious how to get the tcp server up and running..?

Re:Shard of glass in my delicious pie! *gruff* (1)

somersault (912633) | about 5 years ago | (#28957227)

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. (5, Insightful)

tetha (1612425) | about 5 years ago | (#28954207)

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:too short. (2, Insightful)

WarpGiGA (647974) | about 5 years ago | (#28954649)

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

Re:too short. (1)

jtogel (840879) | about 5 years ago | (#28955135)

The CIG deadline is September 3, which is almost a month away (you don't need to submit to the first phase). Plus, if the competition is a success, it will run next year as well.

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:too short. (1)

jandrese (485) | about 5 years ago | (#28956365)

A month is not much time at all for something like this.

Re:too short. (0)

Anonymous Coward | about 5 years ago | (#28957667)

WOW...sounds just like every other project assigned at work :) Oh, and you are supposed to juggle several at a time.

At least this one has a fixed deadline and defined requirments!

That's nothing. (1)

jovius (974690) | about 5 years ago | (#28954485)

I'm running a competition to see who can program an AI that will create the game Super Mario Bros, by analyzing the behavior patterns of human subjects.

Re:That's nothing. (0)

Anonymous Coward | about 5 years ago | (#28955109)

You'll need lots of mushrooms - hopefully you didn't exhaust your supply when you came up with this idea.

Original author here. (0)

Anonymous Coward | about 5 years ago | (#28954781)

[Pardon the AC, still haven't bothered fixing my account]

Yay, it's based on my code. :D
I wrote it a few years ago for a mario themed competition on, but got more and more uncomfortable with using copyrighted materials (the graphics). It was relatively popular and I didn't want to just remove everything, so I released it into the public domain.

The random level code is pretty simplistic and just stitches stretches of random types together until the total length of the level is bigger than some minimum. Stretches can be things like "pipes", "holes", "blocks" and later on "cannons". The level randomizer for the map selection map is more impressive imo, and actually produces levels that feel original and look good.

/ Markus "Notch" Persson

Re:Original author here. (2, Insightful)

Hatta (162192) | about 5 years ago | (#28957351)

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.

Re:Original author here. (0)

Anonymous Coward | about 5 years ago | (#28961649)

If there's not, there's going to be a lot of trouble with impossible random levels.

As long as each algorithm is judged on the same randomly generated levels (not revealed in advance), it doesn't matter if there are a few impossible ones.

Nintendo's AI (1)

hellfish006 (1000936) | about 5 years ago | (#28955067)

I assume this competition will end before New Super Mario Bros. Wii comes out. But when it does, someone should try to get that AI to work on the game for this competition. The AI I am speaking of is the new feature where if something is too difficult you can press start, select an option, and it will complete the area for you.

Re:Nintendo's AI (1)

aardwolf64 (160070) | about 5 years ago | (#28956481)

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! (2, Interesting)

The_Duck271 (1494641) | about 5 years ago | (#28955363)

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: [] (Java clone of CRobots) [] (More complicated version of above) [] (Risk game that accepts AI plugins)

Re:Neat! (0)

Anonymous Coward | about 5 years ago | (#28955615)

an expert system is also an AI

Mechanical Turk? (2, Funny)

GranBurguesa (720088) | about 5 years ago | (#28955869)

But really, any approach is fair game

Just how random is random? (1, Interesting)

Anonymous Coward | about 5 years ago | (#28955951)

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 (3, Interesting)

gizmoguy4242 (262865) | about 5 years ago | (#28956117)

Just thought I'd point out that we also did this in the 2009 Reinforcement Learning Competition (I was the general chair): []

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

Re:2009 Reinforcement Learning Competition (1)

CnlPepper (140772) | about 5 years ago | (#28956619)

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 agents will only have line of sight radar to work with ie the code only reports un-occluded asteroids/enemies (position, object dimensions - spheres for simplicity) each frame. A selection of weapons would mix it up bit (missiles, guns and mines). Hmm, maybe limited fuel.

Thats could be a challenge. I'd be damn cool anyway. :)

Can humans even do this reasonably? (1)

immakiku (777365) | about 5 years ago | (#28957333)

Can humans even do this reasonably? By that what I mean is, when we play, we don't play based off what we see on the current screen. I doubt many people have beaten the game on their first play through. Most of us had multiple tries, seen more of the level and honed our timing in tricky spots.

Re:Can humans even do this reasonably? (1)

jerep (794296) | about 5 years ago | (#28957633)

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:Can humans even do this reasonably? (2, Insightful)

Bakkster (1529253) | about 5 years ago | (#28959559)

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?

an idea (0)

Anonymous Coward | about 5 years ago | (#28963195)

I've never studied AI, but could you generate a bad run that does win, then use genetic algorithms to slightly modify it and keep the runs that get better times. Maybe you could use GPGPU techniques to quickly accept or reject mutations.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>