My favorites | Sign in
Project Home Downloads Issues Source
Search
for
NeroTournamentExercise  
NERO Machine Learning Tournament
Exercise
Updated Dec 16, 2011 by ikarpov

NERO Machine Learning Tournament

In this exercise, you will use either the rtNEAT algorithm or Reinforcement Learning to train a team OpenNero agents to defeat your opponents in battle. We will run a tournament in class, where we will pit the teams against each other in an apocalyptic battle for world domination (or something). Follow the steps below, unless of course you're comfortable getting destroyed by your opponents who did.

0. Install prerequisites for running OpenNERO

See OpenNeroPrerequisites for detailed instructions for your platform.

1. Install the OpenNERO Platform

OpenNERO runs on Linux, Mac OSX, and Windows platforms. In order to install it on your system, you can either:

  • Install it on your own machine by downloading one of the prebuilt binaries. Note that they do require that you have some additional software installed, such as Python and wxPython (see instructions on the download page).
  • Build OpenNERO on your own machine using the source code.

If you build from the source, you can modify and extend the game yourself (for the tournament, or otherwise), but no such modifications are necessary to train and enter the tournament.

2. Train Your Team

The game is described in detail in the NERO game page, including specific instructions on how you can train your team. Please read that page carefully.

3. Submit Your Team to the Tournament

The tournament submissions are now closed. We will be evaluating the teams and post detailed tournament results soon!

After you are satisfied with your team, you'll save it into a file, and submit that file into the tournament. Note that

  • You should test your team first by loading it into NERO_battle and making sure it works as intended.
  • You can submit either the team text file itself (fist rename it so that it will have a .txt extension) or a gzipped version of it (i.e. with the extension .gz). Gzipping is a good idea if the file is large and would take a long time to upload.
  • In the "Name" field, give your team a fun, recognizable name: it will be used to identify it in the tournament.
  • You can submit multiple teams. Just make sure the teams are different, i.e. trained differently, or consisting of different agents.

4. Eagerly Await the Results

We will collect all submissions after the deadline and run a double-elimination tournament on them. The tournament will be seeded randomly. The standard NERO Battle environment will be used for the games; because the environment is symmetric, each team can be assigned as Red or Blue randomly without providing an advantage to either one. Each game will be run until one team is eliminated, or when a timeout of 5 minutes is reached, in which case the team that has more hits will win. In case of a tie, the winner will be chosen randomly, except for the final game, which will be repeated until there is an actual winner based on hits.

The tournament results will be posted a few days after the deadline on this website, including videos of the final games. The teams will be identified by the name provided in the submission.

Debugging, Discussion, and Bug Fixes

If you run into any bugs in your program, you can find the error log file for OpenNERO (see OpenNeroLogs)

We encourage discussion of topics related to the tournament, and have established OpenNERO Google group to support it. Questions can be posted in that discussion forum and answered by anyone on the forum, hopefully making it easier to figure out issues as they happen.

In order to provide the best experience for everyone, we may release bug fixes before the tournament submissions are due. Below is a concise summary of such fixes:

Most recent release: 2011-12-14

Notes for 2011-12-14

  • Cosmetic fixes for battle shooting display and heads-up battle speed.

Notes for 2011-12-11

  • View additional information about reinforcement learning agents, such as fitness, lifetime, hitpoints and agent id.
  • Fix assertion at the end of agent lifetime in Maze
  • Scoring and reporting tweaks for Battle

Recently fixed issues

If you are experiencing any of the following, try upgrading to the most recent version:

Known issues

Comment by alex.ch...@gmail.com, Dec 2, 2011

Just to clarify, the deadline of December 15th at 12 midnight CST is at the start of the 15th, as in one minute after 11:59pm on December 14th, right?

Comment by look...@gmail.com, Dec 2, 2011

nope.one minute before December 16th, 2011

Comment by project member ikarpov, Dec 3, 2011

Hi, please see recently-fixed  issue #113 ,  issue #116 ,  issue #115  for fixes related to saving and loading.

Comment by project member ikarpov, Dec 3, 2011

@jarek, this is probably because your python.exe is not in your system path. Add the path for your Python install (usually c:\Python27) to the Path Environment Variable via the Control Panel. You should then be able to run python from your Command Prompt.

Comment by project member ikarpov, Dec 3, 2011

The saving problems are indeed an existing problem on Windows - we are working hard on a good solution, but while you wait, your teams may at least be partially saved inside the same directory where OpenNeroLogs are stored. See  issue #116  for more details about the saving problem.

Comment by project member ikarpov, Dec 3, 2011

The recently-fixed  issue #113 ,  issue #116 ,  issue #115  related to saving and loading have been fixed again. The new binary is now 2011.12.04 - please reopen those bugs if you get the problem again.

Comment by billren...@gmail.com, Dec 4, 2011

Dunno if anyone else is having this problem, but whenever I try to remove a turret Nero crashes on me. Running Win7 64.

Comment by comendan...@gmail.com, Dec 4, 2011

@ikarpov, had the same problem as jarek on Win7 64-bit with today's (2011-12-04) version (although python.exe was on system's path). had to change subproc = subprocess.Popen(['python', script]) to subproc = subprocess.Popen(['python', script], shell=True) in common/module.py

Comment by project member ikarpov, Dec 4, 2011

@billrenner, this is a known issue we are working on:  issue #114 

Comment by project member ikarpov, Dec 4, 2011

A new release, 2011-12-04, should address the bug with removing turrets ( issue #114 ) which was fixed in r1530.

Comment by project member ikarpov, Dec 5, 2011

@rashmi, please install libgl-dev with synaptic

Comment by danielfi...@gmail.com, Dec 5, 2011

OpenNERO won't run on WindowsXP.

I installed Python 2.7.2 (32-bit) in my Windows XP 2002 SP3 Athlon 64 X2 Dual Core 4400+ 2.44 GHz PC. Also installed wxPython so 'import wx' statement produces no error. Python path is included in PATH env. variable. Installed OpenNERO-2011.12.04-win32. Try to run OpenNERO.exe:

Aborts with this message: This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

And the pop-up "OpenNERO.exe - Application error" shows up with this message: "unknown software exception (0x0000015)" at address "0x7857beae".

Thanks for any help you might provide.

Comment by abdossal...@gmail.com, Dec 5, 2011

The file "init.py" is empty. I assume the Q-learning algorithm is implemented in there. I thought this is opensource software. Can you please update the content? Thanks.

Comment by project member ikarpov, Dec 5, 2011

@abdossalami, what file are you referring to?

The RL algorithms are implemented on the C++ side here:

http://code.google.com/p/opennero/source/browse/#svn%2Ftrunk%2Fsource%2Fai%2Frl

And wrapped on the Python side here:

http://code.google.com/p/opennero/source/browse/trunk/mods/NERO/agent.py

Also we have a pure Python implementation that gets used in Maze, here:

http://code.google.com/p/opennero/source/browse/trunk/mods/Maze/agent.py

Comment by project member ri...@cs.utexas.edu, Dec 5, 2011

I added a sample team that may be fun to test against. It is here; there's also a link from the NERO page. It is evolved with rtNEAT to go around the wall to the enemy and hit it; I edited out some of the weakest individuals and copied some of the good ones, both those that go around and those that stay on the home side of the wall. Check it out.

Comment by project member ikarpov, Dec 6, 2011

@abdossalami, it looks like the version you are using is an oder version - that line currently says:

loc, val = strn.split(' ',1)

Try grabbing a more recent binary build or running svn update on your source check out if you are building from source.

Comment by karanjth...@gmail.com, Dec 7, 2011

Please ikarpov can you take me through the process of updating the NERO/module.py file? I am having problems in saving as most of the people. I tried changing the module.py file but I guess I did not do it right. So please tell me.

Comment by project member ikarpov, Dec 7, 2011

@karanjthakkar, please download the latest build for your platform - this contains all the latest fixes including the one you are looking for.

Comment by limtro...@gmail.com, Dec 9, 2011

Is the tournament still going? How do we submit teams?

And is there a way to directly call a training or battle scenario with a python script or something instead of opennero.exe and its menus?

Comment by project member ikarpov, Dec 9, 2011

Hi @limtrobo1,

Yes the tournament is still going. The submissions are not yet open, but they will be soon!

If you want to run the battle from command line (I'm assuming this is what you are asking) take a look at the script condor_battle.sh - the basic idea is that you can start OpenNERO.exe with command line parameters so that it starts doing what you want. Actually I just made a change to NERO/main.py that lets you do something similar for training. This also allows you to run things in the background without using the display (headless mode).

Comment by Swar...@gmail.com, Dec 13, 2011

Nice work on this! If anybody else still struggles to get past the: Add to Path... I followed the guidelines, but still didn't work. I single space crept up in my Path while I edited it (used to Ubuntu CLI not the Windows gui I needed/used). Removed the space and started training away!!

Quick Question, when you zoom in/out a lot you get a very nice picture of a mountain, is that to be used for the mountains around the training base?

Comment by jl198...@gmail.com, Dec 13, 2011

When are we going to be able to upload the file?

Comment by jl198...@gmail.com, Dec 13, 2011

Now we can send the troops to combat cheers

Comment by woobe1...@gmail.com, Dec 15, 2011

Can we gzip multiple teams together and just submit that single .gz file?

Comment by project member ikarpov, Dec 15, 2011

gz is usually only used for compressing single files, and to make things easier for us, let's keep it to one team per upload.

Comment by woobe1...@gmail.com, Dec 15, 2011

Thanks, Igor! I will upload my teams one by one then.


Sign in to add a comment
Powered by Google Project Hosting