Reproducing
In darwinbots there are three primary methods of reproduction. Mitoses, Sexual and Mutational.
Contents
Sysvars:
Reproducing:
|
Examples:
cond *.nrg 6000 > start 50 .repro store stop
If the bot has more than 6000 energy it stores "50" in memory location 300 (.repro). This causes Mitoses reproduction infront of the bot if there is enough free space: "50"% of the bots energy and body points get transfered to a new bot infront of this bot.
Reproduction control
.robage stores the age of the bot in cycles up to 32000
.mass stores the mass of a bot (energy and body points)
A reproduction gene that only gets activated by ".nrg > 2" can easily mutate into a Cancerous Bot or a sterile Big Bertha.
Mitoses
.repro allows a bot to reproduce an exact duplicate of itself. The number stored in .repro defines the percentage of energy and body to transfer into the child. Like all reproduction methods this takes a single cycle, after which a new bot is produced directly in front of you (ie: eye5) and facing you.
While the eyes begin working immediatly for the newborn, it takes a cycle before the refs begin reading back. This can cause wasteful attacks by the child, a good idea then is to limit the childs firing until at least one cycle of age.
Mutational
.mrepro is like .repro but mutation rates are 10 times the normal values. This reproduction method will cause mutations even if all mutation settings are disabled.
Sexual
The command .sexrepro, takes the dna of the nearest bot and mixes it with a bot's own to create a new bot's dna.
This way of reproduction is more complicated, and is generally less supported in new updates, making it potentially buggy. Currently this feature has been disabled in versions past 2.4, due to bugs. Plans are inplace to re-enable it when 2.4 is stable, so as to allow horizontal gene transfer.
Future Stuff
On the drawing boards are: