October 10, 2006

AI versus AI: N.E.R.O. on Linux

Author: Nathan Willis

If you've ever been frustrated with the artificial intelligence (AI) in video games, then you are a prime candidate for Neuro-Evolving Robotic Operatives (N.E.R.O.), a cross-platform combat game where the key to winning is training your own intelligent non-player characters. On the field of play, the only rule is "let the best AI win." I tested my skills with the Linux client, and found N.E.R.O. to be a very different sort of game.

N.E.R.O. was first developed in 2003 at the University of Texas at Austin (UT). At UT's 2003 GameDev conference, AI researcher Ken Stanley proposed a game based around the idea of training soldier robots in real time, then pitting them against each other. It grew into an ongoing research project that involves a number of UT faculty and students.

The game has two distinct modes. In training mode, you play in a virtual sandbox, setting up enemies and obstacles, then unleashing your robot teams on them. The robots use neural networks to respond to game events, so you teach them by issuing rewards or penalties for events such as hitting a target, avoiding getting hit themselves, and standing their ground.

When you think you have a decent team, you can save your work and enter battle mode. Choose from a variety of arenas, then send your 'bots into combat against one of the included demo teams, or against another player over the network.

The current 1.01 release is available for Linux, Mac OS X, and Windows. The Linux version is a gzipped tarball; extract it anywhere and run ./nero.bin from the command line. It requires OpenGL and ALSA (for sound effects).

Click to enlarge

Full metal jacket

Of course, training mode is the difficult part. While in training mode, robots are continually spawned, play for a minute or two on the field, then are yanked out and scored. The better-scoring robots are cloned for the next generation and the worst die out, so the team as a whole evolves. You determine how the robots are scored by adjusting reward/penalty sliders for the various game events.

A fresh batch of robots behaves like, well, hyperactive morons -- some running in circles, some firing blindly at walls. The big rule at this stage is "one step at a time." You have to place enemy targets on the ground and teach your team to approach them, then start adding walls for them to go around. Add too many elements at once, and the robot simpletons will be unable to figure out what you want them to learn.

The game includes two tutorials for you that are essential to becoming a good drill instructor. Early on I had a good aggressive team chasing down enemies, for instance, but within minutes transformed them into cowards by setting the "getting hit" penalty too high. Just as people have taught us since grade school, it is a good idea to save your work periodically. It makes backtracking over a training mistake a lot easier.

You and what army?

Life in the training sandbox is pretty idyllic -- your robots respawn indefinitely, the enemies are pawns you can move at will, and the terrain is flat. But invariably, when you test your creations under actual battle conditions, you will meet surprises. Luckily you can go back into the sandbox and try to replicate whatever situation confounded your troops. If all else fails, you can "inhabit" one of the enemy 'bots and inflict a little one-on-one lesson on your team, first-person shooter (FPS)-style.

Click to enlarge

Game-play in battle mode is fun, but you have to get used to the non-interactivity. You're just an observer once the battle starts; you can watch the entire campaign unfold from third-person camera perspective, flying through the arena, watching how your troops perform and looking for trouble spots.

Battle mode games can either be timed or death matches, and you can choose any size team to play with. The default setting is teams of 20, with which death match games last two to five minutes (unless both teams are trained to hightail it away from danger, which is doable though not very entertaining).

Whenever you feel like testing your virtual mettle against a real opponent, you can browse the N.E.R.O. forum to find other players and join a networked game or tournament. There is not a lot of activity there right now, though, so challenging another player directly may be the way to go.

I am an army of ... zero? One?

Speaking of recent activity, you may notice that it has been quite a while since the last update to the game. Ken Stanley assures me that development is still ongoing. The trouble is that the game is developed in a university class, and consequently has high developer turnover as experienced students graduate. In addition, Stanley has moved from UT to the University of Central Florida and appointed a new maintainer. He still advises the team, though, and continues work on rtNEAT, the real-time learning algorithm that powers N.E.R.O.

Click to enlarge

Given this unpredictable situation, a number of people have asked whether the game code could be open sourced. Stanley and the other programmers expressed their willingness to open source the code; rtNEAT source is even now available under a no-commercial-use "research license."

UT would have to agree to opening the source, Stanley says, but the big holdup is that the game code is written in the Torque engine, which prohibits source code redistribution. rtNEAT is separable from N.E.R.O., but rewriting the rest of the game code is a major undertaking.

There is no official word on when we will see N.E.R.O. version 2, but the current development team has promised to post monthly updates to the forums. They recently added a pair of videos showing their progress on the N.E.R.O. Web site.


Historically, I tend to find the popular FPS games amusing at first, but I lose interest once there is nothing left to "figure out" -- having to replay a level again and again to beat a time limit or make one difficult kill just feels like a waste of time. On the other hand, N.E.R.O. is built around a problem that you are never going to completely master -- however good your team is, it can always get better. That's what makes it fun.


  • Games
Click Here!