Documentation
Table of Contents
The NERO Story
Welcome to NERO
NERO is a revolutionary style of gaming that requires the training of intelligent armies. To start playing the game, train your own NERO robots to learn navigation and fighting techniques, and then assembling a team. Nero robots will actually learn from your guidance as their artificial neural network "brains" evolve in real time using the rtNEAT algorithm. The following will explain the game from training through battles and provides background on the intelligence driving the robots.
Main Menu
- Single Player
- Train and test your robotic teams:
- Simple Tutorial
- Explains the basics of training a NERO team
- Advanced Tutorial
- Provides additional information about training and battle
- Start Training
- Click here to train a new team or finish a previously started one
- Sandbox Battle
- Play destruction or territory battles against your computer
- Multiplayer
- Gives you the option of hosting or joining a network battle
- Teams
- Build teams that combine unique abilities of differently trained robots.
- New platoon
- Build a territory mode platoon
- New team
- Build a battle mode team
- Options
- Lets you change graphics resolutions, audio settings and key/mouse mappings
- About
- Credits and resources links
- Quit
- Leaves the game
Note: To access controls or exit, press ESC at any time. In addition, you may press F1 to bring up this information at any point
Training a Team
To lead an army into battle, first you need an army. From the Main Menu, select Sandbox Mode. From here you can choose Simple Tutorial, Advanced Tutorial, start training, or Sandbox Battle.
Tutorial
To learn more about training in a hands-on environment, select "Tutorial" from the main menu and follow the step-by-step beginner's guide to training your army to go around a wall. The advanced tutorial treats more high level topics.
Start Training
This is where you will set up the scenarios to train your army for battle. When you enter training, you are asked to select a team you wish to continue training, or select "<Create New Team>" to start from scratch. You also choose the Training Arena you wish to train on. Finally, choose the Training Team Size. A larger training team size will usually result in better learning, so don't make this too small. The text that follows explains how these functions work in general.
Training Arenas
The map you train on can have a significant effect on the kind of soldiers you produce. In some cases, you may want to train soldiers in the same map in which they will go to battle. New configurations of walls that you create yourself can be saved in your own custom training map files by pressing the "Save Map" button. You can reload maps later. That way, if you for example created a maze and your robots are not done training but you need to turn off your computer, you can save your team, save the map, and exit safely. When you restart training choose the new map that you saved. NERO comes with a variety of maps for both training and battle. It is possible to use any of the maps for both purposes.
After choosing an Arena, a starting team, and a size, click "Begin".
During Training
Keys
Movement
- W - Forward
- A - Left
- S - Backwards
- D - Right
- Q - Rotate Left
- E - Rotate Right
M - Camera
To change viewing angle use M and a combination of the direction keys and mouse. To return to normal mode, press M again.
P - Pause
Pressing P will pause the simulation and allow you to easily select a robot to right click on. Pressing P again will un-pause the game.
O - Options
If at anytime you are not satisfied with the controls, press O to bring up the options menu and feel free to remap them to suit your needs.
Mouse Interaction
The main way of interacting with the environment is with the mouse. Double clicking the left mouse button will add a flag in the world, while right clicking brings up the graphical contextual menu, which allows you to spawn, move, rotate, and scale objects and teams, as well as interact with evolution (converge, milestone or smite). Choosing Spawn will bring up a list of things that may be added to the world, these include:
- Wall
- Adds a resizable and moveable wall to the environment to complicate the course
- Team
- places your team on the field or changes where new robots appear
- Enemy
- Normal Turret
- This enemy does not move, but has a weapon that fires in a ninety degree arc.
- Better Turret
- This turret arcs towards the closest target.
- Brutal Turret
- This enemy does not move, but has a weapon and fires at the closest enemy to it.
- Static Enemy
- This enemy has no weapon and does not move.
- Rover
- This enemy has no weapon, but runs around in circles.
- PreTrained (variable number)
- You can select a number (between 1 and 9) next to this option that specifies how many pretrained individuals to spawn together from a saved team. Then, when you "Add Enemy," it will prompt you for a team file from which it will draw the top n robots, where n is the number currently selected. Those robots will be spawned as *enemies* that are now playing against your team. In this way, you can train your team off of other teams you already trained! It is also possible to spawn several different types of pretrained enemies at the same time by adding them separately. Note however that the pretrained individuals are not evolving in this case- only your current training team evolves. Finally, you can remove pretrained enemies just like any other: Press "p" to pause, find the pretrained enemy you want to remove, right-click on it, and choose "Delete." Note that this is an extremely useful option for training your team against different style of play.
Your context menu will change if you right click a player, wall, or enemy (recall that you can press P to pause before selecting items on the field by right clicking):
Walls - When right clicking on walls you created, you have the choice to move, rotate, scale, or delete them. Moving the mouse left and right will rotate the object and also scale it. So for example, if you want to elongate a wall, right click it, select Scale , and move the mouse cursor rightward.
Team Soldiers - Right-clicking on soldiers you are training, you have the converge on them, or smite them.
Converge means that your entire population's brains will be replaced with the selected soldier's brain. When used correctly, converge can be a powerful function, allowing you to quickly circulate a behavior throughout the entire population. It is important to note that some converged behaviors can be unstable, since they were not learned in a natural way. If a convergence didn't work out as you expected, "Undo Converge" is an available option on the menu when you right-click the ground.
Smite allows you to punish a solider that you don't like. It will be strongly penalized and sent back to the factory.
Enemies - Right-clicking on enemies lets you choose to move, rotate, delete, or inhabit them.
Inhabit - Inhabit means you control the unit from a first person perspective, that is, you will inhabit and control its body using the standard navigation keys, left clicking to fire your weapon (if the type of enemy you inhabit has a weapon), and by default, right clicking will exit this mode. Your team will learn from interacting with you assuming the correct slider settings are set. (For example, to encourage them to learn to avoid getting shot you should punish them for getting shot.) By pressing m you can change the current camera mode.
How to Train
Note that in order to train an army, a factory must be created by spawning a team from the context menu. Without a factory on the field, you will have no troops to train.
Your army's behavior is determined through the slider values you set in the slider window (the panel on the right of your screen). There are 6 different objectives you can set. If you move your mouse over the icons near the top of the window, an info box will pop up on what slider you are currently looking at. The area below the icons holds the sliders themselves. Moving the slider up (into the green) will reward the population for doing the current objective, while moving the slider down (into the red) will punish the population for doing the current objective. The horizontal sliders at the bottom are tied into the two far left vertical sliders. The right horizontal slider determines the lifetime a soldier on the field. For more complex tasks, you will want to make the lifetime longer. For simpler tasks, you will want it shorter. The left slider controls the radius necessary for the approach" rewards to take effect. Note that in early training it is not a good idea to start with numerous sliders all set at the same time. Try starting by changing one or two sliders, and then gradually augment more sliders as your training objectives improve.
Training Tips (Important)
The soldiers you are training are fresh recruits. They do not initially know anything about the world around them, and thus wander aimlessly around. Although it may be tempting to design a complicated scenario, max out the slider values, press apply, and wait, such an approach is likely to fail. The soldiers, like any students, need to learn simpler building blocks before more complicated tasks. The best way to train soldiers is to train them incrementally. For example, if you want to train your army to attack an enemy behind a wall, first place an enemy on the field and reward the population for hitting the target and approaching the enemy. After you are satisfied with those results, place a wall in between the spawn point and enemy so that the population has to learn to go around the wall to get to the enemy. (Note that the Tutorial mode guides you through such a learning scenario.) When you are satisfied with those results, maybe switch out the enemy with a turret, and punish getting hit. Or you could add another wall. The choice is yours depending on your overall team strategy.
All scenarios and strategies you wish to train for should be set up in this incremental fashion in order to yield good armies. A good rule of thumb is to change one slider value and/or one environmental stimulus (enemy, wall, etc), and wait for your army to learn it before changing something else. That way, training is gradual and realistic. In this way, it is possible to gradually scale up to quite sophisticated behaviors.
Training takes time. Do not immediately expect the soldiers to learn the given task at hand. Wait a few minutes, and if the soldiers still are not giving the desired results, then review your slider settings and overall scenario. Perhaps try to learn something simpler that can serve as a foundation for more complex tasks.
Stat Display and the Space Bar
It is possible to observe certain stats about your individual robots by pressing the space bar. By default, the robots have no stats above their heads, but by pressing spacebar you can cycle through a number of different stats that appear above their heads. In addition, the HUD button (on the bottom panel) becomes active when stats are being displayed . Space bar cycles through the following states (pressing spacebar in the last state cycles the stats back to being off):
Brain ID's: This is the current id of a unit's brain. Every time a new brain is inserted into a robot body, it gets a new number, so the numbers give you an idea of how new the robots' brains are. In general, older brains only stay around if they are still good compared to the newer ones. You can use these brain ID's later to identify individuals in the Create Team mode.
Species Number: Tells which species each robot belongs to. See Section VI for pointers to NEAT documentation, which explains how speciation works with the NEAT technology that is inside NERO. Roughly, within each species are similar brains with similar styles, but the brains differ between different species.
Current Fitness: Shows the internal number NERO is using to rate different individuals
Fitness Rank: Shows the current rank of every individual from 1 (the best) to n (the worst) where n is the number of robots on the field.
Neural Net Complexity: The rtNEAT method used by NERO actually evolves networks that increase in complexity as the game is played. This display mode shows you the number of nodes (N), the number of links/connections (L), and also the species number (S) of each individual. The first two numbers give you a sense how big their brains are getting. The last number tells you how that correlates to different species. Note that complexity may vary at any given time among your troops.
Highlighted Champ: This allows you to label the brain with fitness rank of 1 (the current champion) so that you can easily see what the current best behavior is
Saving your Team
You can save your current army in Training mode by pressing <Esc> then choosing "Save Army".
Team Creator
You build a Team by choosing Team Creator from the main menu. This allows you to choose the best units from particular teams to build new teams with possibly varied behaviors. Click on a team name in the lower-right box, then click a brain from the upper right box. This is where remembering or making note of Brain Ids (see "Stat Display" above) is helpful. When you have the team you want, choose "save team" and give your team a name
Platoon Creator
To play in Territory Mode, you need a platoon. A platoon consists of 5 squads. A squad can have any number of brains, but in practice just 1 is usually sufficient. To create a platoon, you click Platoon Creator. Click Add Squad, then left-click on the saved team you want to use brains from.
Tips
When you want to build a team or platoon, choose a brain you think you want, and make a team with just that one brain in it. Save that 1-brain team, and go into sandbox battle. Your team will consist of clones of that single brain, so it should be pretty easy to tell if you're getting the behavior you want. You can also try sandbox training, just make sure you turn Evolution off.
Battles
General Information
In battle, you put your trained team to the test. You can play a battle against the computer or against a human opponent on a local area network or the internet. On some servers, the player can place a flag interactively during the battle. If the team was trained to react to the flag, they will do so during battle. It is possible to play battles with or without the use of flags. Note that when playing the CPU, the computer will not place flags on its own; only humans can place flags.
Destruction Battle
The objective is pretty simple - your team has to destroy all enemies to win.
Timed Destruction Battle
Here, your team has to destroy as many enemies as possible before the timer runs out. Available only in Network play, not Sandbox.
Territory Battle
This new battle mode is available only for a subset of the Arenas. In this mode, there are Control Points. In the upper left Corner are 2 counters: one showing your current number of units as a fraction of your capacity, and the other showing how many of the control points you own. You get the capacity for 5 more soldiers for every control point you capture. The objective is to capture all 4 control points.
To spawn new units, double click on any Control Point you own, and select one of the 5 squads. 3 robots of that type will spawn from that Control Point (or fewer, if you are at your capacity).
Flags: in this game, there is no global flag as in Destruction and Timed modes. Instead, for each unit you can set a flag at one of the control points. Do this by clicking or lassoing units, then right-clicking on the control point you want them to go towards.
Types of Battle: Sandbox and Network
Single Player
This option allows you to play against the computer in single player mode. You select a battle arena and assign a blue team (your team) and red team (the computer's team). You can also set a battle type: "Destruction" or Territory as defined above.
Multi-player
Host Battle
In this mode, you will advertise your game on the network, for play over a LAN or the internet. As in the "Vs. CPU" mode, you can choose an arena and team, as well as set battle options. You can choose a name that will be displayed when you chat during battle (using the "u" key). Note that when you click "Begin," your server IP address is sent to the Master Server on the internet, and can also be seen by other computers on your LAN as a NERO game host. While your game is waiting for an opponent to connect, the game will be in a demo mode. During demo mode, you will not have control over the two teams that are competing as they are both computer controlled. Your teams will not appear until someone joins the game, at which point demo mode will exit and both players must press "Begin" to commence the battle.
Join Battle
In this mode, you can choose the team you want to send to battle and the name you want to appear in chat. Note that the battle type and arena will be determined by the host. When you first enter this mode, you will see an empty list box that can display a list of servers waiting for games. If you press "Query LAN," you will get a list of NERO servers on your LAN. If you click "Query Master," you will get a list of NERO servers waiting for opponents on the internet. The list includes information on the type of game (e.g. flag or no flag and the arena) hosted on each server. Once you find a game you want to join, select it and click on the "Join Server" button. At that point, you are transferred to the battle arena chosen by the host (the arena was displayed in the list), and both you and your opponent must press "Begin" to commence the battle. You will be the red team. Note that NERO will not display servers with newer versions of NERO than your own. Therefore, please check nerogame.org for updates to make sure you have the latest version.
In order to handle a larger number of clients connecting to the game, a battle queue has been introduced. When a player enters the game and there are already two clients connected, the new player will be inserted into the battle queue. Upon completion of the match, the loser will go to the back of the queue and the winner will challenge the next in line. When a user wins a match, 1 point is added to the scoreboard for that player. To see the current scores, press F2.
In battle, the movement controls are the same as in training. At the top of the screen, you can see the number of remaining soldiers each team has as well as the name of the player and the color of the team. The battle is over when one team's population reaches zero or when time runs out in a timed game. The team with the most robots left standing is the winner. You can determine the damage of each robot by observing the brightness of its corresponding ring on the ground: the darker the ring, the more damaged the robot is. A stat screen pops up at the end of battle displaying the final score. You can click on the "Red" or "Blue" tabs to get specific stats for individual robots, such as their accuracy and how many enemies they hit. Since stats are shown for specific brain ID's, this information can be used to determine your best robots, who can then be assembled in "Create Team" mode into even better teams.
Battle is a chance to see how training paid off. Failures or surprises among your troops can give you ideas for better training in the future. For example, if they won't go to the flag in a room full of walls, you may realize that you should have trained them with a flag and walls together, and you can go back and do it next time.
Players in battle can chat: press
"u" to chat.
Battle Maps
There are
several included maps intended for battle:
"Shadow Grove" in which a large wall separates the warring armies;
" Mountain Pass " in which the armies have to deal with large obstacles;
" Sunken City ," a desolate urban landscape with several pieces of wreckage serving as obstacles;
"Andrian Arena" in which the armies have to deal with various obstacles;
"Virtual" maps which are intended for training, but can be used for battle.
Firewalls and Network Play
If you want to host a game over the internet through a firewall, you will need to give NERO permission to access the network. NERO uses ports 28000 and 28002 to send UDP packets over the internet. Make sure that both your software firewall and, if playing behind a router, that your router's firewall allows UDP traffic through these ports. If you are hosting behind a router, you might also have to forward these ports to your computer. More information about port forwarding and your specific router can be found at www.portforward.com.
Battle Demos
For examples of armies trained on a specific map, pit any of the included Grove armies against one another in "Shadow Grove", and see the different tactics each member of our programming team came up with. BR-Trung-deathfromafar was the overall winner. Other examples of training include pitting an avoiding team versus an aggressive team or an aggressive team versus an aggressive team. We have included a selection of pretrained sample armies for you to play against or further train.