Overview

Results of the ICE-GIC phase can be found here, and of the CIG phase here. A package containing the source code for all the submitted entries can be found here. This paper contains an academic writeup of the benchmark software.

This competition is about learning, or otherwise developing, the best controller (agent) for a version of Super Mario Bros.

The controller's job is to win as many levels (of increasing difficulty) as possible. Each time step (24 per second in simualated time) the controller has to decide what action to take (left, right, jump etc) in response to the environment around Mario.

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. We believe that playing this game well is a challenge worthy of the best players, the best programmers and the best learning algorithms alike.

One of the main purposes of this competition is to be able to compare different controller development methodologies against each other, both those based on learning techniques such as artificial evolution and those that are completely hand-coded. So we hope to get submissions based on evolutionary neural networks, genetic programming, fuzzy logic, temporal difference learning, human ingenuity, hybrids of the above, etc. The more the merrier! (And better for science.)

There are cash prizes associated with each phase of the competition; USD 500 for the winner of the CIG phase, and USD 200, 100 and 50 respectively to the winners of the ICE-GIC phase. At least one member of the winning team need to be present at the relevant conference to receive the prize money (for CIG that participant needs to be registered as well), however it is possible to win the competition and receive the certificate for this without attending the conference.

How to participate (it's easy!)

If you plan to participate, you should join the Mario Competition Google Group. All technical and organizational questions should be posted to this group, where they will be answered by the organizers and stored in a searchable achive.

You participate in the competition by submitting a controller. Your submission could consist of a piece of Java code and/or a WOX file; see the submission instructions for details.

But first you will have to develop your controller, using your method of choice and the Java software package. First of all, look at the getting started page; more technical information coming soon.

As people submit their controllers, we will publish a league table for the controllers submitted so far. At the end of the competition, source code for all controllers will be posted on the final league table.