Evo-sims come in two flavors, chocolate and vanilla.
The vanilla kind involve creating a bot, some food, maybe an enemy, an environment and letting DB mutations act over x million cycles to see what happens. This is fun. Not really very productive, but fun in that it is interesting to see what can develop, which isn’t much, usually, but it's fun anyway.
The chocolate kind is a bit more complex. In a chocolate flavored evo-sim you are setting up a system to test some very specific evolutionary concept. You must take care to control everything but the test variable and be careful to NOT guide the test variable where you think you want it to go.
DBII mutations may be random but they are also overly extensive, coarse and extreme; well outside natural events.
Look at a mutation in nature. Except for muto-toxic poisoning which can change entire segments of genes (thalidomide) the vast majority of mutations involve changing one letter of the three-letter codon on a gene. In some cases this mutation does nothing since there are multiple codons coding for the same amino acid in the protein syntheses. In the other cases the codon change causes a different amino to be placed into the protein at that specific location. The resulting protein may fold differently and may have different electrochemical properties. It may or may not act differently within the system (cell). If the protein is a vital function agent, like hemoglobin, or is essential to other vital systems the mutant individual may not live. In other cases the individual may live but have a slightly longer arm, more muscle fibers in the biceps, truncated ganglia in the spine, you name it. The environment then determines if the individual prospers or not.
Most mutations in DBII are of the muto-toxin variety. No subtlety. Most DBII mutations radically change the gene function in the extreme or make the operation nonsensical.
cond
*.eye5 40 >
*.in1 *.out1 !=
*.refnrg 3000 <
*.attacked 0 =
*.horny 0 =
start
mult mult 625
stop
A series of DBII mutations is apt to take the above gene and do this:
cond
*.memval 40 >
*.in1 *.out1 !=
*.aimdx .shootval <
*.attacked 0 =
*.horny 0 =
start
mult mult *.hitsx
stop
or this:
cond
*.eye5 40 >
*.repro *.out1 !=
*.shot 3000 <
*.attacked 0 =
*.horny 0 =
start
store
dec sub inc 6 sub inc inc sub inc inc rnd sub inc store
store
6 6 store
inc store
5 rnd rnd 6 div sub mult .vel 625
stop
A more realistic mutation would take a constant and randomly apply a +- 10%.
cond
*.eye5 36 >
*.in1 *.out1 !=
*.refnrg 3300 <
*.attacked 0 =
*.horny -1 =
start
mult mult 688
stop
Or change a variable or operator to some other related type.
cond
*.eye1 40 >
*.in1 *.out2 =
*.nrg 3000 <
*.attacked 0 =
*.horny 0 =
start
mult rnd 625
stop
This will still change the function of a specific gene and may kill the individual but it may also lend more subtlety with less radical change thereby allowing, IMO, more realistic and more useful change to develop.
For chocolate sims the DBII mutations are too coarse. In my mind DBII mutations are too coarse in the extreme for any reasonable evo-sim, even vanilla flavored, except as a game. But, you gotta start somewhere and I can imagine the coding effort is already quite intense. Besides, I can turn off mutations.
I do chocolate-flavored un-guided non-creationist evo-sims. At least I would do them if [begin hint] .sexrepro was working [end hint] which, in my genius, I managed to work around except now I can’t get to the data since [begin hint] there is no way to dump memvals into a text file [end hint] for analysis.
Having said all this I hold out much hope for the future. DBII is by far the only system with the flexibility and capability to approach my needs. You folk have already done a superb job in putting this thing together and from what I’ve read in this forum your plans for the future are all stellar.
For now I lurk the updates with hope. And I’m learning that coarse vanilla can be quite fun.
Verbosely yours as always,
-P