Last year, we reviewed Neuro-Evolving Robotic Operatives (NERO), a unique game in which players train forces of autonomous bots, then pit those forces against each other in hands-off, artificial intelligence (AI)-only competitions. NERO spawned a new major release a few weeks ago, and like its eponymous operatives, it has learned some new moves over time.
The game is built using the proprietary Torque game engine, but free binaries are available for Linux, Mac OS X, and Windows. The new version is numbered 2.0 and marks the first major update released to the public since 2005. You can still download 1.x-series binaries if you are interested in comparing the changes between releases. Each is self-contained, so you can have them both installed on your system without fear of conflict.
The Linux download is a gzipped tarball; download and extract it anywhere on your system. The game is compiled for 32-bit Intel architecture Linux only, and requires OpenAL for sound. From within the extracted directory, you can start the game by running ./nero.bin.
One word of warning: I found this build of NERO to be a CPU hog when it had focus. When relegated to the background, CPU usage dropped considerably. There is an official bug/feedback forum, but no one else has reported this issue. Still, it happened on both Linux machines I tested the software on, so go into it with open eyes. Given that it is a research project, bugs are to be expected. I managed to core-dump NERO during an extremely long training session; how I'm not sure, but I started saving my work.
If you are new to NERO, take a look at the online documentation, though it really only explores the game's menu structure and options. To get started, you should go through the game's built-in tutorials. The basic tutorial guides you through the essentials of training an army and using the game controls, and the advanced tutorial delves deeper into the machine learning model behind NERO -- in theory, helping you to train armies more effectively.
As with NERO 1.x, plan to spend a lot of time training your army, then pitch it against an opponent in team play and see how well it fares. In both segments of the game, NERO 2.0 makes important alterations.
NERO veterans will notice some changes to the game controls immediately.
The heads-up display in training mode has shrunk considerably, allowing you to see more of the playing field. The display includes the all-import punishment/reward sliders, with which you control the scoring performed on successive generations of soldiers. Changes you make to the sliders now take effect immediately instead of requiring an Apply button.
A large chunk of screen real estate is reclaimed via the removal of the Place Enemies toolbox, which occupied an entire corner of NERO 1.x's training screen. All of its functions are now accessible through a radial context menu -- you right-click anywhere on the training map, then select an object to add. Use the same process for training enemies, wall obstacles, and flags.
On the down side, some of the other training controls (such as the "approach enemy range" and "lifetime" sliders) now take up less screen space by going unlabeled. That makes them more difficult to use; to learn which is which you must hover over the tiny icons to view a tooltip-style description. No slider displays its current setting numerically -- making an adjustment to the sliders' values is a visual estimation game.
New to training mode is a Graphs button, with which you can view real-time data about the neural networks of your armies as you put them through their paces. The graphs are in dire need of some explanation, though -- either through the tutorials or the game documentation. Their meaning may be clear to NERO programmers or artificial intelligence researchers, but without context they do not contribute much to gameplay. And they certainly have potential to; there are 16 metrics available, including a variety in "fitness" and "brain" categories.
Last but certainly not least, the 3-D models used for the enemies in training mode have received an upgrade. Older releases of NERO allowed you to select from three types of "turret" -- the game's designation for an enemy that fires on your troops -- but all three used the same model, and it was the same as the model for a static, non-shooting enemy. The new models are distinct from each other, and this time, they actually look like turrets. In fact, it is kind of a shame they don't show up in actual combat battles.
Deathmatch battles were the only form of gameplay in NERO 1.x; two teams faced off on a map, and whichever team scored the most kills won, either by eliminating all of the opposing team, or by outscoring them before the clock ran out.
NERO 2.0 introduces an entirely new type of gameplay: territory control mode. In a territory control battle, the object is for each team to capture and hold marked positions on the battlefield. The control points look like giant metal lampposts, and each one can serve as a rally point or spawn point for your team of robot soldiers. The more control points you seize, the more soldiers you can place on the field at one time.
This mode is considerably more involved than deathmatch play; in a deathmatch you are consigned to the role of spectator, placing all of your chances for victory on the training you did. A territory control game involves real-time decision-making, as you spawn squads of trained soldiers and tell them which control point to assault.
People who thought the sit-back-and-watch approach of NERO 1.x deathmatch play was anticlimactic may find more to like in a territory control game. Conversely, players used to the hands-off approach may be frustrated initially at territory control and its reliance on fallible human intelligence. Isn't this why we have robots, after all? To fight our battles for us?
Pros and cons
I am nowhere near experienced enough with territory control battles to give anyone playing advice, but working with the new game mode did bring to light some weaknesses in the game worth noting.
First, NERO 1.x made it simple to distinguish between friendly and hostile teams on the playing field in three ways: the robots used different models (sporting blue and red trim, respectively), the weapons fired different colors of smoke (again, blue and red), and all of the robots were encircled with a glowing ring (blue or red) that followed them on the ground as they moved.
NERO 2.0 does away with the highlight rings, which makes it difficult to distinguish between the two models during a game. You have to zoom in very close to tell friend from enemy. In territory control mode, this is doubling frustrating, because you can only spawn robots by clicking the mouse on a control point -- zoom in to see who is running, and you have to zoom back out and find a control point in order to react. At the very least, activating or deactivating the highlight rings should be a run-time option.
Second, the camera controls lack flexibility. You have the typical w-a-s-d keys for moving along the ground, but no up or down control. The only way to move up or down is to switch to mouse view with m, then look down or up and use the w and s key to move in the appropriate direction. It is easier to move around in mouse mode, but you cannot interact with objects, and that's a huge impediment to playing in territory control mode.
That is also a problem in training mode -- again because the models are so difficult to distinguish unless you are zoomed in, but also because some training information is inaccessible from certain elevations. For example, you can press the space bar to display the ID number of each robot over its head, so that you can choose which IDs are learning successfully. But you can only see the numbers at certain zoom levels, making it difficult to track your team's progress without pausing repeatedly for a closer inspection.
The ID number display issue is certainly a bug and not a design decision. If the source code to NERO were public, then we could fix it without waiting for another release. On that front, there is at last positive news.
Source code for the algorithms behind NERO's artificial intelligence is available, and the developers have long said that they would like to make the rest of the game open source. The major obstacle is that the game is tied so completely to the proprietary Torque engine.
Over the summer, a small group of NERO developers started working on an open source clone of NERO 2.0 that they unofficially refer to as OpenNERO. The group is not yet ready to release its source code to the world, but it does offer some general descriptions of the direction OpenNERO is heading.
Initially, it hopes just to clone the existing NERO gameplay in an open source engine. Subsequently, it will make the AI portion of the game pluggable, so that different learning models can compete head-to-head.
Programmer Igor Karpov explains that "while the first step is to be able to recreate most of the core functionality we had in NERO 2.0, it will eventually be much more general -- there will be multiple games with multiple AI methods, not just NERO/NEAT." Fellow coder John Sheblak told the NERO forum community that eventually, the group wants to allow user-created gameplay modes as well.
NERO fans will have to wait and see when this open source version of the game materializes. It is great that the game's developers -- many of whom are full-time college students -- are devoting their time and energy to the idea. No doubt there will be a lot of others out there willing to assist when the game goes public.
In the meantime, NERO 2.0 offers new challenges to players, so it is a welcome addition to the Linux gaming ecosystem.
You may not get your fix of shooting and destroying in NERO, but you will be hard-pressed to find a game with a greater mental challenge. Think you're a good strategic planner? Try programming your strategy into an empty vessel in NERO, and you'll soon discover just how well-thought out it is.