• New simulation |
or |
The "Start settings" window allows you to set the basic details of a simulation:
for instance, the spcies of robots to insert, the number of individuals for each
species, their starting positionand other properties. Moreover, there is a general
settings section: field size, physics, etc. Details: It all starts by loading some DNA files in the list of species to insert. For every loaded DNA you must set some initial properties: number of individuals, starting energy, colour and starting position in the field. The "vegetable" checkbox states if the inserted species should be considered as a basis for the food chain, and therefore should be fed automatically by the program itself, or if their memebers must hunt autonomously for food. In the General Properties box, you can set the field size, the maximum number of robots allowed as well the method used to limit the robot number to the specified one. By clicking on "Fixed vegetables" the vegetables will be stuck in their position, as they had roots. Other possible settings are the physics settings - to specify the friction and gravity values for the field- and the costs/benefits window, where you can specify the cost of every memory operation of a DNA program as well the cost of shoots and the size of robot's energy bites. Finally, you can save or load the whole settings from disk. |
• Load simulation |
or |
• Save simulation |
or |
Quite obviously, these commands are there to let you load or save a whole simulation |
• Autosave |
In a somehow little universe like that of DarwinBots, it happens sometimes that a
mass extinction occurrs. Unless you want to stay for hours looking at the screen,
waiting for something interesting to sprout, you will likely miss something
good. But, no panic, there's an autosave option for you. Actually, you can set
a periodical saving of the whole simulation (which will be overwritten each time)
or the autosaving of the best robot, with a progressive number. |
From here you can set both friction and gravity value for the field. By setting a low friction value, the robots will tend to slide on the field, while with greater values their movements will become harder and consume more energy. Gravity is a force direct towards the bottom of the screen, so that setting a positiv value for it will make all your robots falling. |
• Insert species |
Here the commands are the same as in the New Simulation window, but the species will
be inserted in the current simulation rather than in a new one. |
• Global mutation rates |
or |
Althought any robot has his own mutation rates, sometimes you may want to give'em
a shock just to increase the genetic variability. There are two main consequences
in doing so: the first, the frequency of positive mutations, as well of negatives,
is increased; but on the other side, those mutations are less likely passed
to the offspring, so that positive ones could easily disappear. What I suggest,
is to increase the mutation rates for a brief time, and then put it back
again to a normal value to stabilize the population. |
• Modify costs |
or |
Every robot action has his own costs and benefits. From here, you can modulate costs
in terms of energy spent for various actions, like executing a 'store' operation,
shooting, or verifying every condition of the DNA program. This way, you can regulate the robots evolution: actually, a robot that shoots always and everything, will be successful only if the cost of a single shot is extremely low; moreover, by setting a cost for the condition of execution (rememeber - or read in the tutorial section- how the DNA is written) you will prevent the DNA from becoming plenty of always true conditions. |
• Physics |
or |
• Draw walls |
or |
You can draw walls made of blocks of the same size of the robots. Robots will see
and touch them, exactly as they were other robots. Eventually, they will learn how to tell walls from other robots in the simulation. |
• Find best |
or |
• Hide fingerprints |
or |
or |
• Fast mode |
• Change colour |
• Show family ties |
• Mutation rates |
• Console |
• Kill |
• Save DNA |
• ICQ options |
From here you can have a look over a robot's family ties. You can ask the program
to calculate the number of descendants to a specified generation, and mark them
for a subsequent look. Moreover, you can take a look to the relationships between individuals which are drawn following the legend shown at the window's bottom. |
Every robot has his own mutation rates, one for each tipe of possible mutation. To
understand this, you'd better take a look to the DNA tutorial first. Anyway, the DNA is a program made of blocks each one executed only if a set of conditions is verified. As in any other program, there are variables, constants, instructions with parameters. There are no jumps because execution is controlled by the activation blocks, i.e. the set of condition at the beginning of each instruction block. When a robot reproduces himself, his DNA is mutated randomly following the rates shown in this window. So, every different mutation type has his own different probability to occurr. |
The robot's console could be useful if you want some low level information about
it. At the moment, not much commands are implemented, still you can print the value
of any of the robot's memory cells (command printmem or ? followed by the
memory address (1-1000) or by the mnemonic code of the cell, i.e. .up. .refeye,
etc...) There are also a few buttons to display the state of the visual, touch and 'smell' senses. |
No need to explain this. If you're angry with some robot, kill it. |
This command saves the DNA of a robot, i.e. a text file which is both reloadable
in a different simulation and readable to understand why a robot behaves in a certain
way - and maybe to modify it. |
This feature is completely experimental, so use it at your own risk (like the rest
of the program...) It works this way: it lets you insert the nicknames of some ICQ contacts in the right list. When one of this contacts is online, his name is shown also in the left list, and his IP is grabbed, so the program becomes able to exchange, automatically or on-demand, robot DNAs with that person. Not if he's behind a proxy or a firewall, anyway. By setting the 'random contact' mode, the transfer will be towards a random contact. But, don't expect really this mess to work yet :) |
This precedure finds the 'best' robot in the simulation. Nevertheless, since there
is no simple way to tell if a robot is successful or not other than looking at
it, this procedure simply calculates which robot has the greatest number of descendants.
Obviously it may not be the most successfull (it may be the parent
of a successfull one, for instance). |
Hides the robots fingerprints, i.e. those superficial drawings showing the differences
in DNA. This speeds up simulation a bit. |
Only a frame out of ten is drawn, so that simulation is much faster, especially with
few robots |
Used to assign a robot a new colour. |