Sexrepro experiment
The following experiment was created by Botsareus (Paul Kononov) to see if robots' survival abilities improve when: 1.) It undergoes forced sexual reproduction with asexual reproduction being disabled. 2.) Restricted (small) field size for higher selective pressure. 3.) Test was conducted over 5 days, with a specimen being saved each day. 4.) A normal reproduction gene has been spliced back to test the robots overall survival ability effectively in the following test:
The test is a stepladder league with most basic settings, default battle costs, and full trans-species recognition fudging.
Results:
1st Place: Day3
'#generation: 205 '#mutations: 42 cond *.eye5 0 > *.refeye *.myeye != start *.refveldx .dx store *.tieang2 30 add .up store ''''''''''''''''''' Gene: 1 Ends at position 16 '''''''''''''''''' ''''''''''''''''''' Gene: 2 Begins at position 17 '''''''''''''''''' cond *.eye5 ''''''''''''''''''' Gene: 2 Ends at position 18 '''''''''''''''''' ''''''''''''''''''' Gene: 3 Begins at position 19 '''''''''''''''''' cond *256 *.in2 0 dropbool > <= > start stop ''''''''''''''''''' Gene: 3 Ends at position 28 '''''''''''''''''' *650 4 1 add *.eye5 *.refeye *.myeye *.shup ''''''''''''''''''' Gene: 4 Begins at position 37 '''''''''''''''''' start -1 .shoot store addstore -677 *.eye5 50 *.refeye *.myeye = *.out2 ''''''''''''''''''' Gene: 4 Ends at position 48 '''''''''''''''''' ''''''''''''''''''' Gene: 5 Begins at position 49 '''''''''''''''''' start *.veldn .up store > *.veldn .up store stop ''''''''''''''''''' Gene: 5 Ends at position 57 '''''''''''''''''' ''''''''''''''''''' Gene: 6 Begins at position 58 '''''''''''''''''' cond *.eye5 *.vshoot = *.refeye *.myeye = or rndstore *.refnrg and start -406 292 .aimright store *.refaimsx 37 .sexrepro store >= ''''''''''''''''''' Gene: 6 Ends at position 78 '''''''''''''''''' 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop '#hash: gs*hpo!QD%eL<%hl$<I_ '#tag:Day3.txt
2nd Place: Day2
'#generation: 134 '#mutations: 37 cond *.eye5 0 > *.refeye *.myeye != start *.refveldx .dx store 30 add .up store ''''''''''''''''''' Gene: 1 Ends at position 15 '''''''''''''''''' ''''''''''''''''''' Gene: 2 Begins at position 16 '''''''''''''''''' cond *.eye5 *.shell 0 dropbool *.multi > 20000 > <= > start *.refveldx 4 1 add *.eye1width add 1 add *.eye1width add *.eye5 50 > *.refeye *.myeye *.shup ''''''''''''''''''' Gene: 2 Ends at position 43 '''''''''''''''''' ''''''''''''''''''' Gene: 3 Begins at position 44 '''''''''''''''''' start -1 .shoot store *.refvelup ''''''''''''''''''' Gene: 3 Ends at position 48 '''''''''''''''''' ''''''''''''''''''' Gene: 4 Begins at position 49 '''''''''''''''''' cond *.eye5 50 *.refeye *.myeye = *.nrg start -8 7 1 *.veldn .up store *.trefage stop ''''''''''''''''''' Gene: 4 Ends at position 64 '''''''''''''''''' ''''''''''''''''''' Gene: 5 Begins at position 65 '''''''''''''''''' cond *.eye5 *.vshoot = *.refeye *.myeye = or rndstore *.refveldn *.pain start 314 .aimright store *.refeye > *.refypos clear *.eye4width rnd ''''''''''''''''''' Gene: 5 Ends at position 85 '''''''''''''''''' ''''''''''''''''''' Gene: 6 Begins at position 86 '''''''''''''''''' start 37 .sexrepro store stop ''''''''''''''''''' Gene: 6 Ends at position 90 '''''''''''''''''' 50 .sexrepro store stop 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop '#hash: yYuoy&oUNFo8'%'\!%Gv '#tag:Day2.txt
3rd Place: Day1
'#generation: 61 '#mutations: 7 cond *.eye5 0 > *.refeye *.myeye != start *.refveldx .dx store *.tieang2 30 add .up store ''''''''''''''''''' Gene: 1 Ends at position 16 '''''''''''''''''' ''''''''''''''''''' Gene: 2 Begins at position 17 '''''''''''''''''' cond *.eye5 0 = 21069 > 20000 > start *.refveldx .dx store *.refvelup pow add 30 add *.eye5 *.refeye *.myeye *.shup ''''''''''''''''''' Gene: 2 Ends at position 37 '''''''''''''''''' ''''''''''''''''''' Gene: 3 Begins at position 38 '''''''''''''''''' start -1 .shoot store addstore -677 ''''''''''''''''''' Gene: 3 Ends at position 43 '''''''''''''''''' ''''''''''''''''''' Gene: 4 Begins at position 44 '''''''''''''''''' cond *.eye5 50 *.refeye *.myeye = *.nrg start -8 7 *.out10 *.refvelup .up store stop ''''''''''''''''''' Gene: 4 Ends at position 58 '''''''''''''''''' ''''''''''''''''''' Gene: 5 Begins at position 59 '''''''''''''''''' cond *.eye5 0 = *.refeye *.myeye = or *.nrg 20000 < and rndstore *78 and start 314 .aimright store stop ''''''''''''''''''' Gene: 5 Ends at position 78 '''''''''''''''''' ''''''''''''''''''' Gene: 6 Begins at position 79 '''''''''''''''''' cond *.eye2width > 20000 *.nrg 20000 > inc start 314 rnd .aimright store 100 rnd ''''''''''''''''''' Gene: 6 Ends at position 93 '''''''''''''''''' ''''''''''''''''''' Gene: 7 Begins at position 94 '''''''''''''''''' start 37 .sexrepro store stop ''''''''''''''''''' Gene: 7 Ends at position 98 '''''''''''''''''' 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop '#hash: Ub8N:$-sI!%KCT_=<c!! '#tag:Day1.txt
4th Place: Initial robot
'Animal_Minimalis 'By: Botsareus based on by Numsgil 'Good for mutation sims and for 'newbies to see how a basic bot works. 'Contains everything necessary for it 'to survive and reproduce. 'Sexrepro version ' Gene 1 Food Finder cond *.eye5 0 > *.refeye *.myeye != start *.refveldx .dx store *.refvelup 30 add .up store stop ' Gene 2 Mate Finder cond *.eye5 0 > *.refeye *.myeye = *.nrg 20000 > start *.refveldx .dx store *.refvelup 30 add .up store stop ' Gene 3 Eat Food cond *.eye5 50 > *.refeye *.myeye != start -1 .shoot store *.refvelup .up store stop ' Gene 4 Shoot Sperm cond *.eye5 50 > *.refeye *.myeye = *.nrg 20000 > start -8 .shoot store *.refvelup .up store stop ' Gene 5 Avoiding Family cond *.eye5 0 = *.refeye *.myeye = or *.nrg 20000 < and 'don't spin if time for sex repro start 314 rnd .aimdx store stop ' Gene 6 Look for Family cond *.refeye *.myeye != *.nrg 20000 > start 314 rnd .aimdx store 100 rnd .up store stop ' Gene 7 Reproduce cond *.nrg 20000 > start 10 .sexrepro store 'changed to sex repro stop 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop end '#tag:Init.txt
5th Place: Day5
'#generation: 325 '#mutations: 68 cond *.eye5 *.aimleft > *.refeye *.myeye *.refeye *.shang %= start *.refveldx .dx store *.tieang2 30 add .up store clear ''''''''''''''''''' Gene: 1 Ends at position 19 '''''''''''''''''' ''''''''''''''''''' Gene: 2 Begins at position 20 '''''''''''''''''' cond *.eye5 ''''''''''''''''''' Gene: 2 Ends at position 21 '''''''''''''''''' ''''''''''''''''''' Gene: 3 Begins at position 22 '''''''''''''''''' cond *.venval *.tin3 *.multi over *.multi *.out7 start 1 add *.eye5 pow *-121 ''''''''''''''''''' Gene: 3 Ends at position 34 '''''''''''''''''' ''''''''''''''''''' Gene: 4 Begins at position 35 '''''''''''''''''' cond store *.myeye *.shup *.refage *.shell start -1 .shoot store *.focuseye -677 *.eye5 *.backshot *.refeye *.myeye = *.aimright ''''''''''''''''''' Gene: 4 Ends at position 52 '''''''''''''''''' ''''''''''''''''''' Gene: 5 Begins at position 53 '''''''''''''''''' start *.veldn .up store > >> *.refnrg *.veldn .up store stop ''''''''''''''''''' Gene: 5 Ends at position 63 '''''''''''''''''' ''''''''''''''''''' Gene: 6 Begins at position 64 '''''''''''''''''' cond *.eye5 *.vshoot = *.refeye *.myeye = or *.tieang4 *.refnrg start -406 292 .aimright store *.totalbots *.velscalar 1 *.totalbots 37 .sexrepro store stop ''''''''''''''''''' Gene: 6 Ends at position 86 '''''''''''''''''' 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop '#hash: nI!HdvO1*P'_f/9]*[JP '#tag:Day5.txt
6th Place: Day4
'#generation: 252 '#mutations: 84 cond *.eye5 *.aimleft > *.refeye *.myeye *.refeye *.hit %= start *.refveldx .dx store *.tieang2 30 add .up store ''''''''''''''''''' Gene: 1 Ends at position 18 '''''''''''''''''' ''''''''''''''''''' Gene: 2 Begins at position 19 '''''''''''''''''' cond *.eye5 ''''''''''''''''''' Gene: 2 Ends at position 20 '''''''''''''''''' ''''''''''''''''''' Gene: 3 Begins at position 21 '''''''''''''''''' cond *256 *.shell 0 *.fixlen swap over *.multi > <= *.tin3 start 1 add add *.eye5 *.refeye *.myeye *.shup - 26 ''''''''''''''''''' Gene: 3 Ends at position 41 '''''''''''''''''' ''''''''''''''''''' Gene: 4 Begins at position 42 '''''''''''''''''' start -1 .shoot store *.fixed -677 *.eye5 50 *.refeye *.myeye = *.delgene ''''''''''''''''''' Gene: 4 Ends at position 53 '''''''''''''''''' ''''''''''''''''''' Gene: 5 Begins at position 54 '''''''''''''''''' start *.veldn .up store > *.veldn .up store stop ''''''''''''''''''' Gene: 5 Ends at position 62 '''''''''''''''''' ''''''''''''''''''' Gene: 6 Begins at position 63 '''''''''''''''''' cond *.eye5 *.vshoot = *.refeye *.myeye = or rndstore *.trefaimdx start -406 292 .aimright store *.refeye !%= *.waste 37 .sexrepro store stop ''''''''''''''''''' Gene: 6 Ends at position 84 '''''''''''''''''' 'normal repro gene: cond *.nrg 20000 > start 10 .repro store stop '#hash: )KV*'%&t&)JtqYV!T?0e '#tag:Day4.txt
As you can see the robots' survival efficiency generally did improve as the experiment went on.
The most interesting idea we deduct from this experiment is that, instead of making field size as large as possible, sometimes it is a good idea to make the field size as small as possible for more selective pressure.
The reason days 5 and 6 are worse is probably that the costs for maintaining the DNA overpowered the need for basic survival. As you can see, in days 5 and 6 DNA is smaller.