Author Topic: Randombot evolution sim  (Read 15064 times)

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #15 on: April 10, 2012, 05:06:55 PM »
If you plan on leaving them on for a while, it's sometimes better to just buy a new stripped down computer with a core i7, in terms of the energy consumption.  Each DB instance is single threaded, but you can run multiple instances simultaneously.  So one of the new 6 core processors can run 12 instances (6 cores with hyperthreading = 12 hardware threads) pretty effectively.

In an ideal world, this is precisely what I'd do.  Sadly at this stage in my life I'm an impoverished student, so it'll be a while before I can just fork out on a hobby number cruncher xD

Quote
If they don't get a lot of nrg from being a veggy, they should learn to feed as well, to supplement their meager nrg income.  Pretty soon after that all the non feeding vegs should get eaten.  Then you lower the veggy feeding some more, and introduce dumb bots to feed the animals by getting eaten.  You keep lowering the veg nrg until you can turn it off entirely.  Then start the sim with that species not marked as vegs, and you can introduce in smarter and smarter vegs.

Ok I get where you're coming from with that - how do you give them a meagre nrg income? I have my veg feeding at 1 nrg per kilobody point, and anything withat least a few hundred body seems to be doing fine - in fact most of them have 32000 nrg - that is until the age cost catches up with them and kills them off.

Quote
Heh, that's a funny way to evolve locomotion. :)

I don't think I'll credit them with having evolved this on purpose to get around, but I suppose there's the possibility that a bot might use this as a means of locomotion if movement was exceptionally costly and body wasn't an issue...

Incidentally, the latest update: so far there is no sign of sensible reproduction evolving, however I feel we are getting closer.  I have attached a few curiositied which have mutated along the way.  The first is a robot that compulsively ties to anything in front of it.  It doesn't do anythig further, but it's has a little cluster of other bots attached to it now, and it's at least a step in the right direction.
The second is a massive (32000 body) bot which constantly shoots (I'm not sure what it shoots either), but from the once-over I've given its DNA, I can't work out why it shoots constantly, nor why it's so big.
The final curiosity is another behemoth (32000 body) which again I haven't been able to ascertain the reason for its massive size.  Please feel free to pick apart the coding for each and discuss, I'd be interested to know what makes these guys tick.
I find the discovery of these behaviours heartening - for a start it shows that a wide variety of interesting behaviour is possible from these bots, and secondly, all I need is for one of them to start reproducing again, and I could have the makings of a rudimentary self-sufficient bot!

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Randombot evolution sim
« Reply #16 on: April 10, 2012, 05:40:15 PM »
Quote
I'd be interested to know what makes these guys tick.
A guy by the name of Prsn828 was working  an a plugin that should make mutated DB easier to comprehend, unfortunately I have no idea what happened with this. http://forum.darwinbots.com/index.php/topic,3442.0.html

Huge robots are an evolutionary advantage because they put out the most energy pomp, unfortunately they never reproduce.

A robot does not need to shoot to gather energy, maybe it is tie feeding.
« Last Edit: April 10, 2012, 05:42:24 PM by Botsareus »

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #17 on: April 10, 2012, 06:01:45 PM »
Sorry, I should have explained - these bots are far from adapting to their environment.  The behaviours seen here are merely due to random mutation - unless they develop some way of reproducing sensibly, this behaviour is null and void.

One thing that the growing huge does mean though is that it will greatly increase their longevity, which will at least give them more of a chance to evolve other behaviours including reproduction.  We'll see.

I just posted the bots out of curiosity as to how the behaviours they have developed work, none of them will be at all successful in their present condition.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Randombot evolution sim
« Reply #18 on: April 10, 2012, 06:08:10 PM »
 
Quote
I just posted the bots out of curiosity as to how the behaviours they have developed work

:D I kinda gave up trying when I evolved this; (There are 233 genes, it does not fit on the page)

Code: [Select]
'4111
 *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.dnalen *.eye3 *.vel 50 store
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  1 Begins at position  18  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  1 Ends at position  26  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  2 Begins at position  33  '''''''''''''''''''''''
 cond
 *-353 angle dist *489 div or
 and
 not
 dropbool
 *.ypos ceil inc
 << <=
 !=
 div dist -1128 *382 *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc

''''''''''''''''''''''''  Gene:  2 Ends at position  76  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  77  '''''''''''''''''''''''
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  3 Ends at position  84  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  85  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  4 Ends at position  89  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  90  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  5 Ends at position  98  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  6 Begins at position  105  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 dupbool
 -- ceil clear
''''''''''''''''''''''''  Gene:  6 Ends at position  114  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  7 Begins at position  115  '''''''''''''''''''''''
 cond
 swapbool
 -336 & add | over >> and
 dist swapbool
 >
 xor
 else
 sub !%=
 691 << *.deltie 1 swapbool
 1 1 *.mkshell >=

''''''''''''''''''''''''  Gene:  7 Ends at position  139  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  8 Begins at position  140  '''''''''''''''''''''''
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  8 Ends at position  144  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  9 Begins at position  145  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  9 Ends at position  150  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  10 Begins at position  152  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 sgn .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  10 Ends at position  180  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  11 Begins at position  181  '''''''''''''''''''''''
 start
 127 dec
 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  11 Ends at position  187  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  12 Begins at position  188  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 705 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  12 Ends at position  203  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  13 Begins at position  204  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 ceil clear 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc

''''''''''''''''''''''''  Gene:  13 Ends at position  238  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  14 Begins at position  239  '''''''''''''''''''''''
 else
 -886 add sub
''''''''''''''''''''''''  Gene:  14 Ends at position  242  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  15 Begins at position  243  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++ !=
 dropbool
 *.mkvirus floor floor !%=
 !%=
 691 ceil over *.hitup store
 and
 sgn else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  15 Ends at position  273  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  16 Begins at position  275  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  16 Ends at position  285  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  17 Begins at position  286  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor store
 -14 <
 abs *-108 xor
 pyth -186 ++ !=
 dropbool
 *.mkvirus floor floor !%=
 !%=
 691 ceil over *.hitup store
 and
 sgn else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  17 Ends at position  334  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  18 Begins at position  336  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  18 Ends at position  346  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  19 Begins at position  347  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  19 Ends at position  380  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  20 Begins at position  381  '''''''''''''''''''''''
 else
 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=

''''''''''''''''''''''''  Gene:  20 Ends at position  404  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  21 Begins at position  405  '''''''''''''''''''''''
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  21 Ends at position  409  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  22 Begins at position  410  '''''''''''''''''''''''
 else
 << pow *.deltie 1 swapbool
 1 1 *.mkshell >=

''''''''''''''''''''''''  Gene:  22 Ends at position  419  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  23 Begins at position  420  '''''''''''''''''''''''
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  23 Ends at position  424  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  24 Begins at position  425  '''''''''''''''''''''''
 else
 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=

''''''''''''''''''''''''  Gene:  24 Ends at position  448  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  25 Begins at position  449  '''''''''''''''''''''''
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  25 Ends at position  453  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  26 Begins at position  454  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  26 Ends at position  459  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  27 Begins at position  461  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  27 Ends at position  471  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  28 Begins at position  472  '''''''''''''''''''''''
 cond
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  28 Ends at position  477  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  29 Begins at position  479  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  29 Ends at position  489  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  30 Begins at position  490  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc

''''''''''''''''''''''''  Gene:  30 Ends at position  535  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  31 Begins at position  536  '''''''''''''''''''''''
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  31 Ends at position  543  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  32 Begins at position  544  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  32 Ends at position  548  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  33 Begins at position  549  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  33 Ends at position  557  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  34 Begins at position  564  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 dupbool
 -- ceil clear .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  34 Ends at position  594  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  35 Begins at position  595  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  35 Ends at position  599  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  36 Begins at position  600  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  36 Ends at position  608  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  37 Begins at position  615  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 dupbool
 -- ceil clear
''''''''''''''''''''''''  Gene:  37 Ends at position  624  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  38 Begins at position  625  '''''''''''''''''''''''
 cond
 swapbool
 -336 & add | over >> and
 dist swapbool
 >
 xor
 else
 sub !%=
 691 ceil over *.hitup store
 and
 sgn
''''''''''''''''''''''''  Gene:  38 Ends at position  647  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  39 Begins at position  648  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  39 Ends at position  653  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  40 Begins at position  655  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  40 Ends at position  665  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  41 Begins at position  666  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1786 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc

''''''''''''''''''''''''  Gene:  41 Ends at position  710  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  42 Begins at position  711  '''''''''''''''''''''''
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  42 Ends at position  718  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  43 Begins at position  719  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  43 Ends at position  723  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  44 Begins at position  724  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  44 Ends at position  732  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  45 Begins at position  739  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  45 Ends at position  771  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  46 Begins at position  772  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  46 Ends at position  777  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  47 Begins at position  779  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  47 Ends at position  789  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  48 Begins at position  790  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add over >> and
 dist swapbool
 >
 xor

''''''''''''''''''''''''  Gene:  48 Ends at position  814  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  49 Begins at position  815  '''''''''''''''''''''''
 else
 sub !%=
 691 ceil over *.hitup store
 and
 sgn
''''''''''''''''''''''''  Gene:  49 Ends at position  824  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  50 Begins at position  825  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  50 Ends at position  830  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  51 Begins at position  832  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++ !=
 dropbool
 *.mkvirus floor floor !%=
 !%=
 691 ceil over *.hitup store
 and
 << store
 inc
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  51 Ends at position  866  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  52 Begins at position  867  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  52 Ends at position  871  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  53 Begins at position  872  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  53 Ends at position  880  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  54 Begins at position  887  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 dupbool
 -- ceil clear
''''''''''''''''''''''''  Gene:  54 Ends at position  896  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  55 Begins at position  897  '''''''''''''''''''''''
 cond
 swapbool
 -336 & ceil over *.hitup store
 *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  55 Ends at position  916  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  56 Begins at position  917  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  56 Ends at position  922  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  57 Begins at position  924  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  57 Ends at position  934  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  58 Begins at position  935  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *.tin6 add over >> and
 dist swapbool
 >
 xor

''''''''''''''''''''''''  Gene:  58 Ends at position  959  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  59 Begins at position  960  '''''''''''''''''''''''
 else
 sub !%=
 691 ceil over *.hitup store
 and
 sgn
''''''''''''''''''''''''  Gene:  59 Ends at position  969  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  60 Begins at position  970  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  60 Ends at position  975  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  61 Begins at position  977  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++ !=
 dropbool
 *.mkvirus floor floor !%=
 !%=
 691 ceil over *.hitup store
 and
 << store
 inc
 else
 -886 and
 sgn
''''''''''''''''''''''''  Gene:  61 Ends at position  1007  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  62 Begins at position  1008  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  62 Ends at position  1013  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  63 Begins at position  1015  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++ !=
 dropbool
 *.mkvirus floor floor !%=
 !%=
 691 ceil over *.hitup store
 and
 sgn else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  63 Ends at position  1045  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  64 Begins at position  1047  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++ sgn else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  64 Ends at position  1064  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  65 Begins at position  1066  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  65 Ends at position  1076  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  66 Begins at position  1077  '''''''''''''''''''''''
 cond
 * *.body 1786 ceil not
 sgn sgn else
 << 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=

''''''''''''''''''''''''  Gene:  66 Ends at position  1108  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  67 Begins at position  1109  '''''''''''''''''''''''
 start
 ceil not
 sgn sgn
''''''''''''''''''''''''  Gene:  67 Ends at position  1113  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  68 Begins at position  1114  '''''''''''''''''''''''
 else
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  68 Ends at position  1119  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  69 Begins at position  1121  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  69 Ends at position  1131  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  70 Begins at position  1132  '''''''''''''''''''''''
 cond
 %=
 dist << sub stop
''''''''''''''''''''''''  Gene:  70 Ends at position  1137  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  71 Begins at position  1139  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  71 Ends at position  1149  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  72 Begins at position  1150  '''''''''''''''''''''''
 cond
 * <<
''''''''''''''''''''''''  Gene:  72 Ends at position  1152  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  73 Begins at position  1153  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  73 Ends at position  1163  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  74 Begins at position  1164  '''''''''''''''''''''''
 cond
 * *.body 1786 *.myeye 1 *.mkshell >=
 start
 ceil not
 sgn .refvelup inc
 *265 store
 *265 store
 *.tin6 add *665 store
 swapbool
 false
 << store
 inc

''''''''''''''''''''''''  Gene:  74 Ends at position  1190  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  75 Begins at position  1191  '''''''''''''''''''''''
 else
 -886 add sub xor
 !=
 -26 *-1152
''''''''''''''''''''''''  Gene:  75 Ends at position  1198  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  76 Begins at position  1199  '''''''''''''''''''''''
 start
 127 dec
 sgn sqr
''''''''''''''''''''''''  Gene:  76 Ends at position  1203  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  77 Begins at position  1204  '''''''''''''''''''''''
 cond
 clear ceil not
 rnd abs angle ~ stop
''''''''''''''''''''''''  Gene:  77 Ends at position  1212  '''''''''''''''''''''''
 *153 - stop
 !%=
 *267 store

''''''''''''''''''''''''  Gene:  78 Begins at position  1219  '''''''''''''''''''''''
 cond
 *-353 angle inc
 div -436 1 *.in5 *.readtie *.in9 .refaimdx dec
 *.mass 237 div 2 << pow floor << pow *.deltie 1 swapbool
 1 1 *.mkshell >=
 start
 ceil not
 sgn sgn *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  78 Ends at position  1256  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  79 Begins at position  1257  '''''''''''''''''''''''
 cond
 * *.body stop
''''''''''''''''''''''''  Gene:  79 Ends at position  1260  '''''''''''''''''''''''
 <<
''''''''''''''''''''''''  Gene:  80 Begins at position  1262  '''''''''''''''''''''''
 cond
 499 store
 -14 <
 abs *-108 xor
 pyth -186 ++
''''''''''''''''''''''''  Gene:  80 Ends at position  1272  '''''''''''''''''''''''
« Last Edit: April 11, 2012, 01:18:35 AM by Numsgil »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Randombot evolution sim
« Reply #19 on: April 11, 2012, 01:26:36 AM »
Ok I get where you're coming from with that - how do you give them a meagre nrg income? I have my veg feeding at 1 nrg per kilobody point, and anything withat least a few hundred body seems to be doing fine - in fact most of them have 32000 nrg - that is until the age cost catches up with them and kills them off.

That sounds about right.  If you have a reproducing strain, as soon as someone figures out how to fire you should see that sub strain take over.  Right now it's the quiet before the storm.

For the bots you posted:

This is a stripped version of the shooter bot (done by hand):
Code: [Select]
782 inc
 801 .out8 store
 905 inc
 485 .eye3width store
 523 191 store
 593 407 store
 .eye9dir inc
 86 inc
 275 912 store
 148 120 store
 373 * inc
 382 dec
 483 686 | dec
 550 dec
 .in8 dec
 661 dec
 859 1065 store
 770 279 store
 589 917 store
 354 56 store
 36 438 mult 187 store

Most of it is just random poking.  But the shooting is from this:

483 686 | dec

The bitwise or of 483 and 686 is 7, which is the .shoot sysvar.  dec means it's firing -1 shots.  So it's learned to feed constantly, basically.

I didn't look at the others.  The trick is just to find the inc, dec, and store commands, and then walk backwards through the program as many stack places as you need to to get the full command.  It's usually more effort than it's worth, though :)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Randombot evolution sim
« Reply #20 on: April 11, 2012, 02:41:09 PM »
(thx for fixing my post Numsgil)



Beanspoon, You can also check out the robot building tutorials on the wiki to help you figure things out...

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #21 on: April 15, 2012, 03:44:25 PM »
Cheers for the advice guys.  Currently I'm ridiculously busy with my Masters dissertation, but once I've got my final year out of the way I'll have a lot more free time to play with this.

Speaking of your "calm before the storm" Nums, the massive shooter which I posted a while ago has survived all this time, has made the shoot gene dormant, re-started reproduction and its population has exploded.  More excitingly, I am seeing a lot of promising behaviour, including periodic (not cancerous as far as I can tell) reproduction, periodic (but unaimed) shooting, periodic and random bursts of movement, and for some reason some of them seem to have activated their .fixed memory location.  I will be keeping a close eye on things now to see what develops...

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #22 on: May 06, 2012, 05:17:45 AM »
A quick update:  The evosim will be down for a little while.  My project is now finished so I've had to relinquish my work computer which was running it.  It may be a little while before I can get my hands on another computer, but once I do I'll get it running again.

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #23 on: October 30, 2012, 11:54:45 AM »
Good day friends!  So I have acquired a new PC to run DB2 on!  Hooray!  Therefore, I will be starting up my evosim once again just as soon as I've remembered which file is which :/
« Last Edit: October 30, 2012, 12:06:44 PM by Beanspoon »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Randombot evolution sim
« Reply #24 on: October 31, 2012, 05:25:21 PM »
Ha, sounds good. Can never have too much horsepower to throw at DB.

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #25 on: November 05, 2012, 07:10:30 AM »
Ha, sounds good. Can never have too much horsepower to throw at DB.

True that.  The computer I'm running now is a quad core, so I might get two instances on the go, one with algal-like veg and the other with cancerous veg.  I'll need the other two cores for calculation however, as it is really a work computer ;)

I tell you what, evolving a sensible reproduction pattern is not easy...I have continued the sim from where I left off, and after 10m cycles the bots are still reproducing uncontrollably and killing themselves off, or have switched off their reproduction gene and are just sitting there.  Patience is the key...

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #26 on: November 21, 2012, 10:38:51 AM »
Success!  It took about 40 million cycles, but I finally have a species which reproduces sensibly!  I was lucky enough to check it just as the first one reproduced.  I increased the energy so that it had a better chance of surviving, and am now slowly bringing it back down to the original level.  I have one question: while the mutation rate is set extremely low (1/32x), a large number of mutations happen almost every time it reproduces.  We're talking 5 or 6 different reproduction-related changes per offspring.  Is this a fault with the program?  I'm loath to start a new sim with just one because I don't know which one to choose (there are over 900 of them now, and almost all different) and that would defeat the purpose of natural selection.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Randombot evolution sim
« Reply #27 on: November 21, 2012, 01:11:43 PM »
The mutation rate at 1/32x is still quite high, really. Erm, the best way is to set the mutation rate for each type of bot to 10 times less, make the number wherever it is to a larger number. Can't remember exactly how to do that, though.

Offline Beanspoon

  • Bot Neophyte
  • *
  • Posts: 26
    • View Profile
Re: Randombot evolution sim
« Reply #28 on: November 22, 2012, 05:28:53 AM »
Ah ok - I know how to do that for a new sim, but not while one is running...

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Randombot evolution sim
« Reply #29 on: November 23, 2012, 03:29:30 PM »
I have an idea how you can give us your robots:

1.) Memorize your out folder for internet mode. (Just make sure your outbound folder points to a real directory you can write to)
2.) Almost skipped a step  :P  Make sure the inbound folder points to an empty directory
3.) Take a program such as notepad.exe and make a copy of it in the same folder as darwinbots calling it "DarwinbotsIM.exe"
4.) Run with IM on for 8K cycles or so (you do not need to make a new simulation)
5.) Go to your out folder and select all robots, zip em and send em to us.



I believe you can accomplish the same result by adding a teleporter, although I never used one.
« Last Edit: November 25, 2012, 02:45:57 PM by Botsareus »