Mario AI Competition

Sergey Karakovskiy and Julian Togelius

In association with the IEEE Consumer Electronics Society Games Innovation Conference 2009 and with the IEEE Symposium on Computational Intelligence and Games

Deadlines: August 18 (ICE-GIC) and September 3 (CIG)

Overview
Getting started
Advanced options
Rules
Submitting your controller
ICE-GIC league table
CIG league table

Last update: September 12, 2009

Advanced options

The commands listed on the getting started page shows you in a simple way how to run the code and should be enough to get you started on developing your own agents. However, as an alternative way of using software, the MainRun class can be invoked with a number of arguments to control various aspects of the game. A list of these commands can be found here.

For example, to start a server, try the following:

java ch.idsia.scenarios.MainRun -server on -vaot on -vlx 1044 -vly 10

Starts a server.

java java ch.idsia.scenarios.MainRun -ag ScaredAgent -ld 5 -lt 1

Runs the ScaredAgent on a level of difficulty 5 and type 1.

java ch.idsia.scenarios.MainRun -an 42 -ld 5 -lt 2

Lets you play an underground level with difficulty 5. The zoom levels feature of the environment observation is documented here.

Client/server control via TCP

If you create your agent in another language than Java, you will need to interface to the Mario AI code package via TCP. (Except if you use another language that runs on the JVM, or use a custom solution such as JNI or Mathematica's JLink.) For your convenience, a sample Python client is provided. This is how you get the Python client running:

Start the server:

java ch.idsia.scenarios.MainRun -server



Start client:

python python/research/scripts/ipymario.py

If you have pybrain installed, otherwise:

python python/competition/ipymario.py



You will find some options used to run the agent and rewards obtained in ipymario.py. Almost all of the command lines options are available through TCP, and this way you can tweak the levels as conveniently and flexiblly as in Java. For more details have a look at file marioenvironment.py