Author Topic: coexistence  (Read 8937 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: coexistence
« Reply #30 on: April 10, 2022, 08:11:40 PM »
edit: i need some help, the graphs are broken, it says i have the population and average mutations graph running but when i click on them nothing happens, i can't even see them, do you know how to fix this? the other graphs are fine btw

I don't know off hand what might have happened.  Have you tried saving and restarting the program?  It might be in a funky state.

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #31 on: April 11, 2022, 11:09:53 PM »
I don't know off hand what might have happened.  Have you tried saving and restarting the program?  It might be in a funky state.

no matter what I do, even when I restart and/or reload, the population and mutation graphs still won't show up!!! but it's so weird because when i open up cheat engine and search up processes, they're there. oh well i still got around it by using the customizable graphs. By the way everyone's blue now so yeah there's that

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: coexistence
« Reply #32 on: April 18, 2022, 12:52:46 AM »
My guess is some counter is overflowing its 16 or 32 bit bounds?  You could try starting a new simulation with the same bots, although it's sad to lose some historical data, I know.

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #33 on: April 19, 2022, 01:55:42 PM »
it's so weird but yesterday i got an error so i saved it and loaded it back up, but when i loaded the simulation the population and average mutations graphs were back!!! they've been missing for years oh my god

anyways i enabled friction so now they can't slide all over the place anymore because they eventually come to a stop. despite this the bots have adapted quite nicely, and there has even been an increase in species diversity because now the map is much bigger even though i didn't actually make it bigger, it just takes a lot more effort to travel around than before. there's 2 dominant species, this dark blue one that's almost indistinguishable from the background (i had a black species once - it was fun trying to see them) that inhabits the southeast part of the map, this lavender one which inhabits the rest of the map, and even this small prospective yellow species in the west. the population is much higher as well because now the algae don't get instantly eaten and have a chance to reproduce, creating huge fields of algae resulting in higher overall energy. though this also created a little problem for the bots, who tended to keep diving straight into these massive piles and die from eating too much (low waste threshold of 1000). usually the bots get rid of their waste by reproducing, but when deep inside a forest of algae, there's no room to reproduce so they just kept collecting waste until they died. it was so bad that huge groups of algae WITHOUT ANY DEFENSES could paradoxically stick around for a good while just because everything that tried to eat them died. I think they're getting better at it though, because big clumps of algae don't stick around for long anymore, either the bots snake their way through the algae until they kill one and have space to reproduce and it's off to the races from there, or if there are a bunch of bots around, a few will burrow deep and kill a bunch of algae until they die, clearing enough room so that the rest can more safely eat the remaining algae since they have enough space to reproduce and dilute the waste. the standoff behavior of the bots backing away from each other while shooting is still widespread, and i've seen it put to good use on a few occasions where the bots killed cannibals pursuing them without taking a scratch in return. through sometimes it gets freaky when bots get trapped in a small space by the randomly moving shapes, they wiggle around frantically and without space to run away eventually start eating each other, and the biggest usually comes out alive

anyways its time for BEST BOTS!
13 descendants out of a population of 270. 5% of the population is not bad at all, though this one has his vision messed up because i think they survived having too much waste for only a little bit but it screwed them up permanently
Code: [Select]
swap 528 *.mypoison *404 *.trefnrg substore
 30007 >
 *.velscalar .out10 store
 store
 rnd *.eye2 floorstore
 over 3411 -814 !=
 dupbool
 sgnstore
 cos *.vel sgn divstore
 *.availability overbool
 .eye6width store
 14 angle !%=
 clear 444 -636 480
 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  41  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  42  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.refdn *.hitdn inc
 start
 -6 .shoot store
 .eye1width store
 12119 store
 *.refveldx .dx addstore
 *.refeye *.dnalen .up addstore
 store
 *.availability *.trefvelmysx .strbody inc
 450 *.reffixed ^ >

''''''''''''''''''''''''  Gene:  2 Ends at position  72  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  73  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  3 Ends at position  74  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  75  '''''''''''''''''''''''
 else
 *.in9 *.trefaim 1831 300 9198
''''''''''''''''''''''''  Gene:  4 Ends at position  80  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  81  '''''''''''''''''''''''
 start
 *.refaim 24709 *.veldn multstore
 *.trefage *.nrg 516 30200 28503 ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
 --
''''''''''''''''''''''''  Gene:  5 Ends at position  99  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  100  '''''''''''''''''''''''
 else
 *-314 false
 sgn multstore
 %=
 !~=

''''''''''''''''''''''''  Gene:  6 Ends at position  106  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  107  '''''''''''''''''''''''
 else
 drop ~''''''''''''''''''''''''  Gene:  7 Ends at position  109  '''''''''''''''''''''''

With significantly less messed up vision, 12 descendants out of a population of 240! Also 5% so hey thats pretty decent. Also had 67.68 shell but that's probably an accident from the waste seeping into their dna
Code: [Select]
swap 528 *367 *404 *.trefnrg substore
 30007 >
 *.velscalar .out10 store
 store
 rnd *.eye2 floorstore
 over 3411 -814 !=
 dupbool
 sgnstore
 cos *.vel sgn divstore
 *.availability overbool
 .eye6width store
 14 angle !%=
 clear 444 -636 480
 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  41  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  42  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.refdn *.hitdn inc
 start
 -6 .shoot store
 .eye1width store
 12119 store
 *.refveldx .dx addstore
 *.refeye *.dnalen .up addstore
 store
 *.availability *.trefvelmysx .strbody inc
 450 *.reffixed ^ >

''''''''''''''''''''''''  Gene:  2 Ends at position  72  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  73  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  3 Ends at position  74  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  75  '''''''''''''''''''''''
 else
 *.in9 *.trefaim 1831 300 9198
''''''''''''''''''''''''  Gene:  4 Ends at position  80  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  81  '''''''''''''''''''''''
 start
 *.refaim 24709 *.veldn multstore
 *.trefage *.nrg 516 30200 28503 ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
 --
''''''''''''''''''''''''  Gene:  5 Ends at position  99  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  100  '''''''''''''''''''''''
 else
 *-314 false
 sgn multstore
 %=
 !~=

''''''''''''''''''''''''  Gene:  6 Ends at position  106  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  107  '''''''''''''''''''''''
 else
 drop ~''''''''''''''''''''''''  Gene:  7 Ends at position  109  '''''''''''''''''''''''

Oh my god, this one also has messed up vision, anyways 16 descendants out of a population of 230 so this is actually the best (7%)
Code: [Select]
swap 528 *367 *404 *.trefnrg *.velscalar .out10 store
 store
 rnd *.eye2 floorstore
 *.refvenom
 else
 -814 !=
 dupbool
 sgnstore
 cos *.vel sgn divstore
 *.availability overbool
 .eye6width store
 14 angle !%=
 clear 444 -636 480
''''''''''''''''''''''''  Gene:  1 Ends at position  33  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  34  '''''''''''''''''''''''
 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  2 Ends at position  38  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  39  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.refdn *.hitdn inc
 start
 -6 .shoot store
 .eye1width store
 12119 store
 *.refveldx .dx addstore
 *.refeye *.dnalen .up addstore
 store
 *.availability *.trefvelmysx .strbody inc
 450 *.reffixed ^ >

''''''''''''''''''''''''  Gene:  3 Ends at position  69  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  70  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  4 Ends at position  71  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  72  '''''''''''''''''''''''
 else
 *.in9 *.trefaim 1831 300 9198
''''''''''''''''''''''''  Gene:  5 Ends at position  77  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  78  '''''''''''''''''''''''
 start
 *.refaim 24709 *.veldn multstore
 *.trefage *.nrg 516 30200 28503 ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
 multstore
 %=
 !~=

''''''''''''''''''''''''  Gene:  6 Ends at position  98  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  99  '''''''''''''''''''''''
 else
 drop ~''''''''''''''''''''''''  Gene:  7 Ends at position  101  '''''''''''''''''''''''


Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #34 on: April 30, 2022, 01:20:45 AM »
oh great, what the hell, now the graphs are broken again  :burnup: :burnup: :burnup: :burnup: :burnup:

anyways hello im back after a few more million cycles, i expanded the map yesterday and some wild things happened... first of course there was a wild landgrab because new spawned algae in the new area could grow really large because there wasn't anything eating them, there was one colony in the bottom right that took over like 1/16 of the map, but eventually got eaten once all the bots got in there, an interesting development was this small species of cannibals that grew in the new top right area, when i panned over to see them there was a group of 3 fighting to the death and another 5 just chilling, unfortunately for them they all died because if they went after their highland cannibal comrades they both waste tons of energy fighting, and if they went after the non homicidal bots they would just get parthian shotted to death, they would be chasing them but getting shot in the face the whole time while none of their own shots land. they probably developed out of a mutated cannibal bot that found itself stuffed in a big bunch of algae, so they and their children were fine for a while cause they were all busy eating algae but once it ran out it was hunger games 2 electric boogaloo for them XDDD average population has increased from 250ish to the low 300s now that there's more space and less energy wasted shooting at each other, but i did instigate a massive famine while writing this and wow population has fallen to 210, oh wait no wow they recovered back up to 290, amazing, i really underestimated the power of the equilibrium point

there's an image of 3 bots stuck in a death box, there used to be 4 but i guess the other one died (spooky!) there's an image of the bots feeding on some algae, a picture of the whole map, and a picture of a random bot who mutated to become a plant, don't worry he can't reproduce so im just gonna keep him around, holy crap he's 273,000 cycles old, this dude has literally survived 0.383% of the entire simulation (71307000 cycles) and the last time i checked the average age of a bot it was something like 13000 cycles old, dang exactly 21 generations have passed this bot must feel so old, anyways imma just copy his dna for funsies:
interesting, after some observation of this bot, it seems like he does this weird purging thing where once he reaches 30k energy, he purges 5k energy, maybe that's how he stays alive because that way he doesn't collect waste, what a smart bot :D
Code: [Select]
store
 store

 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  7  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  8  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.hitsx *.hitdn inc
 start
 -6 *.kills 24413 multstore
 .shoot store
 .eye1width ceilstore
 .aimright store
 *.kills .dx multstore
 *.refeye *.dnalen .up addstore
 store
 *.eye4 1010 *-879 %=
 rnd *.velscalar store
 *.trefvelmysx *.reffixed ^ multstore
 inc
 *.trefup
''''''''''''''''''''''''  Gene:  2 Ends at position  46  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  47  '''''''''''''''''''''''
 else
 535 dupbool

''''''''''''''''''''''''  Gene:  3 Ends at position  49  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  50  '''''''''''''''''''''''
 else
 *.bodloss floorstore
 *.trefage .tout3 store
 & addstore
 *-39 13531
''''''''''''''''''''''''  Gene:  4 Ends at position  59  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  60  '''''''''''''''''''''''
 else
 *.in4 clearbool
 -- 366 *622 over
''''''''''''''''''''''''  Gene:  5 Ends at position  66  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  67  '''''''''''''''''''''''
 start
 *.refaim 23283 *.veldn multstore
 *.nrg 516 *.refaim *.ypos ceilstore
 *.thisgene substore
 30007 >
 .mkchlr store
 store
''''''''''''''''''''''''  Gene:  6 Ends at position  83  '''''''''''''''''''''''


here are the best bots:
25 descendants out of a population of 280, pretty good
Code: [Select]
divstore
 store

 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  7  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  8  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.hitsx *.hitdn inc
 start
 -6 *.kills -1 multstore
 .shoot store
 .eye1width store
 .aimright store
 *.kills .dx multstore
 *.refeye *.dnalen .up addstore
 store
 *.eye4 809 22510 *.sun *.hitsx *.hitdn inc
 *.reffixed -19 sub inc
 multstore
 1010 535 dupbool

''''''''''''''''''''''''  Gene:  2 Ends at position  48  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  49  '''''''''''''''''''''''
 else
 multstore
 floorstore
 *.trefage 528 13531 *.ypos ceilstore
 *.thisgene
''''''''''''''''''''''''  Gene:  3 Ends at position  57  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  58  '''''''''''''''''''''''
 else
 store
 455 -- 366 *622 *-39 addstore
 -- *.memval over
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 *.refaim 23283 *.veldn multstore
 *.nrg 516 *.refaim *.ypos ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  85  '''''''''''''''''''''''

12 descendants out of a population of 200
Code: [Select]
divstore
 store

 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  7  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  8  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.hitsx *.hitdn inc
 start
 -6 *.kills -1 multstore
 .shoot store
 .eye1width store
 .aimright store
 *.kills .dx multstore
 *.refeye *.dnalen .up addstore
 store
 *.eye4 809 22510 *.sun *.hitsx *.hitdn inc
 *.reffixed -19 sub inc
 multstore
 1010 535 dupbool

''''''''''''''''''''''''  Gene:  2 Ends at position  48  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  49  '''''''''''''''''''''''
 else
 multstore
 floorstore
 *.trefage 528 13531 *.ypos ceilstore
 *.thisgene
''''''''''''''''''''''''  Gene:  3 Ends at position  57  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  58  '''''''''''''''''''''''
 else
 store
 455 -- 366 *622 *-39 addstore
 -- *.memval over
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 *.refaim 23283 *.veldn multstore
 *.nrg 516 *.refaim *.ypos ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  85  '''''''''''''''''''''''

At a ripe young age of 500 cycles, this bot already had 23 descendants out of a population of 310. This bot I found during an explosion of algae and next to a huge mass of algae so that explains it pretty well
Code: [Select]
divstore
 store

 start
 *.refxpos 3 *.mass addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  7  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  8  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.hitsx *.hitdn inc
 start
 -6 *.kills -1 multstore
 .shoot store
 .eye1width store
 .aimright store
 *.kills .dx multstore
 *.refeye *.dnalen .up addstore
 store
 *.eye4 809 22510 *.sun *.hitsx *.hitdn inc
 *.reffixed -19 sub inc
 multstore
 1010 535 dupbool

''''''''''''''''''''''''  Gene:  2 Ends at position  48  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  49  '''''''''''''''''''''''
 else
 multstore
 floorstore
 *.trefage 528 13531 *.ypos ceilstore
 *.thisgene
''''''''''''''''''''''''  Gene:  3 Ends at position  57  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  58  '''''''''''''''''''''''
 else
 store
 455 -- 366 *622 *-39 addstore
 .eye9width store
 over
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 *.refaim 23283 *.veldn multstore
 *.nrg 516 *.refaim *.ypos ceilstore
 *.thisgene substore
 30007 >
 13562 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  85  '''''''''''''''''''''''


Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #35 on: May 14, 2022, 12:48:31 PM »
still alive! first thing you'll notice is that everyone's purple now, i got a bit bored and wanted to unleash chaos so i just turned up the mutations to 4x and voila they changed! these bots are much more tenacious scavengers than previously because they never seem to stand still, i'd assume that searching for food more vigorously is a great advantage and that's one trait selected for, and that's got me thinking, in which direction will this evolutionary arms race go? will they find new ingenious ways to find food? or will they just take the short route and begin to cannibalize even more aggressively than their current standoff "shoot and back away" strategy? the simulation is now 89,212,000 cycles old, the equilibrium point i'd say has fallen to about 200, no doubt because all that searching takes up more energy but results in greater self advantage, but now instead of spawning a constant stream of plants every few cycles, every 1000 cycles 15 plants get spawned in, so it's like a big wave. as a result the population fluctuates very heavily as they go from starving to feasting on food and back again. the population range i estimate to be from about 170 to 230 most of the time, it reached 300 once when a huge batch of algae was trapped in the top left corner by shapes with no bots, but the shapes squeezed the plants out so the bots suddenly had a massive influx of food, in fact i think i got the tail end of that surge in a screenshot, you can see a lot of fat bots in the top left corner, but eventually they all died because in their eating spree they had mutated and lost the ability to move around to search for food, now that didn't matter when they were swimming in it, but when it was all gone, it became a really bad disadvantage against the tenacious scavengers inhabiting the rest of the map who were moving around all the time.

aight it's time for 3 of the best bots!!!
21 descendants out of a population of 210
Code: [Select]
*.hitup 9217
 start
 *.refveldx -187 *.mass inc
 *.trefvelyourdx !%=
 swap 11414 %=
 ~=
 dec
 -306 *-180 true

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 cond
 *.eye5 *.trefvelyourup >
 .setboy store
 3097 -6 start
 and
 .shoot store
 *.trefvelmydn *.hitsx dist sgn 5341 775 *395 .memloc store
 !=
 sin store
 13696 14938 *.refeye *.refvelscalar .up addstore
 store
 *.eye1 10466 dropbool
 200 .sharechlr store
 -19
''''''''''''''''''''''''  Gene:  2 Ends at position  55  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  56  '''''''''''''''''''''''
 start
 inc
 sub -1172 *.daytime *.refvelup store

''''''''''''''''''''''''  Gene:  3 Ends at position  62  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  63  '''''''''''''''''''''''
 start
 sqr 794 216 *.xpos 3423
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 2457 *.veldn | multstore
 *.nrg *.totalbots *.thisgene substore
 30007 >
 809 27437 *.tin2 2445 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  86  '''''''''''''''''''''''

23 descendants out of a population of 230
Code: [Select]
*.hitup 9217
 start
 *.refveldx -187 *.mass inc
 *.tieang2 *.refeye swap 11414 %=
 ~=
 dec
 -306 *-180 true

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 cond
 *.eye5 *.trefvelyourup >
 .setboy store
 3097 -6 start
 and
 .shoot store
 *.trefvelmydn *.hitsx dist sgn 5341 775 *395 474 *.mysx !=
 sin store
 13696 14938 *.refeye *.refvelscalar .up addstore
 store
 *.eye1 10466 dropbool
 200 .sharechlr store
 -19
''''''''''''''''''''''''  Gene:  2 Ends at position  55  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  56  '''''''''''''''''''''''
 start
 inc
 sub -1172 *.daytime *.refvelup store

''''''''''''''''''''''''  Gene:  3 Ends at position  62  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  63  '''''''''''''''''''''''
 start
 sqr 794 true
 *.shell store
 216 *.xpos 3423
''''''''''''''''''''''''  Gene:  4 Ends at position  71  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  72  '''''''''''''''''''''''
 start
 2457 *.veldn | multstore
 *.nrg *.totalbots *.thisgene substore
 30007 >
 809 27437 *.tin2 2445 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  89  '''''''''''''''''''''''

23 descendants out of a population of 220
Code: [Select]
*.hitup 9217
 start
 *.refveldx -187 *.mass inc
 *.trefvelyourdx !%=
 swap 11414 %=
 ~=
 dec
 -306 *-180 true

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 cond
 *.eye5 *.trefvelyourup >
 .setboy store
 3097 -6 start
 and
 .shoot store
 *.trefvelmydn *.hitsx dist sgn 5341 775 *395 .memloc store
 !=
 sin store
 13696 14938 *.refeye *.refvelscalar .up addstore
 store
 *.eye1 10466 dropbool
 200 .sharechlr store
 -19
''''''''''''''''''''''''  Gene:  2 Ends at position  55  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  56  '''''''''''''''''''''''
 start
 inc
 sub -1172 *.daytime *.refvelup store

''''''''''''''''''''''''  Gene:  3 Ends at position  62  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  63  '''''''''''''''''''''''
 start
 sqr 794 216 *.xpos 3423
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 2457 *.veldn | multstore
 *.nrg *.totalbots *.thisgene substore
 30007 >
 809 27437 *.tin2 2445 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  86  '''''''''''''''''''''''

And because I'm not sure some of these are duplicates, here's one more. 21 descendants out of a population of 190
Code: [Select]
*.hitup 9217
 start
 *.refveldx -187 *.mass inc
 *.trefvelyourdx !%=
 swap 11414 %=
 ~=
 dec
 -306 *-180 true

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 cond
 *.eye5 *.trefvelyourup >
 .setboy store
 3097 -6 start
 and
 .shoot store
 *.trefvelmydn *.hitsx dist sgn 5341 775 *395 .memloc store
 !=
 sin store
 13696 14938 *.refeye *.refvelscalar .up addstore
 store
 *.eye1 10466 dropbool
 200 .sharechlr store
 -19
''''''''''''''''''''''''  Gene:  2 Ends at position  55  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  56  '''''''''''''''''''''''
 start
 inc
 sub -1172 *.daytime *.refvelup store

''''''''''''''''''''''''  Gene:  3 Ends at position  62  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  63  '''''''''''''''''''''''
 start
 sqr 794 216 *.xpos 3423
''''''''''''''''''''''''  Gene:  4 Ends at position  68  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  69  '''''''''''''''''''''''
 start
 2457 *.veldn | multstore
 *.nrg *.totalbots *.thisgene substore
 30007 >
 809 27437 *.tin2 2445 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  86  '''''''''''''''''''''''
A reasonable general trend seems to be that the best bots' descendants make up around 10%-11% of the population, which is a good sign because that means there's a lot of genetic diversity and it's not all dominated by one particular bloodline

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: coexistence
« Reply #36 on: May 14, 2022, 01:26:41 PM »
It's looking really good.  This is probably the longest anyone has run a simulation.  I don't know the record or anything but I don't remember anyone running ~100M cycles.

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #37 on: May 26, 2022, 12:22:27 AM »
It's looking really good.  This is probably the longest anyone has run a simulation.  I don't know the record or anything but I don't remember anyone running ~100M cycles.
really? cause i just broke it, i got 106.422 million cycles :D

before talking about the simulation i would like to share one interesting strain which unfortunately i think is about to be driven to extinction: the energy sharer. they used to be pretty common but now i had to actively hunt this one down. the only way to share energy is through ties and the only time these bots are tied are when they have children, it's interesting to see this one strain share energy... but only giving itself a 5% share. so any bot that removed the part where they shared energy would have a huge advantage just getting 95% of the parent's energy, i think the most common strain now is one where ".sharenrg" is swapped with "swapbool", really unfortunate because if it was set at 40 or 50 or something then we could have seen the start of energy sharing... but no, it's 5. well i guess thats how it goes.
Code: [Select]

 start

''''''''''''''''''''''''  Gene:  1 Ends at position  1  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  2  '''''''''''''''''''''''
 start
 28528 14698 5 .sharenrg store
 -187 rndstore
 -187 2457 *.mass inc
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 228 floor *.trefvelmysx *.eye5
''''''''''''''''''''''''  Gene:  3 Ends at position  19  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  20  '''''''''''''''''''''''
 cond
 *.bodgain >
 6003 *.velscalar -919 -919 3097 -6 3097 -6 start
 and
 .shoot store
 *.refeye *.refvelscalar .up addstore
 store
 *.tieang2 *.tielen2 <
 <=
 .up store
 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  46  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  47  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  48  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  49  '''''''''''''''''''''''
 cond
 31456 .eye2width store
 794 sqr start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 521 *.totalbots ++ 4 12531 14938 .repro store
''''''''''''''''''''''''  Gene:  6 Ends at position  74  '''''''''''''''''''''''


ok so i've made food even more seasonal, it only drops every 4001 cycles, but i do make it more overall by giving 50 plants every time. i'm really interested to see where this will go, because huge fluctuations in population and energy usually lend themselves to genetic diversity and fiercer natural selection. i still force the sun to go up at 200,000 energy though because i think that's the point where it's in danger of complete collapse where the plants all gather up in one spot where all the bots have died and everyone just starves to death. besides the energy sharer, there's this small vibrant purple species/strain that's struggling a lot, with just a few small bots, from what i've observed i think their shtick is that they don't really adhere to the shoot while moving away strategy the rest of the bots have, more like shoot while not really caring, which intrigued me because it seems a step closer to cannibalism, here's one of them:
Code: [Select]

 start

''''''''''''''''''''''''  Gene:  1 Ends at position  1  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  2  '''''''''''''''''''''''
 start
 28528 14698 5 .sharenrg store
 -187 rndstore
 -187 2457 *.mass inc
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 228 floor *.trefvelmysx *.eye5
''''''''''''''''''''''''  Gene:  3 Ends at position  19  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  20  '''''''''''''''''''''''
 cond
 *.bodgain >
 6003 *.velscalar -919 -919 3097 -6 3097 -6 start
 and
 .shoot store
 *.refeye *.refvelscalar .up addstore
 store
 *.tieang2 *.tielen2 <
 <=
 .up store
 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  46  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  47  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  48  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  49  '''''''''''''''''''''''
 cond
 31456 .eye2width store
 794 sqr start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 521 *.totalbots ++ *296 *-313 negstore
 355 sqrstore
 root over angle 4 12531 14938 .repro store
''''''''''''''''''''''''  Gene:  6 Ends at position  82  '''''''''''''''''''''''


oh hey the vibrant purple bots are energy sharers too, they might still be hope for developing energy sharing if they didn't have like 3 members out of 200, as in the ENTIRE SPECIES.

equilibrium point has gone down even more since i made food more seasonal, down to about 150-200, but i'm confident over time the population will adapt and recover, maybe even establish sustainable farming who knows

best bots time 8)

18 descendants out of a population of 165
Code: [Select]
start

''''''''''''''''''''''''  Gene:  1 Ends at position  1  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  2  '''''''''''''''''''''''
 start
 28528 14698 5 swapbool
 *2216 -187 rndstore
 -187 2457 *.mass inc
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 228 floor *.trefvelmysx *.eye5
''''''''''''''''''''''''  Gene:  3 Ends at position  19  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  20  '''''''''''''''''''''''
 cond
 *.bodgain >
 6003 -919 -919 3097 -6 3097 -6 start
 .shoot store
 *.refeye *.refvelscalar .up addstore
 store
 *.tieang2 *.tielen2 <
 <=
 .up store
 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  44  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  45  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  46  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  47  '''''''''''''''''''''''
 cond
 31456 .eye2width store
 794 sqr start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 29721 *.totalbots ++ 4 12531 14938 .repro store
''''''''''''''''''''''''  Gene:  6 Ends at position  72  '''''''''''''''''''''''

20 descendants out of a population of 202
Code: [Select]
start
 -187 rndstore
 -187 2457 *.mass inc
 *.eye5
''''''''''''''''''''''''  Gene:  1 Ends at position  8  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  9  '''''''''''''''''''''''
 cond
 228 floor *.trefvelmysx *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  13  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  14  '''''''''''''''''''''''
 cond
 *.bodgain >
 6003 -919 -919 3097 -6 3097 -6 start
 and
 .shoot store
 *.refeye *.refvelscalar .up addstore
 store
 *.tieang2 *.tielen2 <
 <=
 .up store
 -19
''''''''''''''''''''''''  Gene:  3 Ends at position  39  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  40  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  4 Ends at position  41  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  42  '''''''''''''''''''''''
 cond
 31456 .eye2width store
 794 sqr start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 29721 *.totalbots ++ 4 12531 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  67  '''''''''''''''''''''''


18 descendants out of a population of 204
Code: [Select]
start

''''''''''''''''''''''''  Gene:  1 Ends at position  1  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  2  '''''''''''''''''''''''
 start
 28528 14698 5 swapbool
 *2216 -187 swapbool
 -187 2457 *.mass inc
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 228 floor *.trefvelmysx *.eye5
''''''''''''''''''''''''  Gene:  3 Ends at position  19  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  20  '''''''''''''''''''''''
 cond
 *.bodgain >
 6003 -919 -919 3097 -6 3097 -6 start
 .shoot store
 *.refeye *.refvelscalar .up addstore
 store
 *.tieang2 *.tielen2 <
 <=
 .up store
 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  44  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  45  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  46  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  47  '''''''''''''''''''''''
 cond
 31456 .eye2width store
 794 sqr start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 29721 *.totalbots ++ 4 12531 14938 .repro store
''''''''''''''''''''''''  Gene:  6 Ends at position  72  '''''''''''''''''''''''


Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #38 on: June 29, 2022, 07:24:21 PM »
hey yall, im back at 153.118 million cycles. because of some hiccups with plants developing shell and/or fooling the conspec eye recognition system by literally just tacking on one eye gene that does absolutely nothing and consequently spreading all over the map unmolested, i lowered the mutation rate to 1x and when it still happened again i turned plant mutations off entirely. I still kept the 1x mutations despite the bots actually evolving really low mutation rates (before, the default was 4x) because i wanted to try something new, instead of a barrage of mutations i would use time and only the most beneficial mutations would make it through, at least i hoped.

I think it works, there have been some really interesting things going on, given the dynamic of tons of food but spawning only every 10100 cycles (the extra 100 is there so it doesn't match up with the day/night cycle of 1000, just to make things more interesting) so it's like seasonal. First, the bots have split up into 2 distinct species, the first and most dominant is our good old friend the scavengers, who move around randomly and try to find plants (or corpses of their dead comrades) to feed on. They explicitly don't attack other bots and actually run away from other bots.

There was an interesting strategy that branched off of the scavenger species. This was a mini species that would just sit still and do nothing, and wait until food spawned next to them. I call them couch potatoes, probably from the result of a mutation that removed their ability to search around and look for food. Because moving around takes energy, and it could be 10100 cycles before you even get any new food, this strategy actually kind of makes sense at first. Plus, you have all your non-moving comrades right next to you, so in hard times, you can just eat the corpses of your mates once they starve to death, they're free food! Unfortunately, the math did not work out for the couch potatoes. 10100 cycles means losing at least 10100 energy waiting for food to spawn next to you, and it might not even spawn next to you at all. And, if a plant did spawn next to a couch potato, they would just eat it immediately without letting it grow and make more energy in the long run. Each plant starts with 5000 energy. Now, I'm not a nobel prize winning mathematician or anything, but the couch potatoes, even if 2 plants spawned next to them (which is even more unlikely than just 1 plant) they would only be able to almost even out their energy balance. And once they ran out of fellow couch potatoes to eat, then what? TLDR they all died, the end. :D

Enough about the couch potatoes, they've been extinct for hundreds of thousands of cycles. Remember that way back in this simulation, there was a bot that ran away from other bots while shooting at them? I believe that was an adaptation that rose out of a significant part of the population being cannibals, but then all the cannibals died and all that was left were the bots that shot while running away... and then I speculate that eventually that ability was lost because it was better not to shoot and waste energy (shooting costs are high, 5 per shot which is to heavily punish incontenent bots that just shot all the time and lagged the simulation to all hell, and once all the bots lost the ability to control their shots it was basically impossible for them to evolve it back) both from missing shots and fighting each other.

But that's led to the rise of a small but fierce species of green cannibal bots that have survived for a few dozen million cycles at least. They seek out plants, corpses, and bots, not discriminating between species. They'll happily eat their parents or children, but most of the time get it right and eat some unfortunate scavenger. Not that they're usually 100% successful, though. The scavengers may not shoot back anymore, but they still run away from other bots which massively improves their chances of survival. Most of the time, the cannibals are small and weak because they generally shave each others' body points off when they encounter each other. So, more often than not their target gets away, but the cannibal still gets some energy from them.

While the cannibals do eat plants, I believe they make their niche in the plant-less environment after all the spawned plants have run out, and everyone is just waiting for the next batch of plants. While the scavengers' food sources are reduced to only corpses of other scavengers or cannibals, cannibals have corpses AND scavengers AND other cannibals. Actually, what would normally be a huge waste of energy (eating members of your species) merely becomes condensation of energy into fewer bots. Because each bot has a flat 1 energy cost of living every cycle, plus a little bit more depending on how long their DNA is and how much body they have, this actually kind of becomes an advantage in really lean times to save the entire species more energy in the long run, and times can get REALLY lean when you have to wait 10100 cycles for more energy to be introduced into the system. I think I saw once the total number of bots drop to something as low as 40 or 30, and this in a simulation where the population averages 150-300, it almost made me crap myself because I would have to go back to a really old save to start again if everyone died. Good thing the big drop of food happened right as it reached that point. I think if plants were introduced regularly so that there was a steady supply of food, the cannibals would be inefficient in that new environment so they would just die off to the more efficient scavengers, who don't waste energy infighting or chasing and shooting at other bots and each other.

Now, cannibal bots are nothing new. They spring up all the time, from the results of some unfortunate mutation. But this almost never spreads, because all the mutation does is remove the ability for the cannibals to differentiate between plants and bots, so they treat everything they see as plants and try to eat it. The cannibals always eat their own children, or get eaten by their children. They might be able to survive for a bit in very very small numbers, but the insane waste of energy caused by eating your offspring as soon as you give birth to them (also true in real life) means the numbers are stacked against them, and they always snuff themselves out at one point or another due to starvation and not being able to spread around their genes enough.

But these green cannibals wouldn't have survived that long if that were the case. They have a little secret weapon, they know when they're tied to something, and since nothing in this simulation uses ties, being tied must mean that the bot is either recently born, or recently had a child. When they're tied to something, they basically shut off and don't shoot anything at all even when surrounded by plants, instead I think there's actually some different things that happen depending on the particular strain of species. Some harmlessly spin around, some try to move in one direction only to separate from the parent/child, and confusingly, some do both, but switch between methods randomly. This little bit doesn't seem like much, considering the fact that once the ties are off, it's back to shooting everything on sight, and some bots do get sucked back into fighting anyways, but it's enough to at least give a better than 50/50 chance that the parent and child both live, which is the entire point of reproduction.

I think the fact that they can't shoot at all when tied is a massive help, because a lot of familial cannibalism happens within the first few cycles of birth, where the bots are perfectly next to and exactly facing each other, and if the bots can get some distance from each other, then that's a greatly increased chance of both just going on their merry way, AND I've observed that even in the cases where they DO get sucked back into each other, it's usually only a glancing blow because they have speed so they're running into, then past each other, therefore losing sight in the process. Even if the 2 bots would happily go after each other without the ties, It's still pretty impressive how this one small behavior can allow a cannibal species to live and thrive, where they usually kill themselves. One more thing I want to note is that this does decrease their efficiency when diving deep into piles of plants, because they have to wait for the ties to wear off before they can continue feeding. That's one more reason why if plants were introduced regularly instead of in big batches with nothing in between, the cannibals would die out to the more efficient scavengers, which can reproduce AND feed at the same time.

Ok, 2 best bots, and 2 handpicked green cannibals because the best bots are all scavengers

37 descendants out of a population of 270? Holy crap
Code: [Select]
store
 store
 *.tin9 *.tielen2 <
 481 sub *.refveldx !=
 *.refage *.shang 3106 * sub 419 -19
 start

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 start
 *.trefaimdx store
 *.tin9 *.eye2 <
 <=
 ++ inc
 store
 469 *.refmulti substore
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  31  '''''''''''''''''''''''
 432 ceil * rndstore
 *.refmulti -6 *.genes
''''''''''''''''''''''''  Gene:  3 Begins at position  39  '''''''''''''''''''''''
 cond
 store
 300 *.mydn *.tielen2 254 div 2 *600 *.refveldx inc
 1 *.refvelsx *.eye5 *.venom
''''''''''''''''''''''''  Gene:  3 Ends at position  53  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  54  '''''''''''''''''''''''
 cond
 >
 *.bodloss .fixang store
 -6 3097 -6 start
 7 *.refvelscalar *.refeye addstore
 .up store
 store
 *.trefvelyourup *.tielen2 <
 <=
 1 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  77  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  78  '''''''''''''''''''''''
 cond
 .strbody store
 start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 553 sgnstore
 446 11194 *.refshoot
''''''''''''''''''''''''  Gene:  6 Ends at position  96  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  97  '''''''''''''''''''''''
 start
 swapbool
 | <<
''''''''''''''''''''''''  Gene:  7 Ends at position  100  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  8 Begins at position  101  '''''''''''''''''''''''
 start
 *.veldn | *.mypoison *.nrg *.nrg
''''''''''''''''''''''''  Gene:  8 Ends at position  106  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  9 Begins at position  107  '''''''''''''''''''''''
 start
 swapbool
 | <<
''''''''''''''''''''''''  Gene:  9 Ends at position  110  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  10 Begins at position  111  '''''''''''''''''''''''
 start
 *.veldn | *.mypoison *.nrg *.refshoot 14938 .repro store
''''''''''''''''''''''''  Gene:  10 Ends at position  119  '''''''''''''''''''''''

This guy seems to be doing well. 4 descendants out of a population of 260, but he seems perfectly functional and is diving into a pile of plants as we speak
Code: [Select]
*.shang *.refage !=
 *.refveldx sub 481 <
 *.tielen2 *.tin9 store
 store
 3106 * sub 419 -19
 start

''''''''''''''''''''''''  Gene:  1 Ends at position  17  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  18  '''''''''''''''''''''''
 start
 *.trefaimdx store
 *.tin9 *.eye2 <
 <=
 ++ inc
 store
 469 *.refmulti substore
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  31  '''''''''''''''''''''''
 432 ceil * rndstore
 *.refmulti -6 *.genes
''''''''''''''''''''''''  Gene:  3 Begins at position  39  '''''''''''''''''''''''
 cond
 store
 300 *.mydn *.tielen2 254 div 2 *600 *.refveldx inc
 1 *.refvelsx *.eye5 *.venom
''''''''''''''''''''''''  Gene:  3 Ends at position  53  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  54  '''''''''''''''''''''''
 cond
 >
 *.bodloss .fixang store
 -6 3097 -6 start
 7 *.refvelscalar *.refeye addstore
 .up store
 store
 *.trefvelyourup *.tielen2 <
 <=
 1 -19
''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  5 Ends at position  77  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  78  '''''''''''''''''''''''
 cond
 .strbody store
 start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 553 sgnstore
 446 11194 *.refshoot
''''''''''''''''''''''''  Gene:  6 Ends at position  96  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  97  '''''''''''''''''''''''
 start
 swapbool
 *.dnalen <<
''''''''''''''''''''''''  Gene:  7 Ends at position  100  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  8 Begins at position  101  '''''''''''''''''''''''
 start
 *.veldn | *.mypoison *.nrg *.nrg
''''''''''''''''''''''''  Gene:  8 Ends at position  106  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  9 Begins at position  107  '''''''''''''''''''''''
 start
 swapbool
 | <<
''''''''''''''''''''''''  Gene:  9 Ends at position  110  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  10 Begins at position  111  '''''''''''''''''''''''
 start
 *.veldn | *.mypoison *.nrg *.refshoot 14938 .repro store
''''''''''''''''''''''''  Gene:  10 Ends at position  119  '''''''''''''''''''''''


Alright, here's a cannibal, 4 descendants out of a population of 250 which is pretty high for the cannibals, which make up about 10% of the population I'd say, so 25
Code: [Select]
!~=
 *.nrg *.shdn 20314 48 *.shflav *.refvelscalar *.numties addstore
 addstore
 *.numties .tielen1 store
 addstore
 522 *.refdn
 start
 .up store
 ++ inc
 *.tiepres
''''''''''''''''''''''''  Gene:  1 Ends at position  22  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  23  '''''''''''''''''''''''
 start
 *.shang 20838 *.numties *241 cos 7 30823 *.numties addstore
 *.vel not
 %=
 .memloc store
 *.eye5 *.venom
''''''''''''''''''''''''  Gene:  2 Ends at position  39  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  40  '''''''''''''''''''''''
 cond
 >
 cos !=
 store
 5 -6 3097 -6 start
 7 *.refvelscalar *.numties addstore
 .up store
 store
 >
 substore
 1 not
 %=
 *.tin9 | dec
 <=
 div pow *321 *.eye3 .vloc store
 1 -19
''''''''''''''''''''''''  Gene:  3 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  74  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 cond
 .strbody store
 start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 17722 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  94  '''''''''''''''''''''''

Some time has passed now, second cannibal, 2 descendants out of a population of 180
Code: [Select]
!~=
 *.nrg *.shdn 20314 48 *.shflav *.refvelscalar *.numties addstore
 addstore
 *.numties .tielen1 store
 addstore
 522 *.refdn
 start
 .up store
 ++ inc
 *.tiepres
''''''''''''''''''''''''  Gene:  1 Ends at position  22  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  23  '''''''''''''''''''''''
 start
 *.shang 20838 *.numties *241 cos 7 30823 *.numties addstore
 *.vel not
 %=
 .memloc store
 *.eye5 *.venom
''''''''''''''''''''''''  Gene:  2 Ends at position  39  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  40  '''''''''''''''''''''''
 cond
 >
 cos !=
 store
 5 -6 3097 -6 start
 7 *.refvelscalar *.numties addstore
 .up store
 store
 >
 substore
 1 not
 %=
 *.tin9 | dec
 <=
 div pow *321 *.eye3 .vloc store
 1 -19
''''''''''''''''''''''''  Gene:  3 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  74  '''''''''''''''''''''''
 start
 inc

''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 cond
 .strbody store
 start
 *.veldn | multstore
 *.nrg ++ *.totalbots *.thisgene substore
 30007 >
 *.nrg 17722 14938 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  94  '''''''''''''''''''''''

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #39 on: August 21, 2022, 12:27:18 AM »
My friends. I am afraid to say that this long running simulation has come to an end at 234.870 million cycles. The bots' DNA have grown so long that the simulation runs at crawling speed. Furthermore it seems that the mutations spiralled out of control with the growing DNA length, presumably causing irreversible loss of basic living functions combined with an unfortunately timed dip in the population which caused genetic drift to have a huge, exaggerated effect on the small guaranteed population of 15 (at less than 15 bots energy costs are disabled to prevent complete extinction).

A small, anemic population of 10-20 insanely mutated bots still persists, but this is only thanks to the guarantee of at least 15 bots living and the sheer abundance of plants that allow much less than optimal feeding behaviors. All of the bots have lost the scavenger mentality of randomly moving and spinning around, then locking onto a food source once one is found. In fact before everything started going downhill the bots evolved an ability that was lost from the original animal minimalis common ancestor: the ability to stay still while eating, increasing feeding efficiency since they get more energy shots instead of having them bounce around everywhere.

But now all the bots run straight forward, while turning slightly, which dooms them since it gives them even less vision of their surroundings than randomly spinning around would.

I noticed the sharp rise in DNA length days before, but thought that the DNA length energy penalty (0.0001) would be enough to eventually shave off unnecessary DNA. But i guess it wasn't enough and by the time the DNA had grown in length to the thousands i panicked and multiplied the penalty by 5, the small differences in energy loss between a bot with 1600 DNA length and a bot with 1590 DNA length weren't enough of a selection pressure and actually had a disasterous impact on EVERYONE, it was too late. I basically admitted defeat and turned the DNA length penalty back down to the original since it was threatening to wipe out all of the bots, hoping that maybe at least some cool shit would evolve, and somewhere in between there and now, the simulation irreversibly collapsed.

I don't have a save that goes back enough and even if I did, it would still probably happen anyway because I turned on the option that lets the bots mutate their mutation rates, and it just so happens they pump up the mutation rate for amplification (copy pasting your own dna) and insertion (creating new OG dna) way up and made the deletion mutations so rare and so benign that genetic drift and the law of averages took over. God damn, at least now I know not to let them mess with the mutation rates

Yeah im probably just going to make a new simulation from scratch but with a much higher DNA length penalty that matters much more when bots only have 50-100 length dna so it's a credible selection pressure, and also turn off the changing mutation rates. I put a picture, and a sample of the ridiculously long 22k+ length DNA of one of the super mutant bots here. Calling it DNA is an extremely charitable description as almost all of it is junk. If you think this is long, it is merely a sample of 30% of its DNA, posting all of ONE bot's DNA, let alone THE SIMULATION FILE is impossible because it crashed my browser XD

Code: [Select]
30726 *.trefaimdx store
 .out3 negstore
 31821 rndstore
 angle 824 *433 *.edge store
 *.myeye 453 1195 floorstore
 *.trefaimdx 25487 *.refypos absstore
 store
 22708 *.eyef store
 absstore
 .eye4dir sgnstore
 *.paralyzed *.thisgene substore
 ~=
 <
 528 *.tin6 *.refveldx *.trefvelmydn .aimshoot store
 2200 *.shdn *.trefaimdx store
 *.reftype store
 *.tin8 25686 %=
 *.hit rnd *8890 floorstore
 .eye9dir substore
 *.trefshoot *.trefvelmysx rndstore
 *8302 rnd 18220 store
 *.refvelsx *.tieang1 *.reftype 1 xor
 store
 store
 store
 484 *.trefbody *.ypos !=
 >
 over *.in4 store
 *.myaimdx *.trefshoot sin negstore
 789 *.ypos store
 *110 482 16695 29481 sgnstore
 *.mass .focuseye store
 *.tin2 *.robage 1 *.waste *.tieang over dist addstore
 !=
 store
 sin 6543 dist 14449 store
 .out2 negstore
 div store
 *.trefbody store
 !=
 *.ypos *.trefbody over store
 -121 *.trefvelmydx 411 338 *.veldx << 15509 522 *.trefvelmyup *.tin3 *.myaimsx .out10 store
 .tout3 store
 835 789 *.tieang2 ~ *.ypos *.tin7 store
 806 drop ceilstore
 << pow *42 *.mass floorstore
 *.eyef 13684 *.treffixed store
 809 stop
 25487 *.in9 *.trefbody negstore
 419 overbool
 21508 >
 sgnstore
 261 758 inc
 anglecmp angle *661 *.veldx 414 *.sharewaste absstore
 *.in1 substore
 18220 .mkvenom store
 802 *.sun 809 11825 *.fixed negstore
 sin store
 *238 -- floorstore
 rndstore
 790 absstore
 .readtie sqrstore
 *114 .mkslime store
 store
 *.vel ceil *.fixed 521 474 524 *.paralyzed *.thisgene 824 789 *.tielen1 394 store
 *.refvelsx *.treffixed 13684 .pval store
 over 31194 *.in4 store
 *.myaimdx *.trefshoot *.eye7 *.reftype *.myties 698 *.trefvelyourup 521 *.tin6 480 *.myties stop
 -1 xor
 * stop
 over angle 804 .tielen1 store
 586 *.eye8width 862 *.rdboy *.vel *.dnalen store
 absstore
 -34 dec
 over sgnstore
 | rnd *-455 swapbool
 *-727 483 dist substore
 *.chlr store
 832 *.deltie *.mass *.trefaimdx *.tieang *.refup 5723 301 *.trefvelyourdx *.refdx 30726 inc
 true
 rndstore
 <
 *20 822 ~ *.sun 29287 *544 729 *.shflav sin >
 store
 482 *.thisgene xor
 -323 *.tieang2 524 ~ rnd *.refvelsx 12731 30311 1195 sin *.refup store
 *114 stop
 store
 1 *.refnrg *.availability *.in8 store
 *.vel 14477 *.myvenom swap *.tmemval 2525 store
 *.trefvelmyup .out10 store
 412 -- store
 *.sun *.robage store
 9503 *.refvelsx 31988 negstore
 store
 1 417 824 stop
 dist -227 *.refvelsx >
 store
 !~=
 *-423 *264 >
 store
 301 789 store
 *.tmemval dropbool
 *.thisgene *.trefaimdx 7696 store
 -1 floorstore
 store
 -1 11703 store
 523 30726 *.refdx 804 *.trefdn substore
 absstore
 negstore
 28508 *.in1 store
 486 .mkslime store
 substore
 *333 *.refvelsx 25487 *.daytime store
 31821 -122 %=
 store
 addstore
 *-22 480 538 521 -1 28508 ~=
 <
 .eye8dir store
 *.eyef 22708 store
 absstore
 *.refypos 25487 *.trefaimdx *.tin6 30726 *.trefaimdx store
 .out3 negstore
 31821 rndstore
 angle 824 *433 *.edge store
 *.reftype store
 *.trefaimdx *.shdn 2200 store
 901 *.trefvelmydn *.refveldx floorstore
 1195 453 *.myeye store
 *.tin8 25686 %=
 *.hit rnd *8890 2200 24204 *.robage overbool
 11703 substore
 not
 18220 *.aim anglecmp store
 *.sun store
 820 overbool
 419 .eye8width store
 *717 absstore
 inc
 *-782 store
 418 485 *.tin2 store
 538 482 over cos sin 6543 *.refmulti inc
 *.reftie *.hitup ~ *.chlr substore
 store
 store
 negstore
 sin anglecmp 1195 *.mass 824 angle true
 *.eyef sgnstore
 862 .eye2dir substore
 divstore
 store
 div *264 ceilstore
 %=
 *.tin2 *.tin2 -52 *.thisgene ~=
 ^ >
 *.tin6 *.refaim 801 524 832 1195 *.tielen2 804 *.tin6 store
 *.refvelsx << dropbool
 inc
 *.refvelscalar ~ 1195 <
 *114 ~ *.myties *.tieang2 .eye4dir substore
 539 .mkslime store
 store
 *.refup sin 1195 ceilstore
 *264 *.tin6 *845 *.totalmyspecies *.in10 sqr xor
 root sin *386 dec
 store
 *.vel 331 *.sun 1202 *.trefvelyourup !=
 negstore
 *.genes dropbool
 store
 1522 clear store
 522 19486 *.robage *.tin3 *.trefshoot store
 .out8 rndstore
 801 1 floor sin cos store
 pow *184 *.myties *.robage multstore
 824 *.tmemval *.refdx substore
 pow ceil absstore
 store
 836 321 store
 negstore
 sin *.eyef *.trefvelmyup store
 809 -1 negstore
 486 *.eye7 stop
 dist sgn store
 586 *.trefvelyoursx *.eyef >
 store
 480 floor 480 *296 not
 521 .fixpos store
 *.hitdn *.in10 18220 25487 stop
 store
 store
 *.eyef true
 *.trefvelyoursx negstore
 *.myeye -52 *.thisgene 862 sgnstore
 *.reftie store
 338 angle absstore
 store
 *.robage multstore
 862 830 411 *.trefvelmydx 411 25686 *.reftype *.tieang1 absstore
 *.refdx store
 cos negstore
 *.eyef *.trefvelyoursx store
 store
 sgnstore
 862 *.eyef *.refdx store
 *.trefshoot *.multi mod store
 *.reftie negstore
 dupbool
 *.hitdx ~ 9811 absstore
 << *.slime 832 %=
 2790 div - *.myties store
 6 *.eyef *.reftype - store
 *264 ceilstore
 535 12155 rnd over sqr *.in10 store
 .eye9dir store
 524 8302 sqr store
 *.trefvelmyup .mkpoison store
 absstore
 *.trefvelmydn ceil absstore
 rnd .out5 negstore
 *.trefvelyoursx *.refxpos *.tmemval *.refdx .tieang1 store
 .tieang3 inc
 *.robage .tout8 store
 rndstore
 -587 -- *.refshoot *.eyef *235 *.chlr sgnstore
 *110 5723 ^ 804 .tmemloc store
 floorstore
 11825 *558 negstore
 30007 >
 store
 stop
 >
 xor
 floorstore
 638 >
 dist 832 .vshoot floorstore
 ceil store
 802 *433 *.thisgene *.refpoison dropbool
 *.eye8 *944 *326 *.xpos *.out6 ++ 18743 611 multstore
 clear multstore
 558 332 negstore
 321 rnd 817 .mkvenom store
 *.availability 413 17829 %=
 ^ 480 *.dnalen dup *361 *.in4 *394 ~ stop
 *-43 dec
 multstore
 sgnstore
 .tin10 absstore
 store
 floorstore
 802 *.mass *.hit .eye8width ceilstore
 xor
 overbool
 836 ceil inc
 overbool
 *.edge 339 %=
 -122 *8302 *.velscalar *.multi *.tin3 * *.dn floorstore
 and
 store
 absstore
 dupbool
 5723 *.robage store
 store
 *.trefvelmyup store
 809 -1 .sharenrg store
 521 *.trefvelyourup 698 *.myties *.reftype 1 >
 *.refaimdx 789 *.trefeye store
 862 486 dupbool
 absstore
 *.totalmyspecies store
 << *.dnalen *.edge inc
 store
 store
 *-22 *110 *.vel store
 483 over *.in4 rnd cos sin 30537 1 *.vel *.mass 1195 .shareslime substore
 store
 .tieang4 inc
 538 *264 521 538 ++ !~=
 store
 -713 >
 stop
 24687 sub anglecmp !%=
 338 dropbool
 *.myties ~ *.ypos *.rdboy *.robage *.tin2 824 stop
 >
 xor
 floorstore
 638 *.availability *.multi .tieang4 ceilstore
 586 cos sqr 804 *.myties >
 *.eyef *.refage .up store
 .tielen3 store
 cos sin floor ceilstore
 negstore
 *655 31204 !=
 !%=
 *.reftype *576 *.tin2 862 521 .eye3dir store
 11703 *333 *.tin7 862 *.shsx !=
 ~ absstore
 store
 5 anglecmp ceilstore
 *.reftie *.trefaimsx store
 1 -- *.venom -218
 else
 *495 883 476 *543 floorstore
 store
 *356 dec
 %=
 *.reffixed negstore
 divstore
 520 dec
 23491 1011 cos 792 store
 store
 *.reftie *.hitup ~ store
 313 *.multi 483 *576 *.myties xor
 floorstore
 xor
 >
 *.vel 824 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  998  '''''''''''''''''''''''
 *.tin2 ceil *.availability 638 >
 *.eyef *.refeye *.in1 29696 .tout4 store
 *.in7 floorstore
 not
 *-857 ~=
 =
 mod add add =
 store
 store
 ^ .tieval store
 18729 *.refage 11703 dropbool
 *643 *.trefaimsx *8302 angle 804 28824 true
 <=
 !%=
 *.refaimsx substore
 418 485 *.paralyzed 524 *.vel *.in1 ~ *.mass multstore
 cos *.deltie store
 *.refkills 12230 16695 .tout7 substore
 store
 inc
 *264 store
 *.trefage over *.in4 store
 -227 10458 480 1 14449 floor 1195 sin angle 824 524 *.trefbody xor
 xor
 14426 dec
 1 *264 ceilstore
 addstore
 store
 29696 *.reftype *.maxvel add | dup 819 *321 *282 *-495 mod root !~=
 << <
 swap floorstore
 dup >> 344 dec
 stop
 *.mass * *.myaimdx *.robage store
 417 sin 538 *.thisgene *.vtimer 25313 *.refpoison store
 *.waste 5723 *110 *592 *.in1 .out9 store
 store
 25686 *.hitdn sqr *.sun -1 absstore
 store
 .aimright store
 *-22 store
 store
 *.up *.in10 inc
 13684 *.treffixed *.refvelsx store
 521 12731 >
 *.myties store
 *.shsx pow ceil store
 *.myaimdx 15293 29209 -34 >
 floorstore
 *.trefvelscalar *319 sqrstore
 sqr *.memloc *.mydx sqrstore
 22679 negstore
 5 *.trefvelyourup 698 sgn dist *.eye7 sgnstore
 inc
 substore
 833 539 31821 ~ *.hitdn store
 820 overbool
 .tout10 negstore
 floor sin *.kills *.mass 800 *.trefbody logx 474 524 12731 sin *.eyef 804 824 13684 *.refypos -323 absstore
 >
 1 !~=
 *.trefaimdx substore
 *592 521 9818 sgnstore
 474 logx *.trefbody -199 substore
 *.vel angle >
 *.tin6 824 stop
 store
 dec
 store
 331 *.vel drop 5482 .out3 substore
 .mkchlr substore
 %=
 inc
 *.tin6 *.hitup *.reftie *.maxvel 22708 sgn 698 *.trefvelyourup ceilstore
 store
 absstore
 862 store
 *.tiepres 804 *.tieang1 338 *.vel *.myties ceilstore
 26482 .aimright ceilstore
 * store
 529 .tieval store
 411 *.trefbody floor sgnstore
 sqr not
 *.tin2 store
 negstore
 sin true
 <=
 *.eyef true
 angle .mkvenom inc
 *.tmemval absstore
 *.shdx 26525 *.refaim 412 1 not
 12537 store
 538 *.genes *.trefdx *.tin2 *.aim *.eyef overbool
 *576 >
 negstore
 5 *.trefvelyourup ~ 338 *.mydx & -1 logx *.tin3 *.hitup store
 12467 store
 ceil inc
 521 .tieang1 inc
 sgnstore
 1 *.robage *.in6 multstore
 and
 ceil *.hitdn 30726 *.refnrg 12731 *.trefup store
 *.trefvelyoursx *.eyef angle ceilstore
 *2410 *.mass store
 862 *.trefvelyourup %=
 dropbool
 *.veldn store
 rndstore
 31821 *.tielen4 sqr xor
 696 * .shareshell store
 * store
 =
 mod 11825 280 *.tieang3 <=
 sgnstore
 345 .eye9width dec
 store
 ~ !%=
 412 789 *.edge *433 store
 *.trefvelscalar 417 & *.tin2 *.bodgain store
 839 *.vel *.multi store
 *.trefshoot 528 <
 mult *.multi store
 832 *.edge store
 store
 rnd store
 overbool
 !~=
 *2713 13699 store
 31821 *.tin3 *-22 2200 14449 ~=
 -1 528 *.trefshoot %=
 substore
 store
 sin *.vel 824 stop
 >
 xor
 floorstore
 substore
 store
 store
 store
 store
 *24 16601 *-1 *.refaimdx *.in10 *.hitdn store
 store
 480 floor 480 *296 not
 521 216 586 store
 sgn dist stop
 *.eye7 .tielen3 negstore
 -104 *379 *32 mod !%=
 *-714 ^ stop
 pow logx sqr store
 13684 store
 789 ~ root ~=
 1 .eye1dir store
 *.in8 dupbool
 *.numties *387 *.myaimsx stop
 789 *.tieang2 divstore
 18 *430 angle 461 *.myup absstore
 *.mydx store
 store
 *.refmulti 6543 22708 store
 862 store
 419 466 .out5 inc
 16339 rnd stop
 -199 *-22 store
 *.trefbody store
 .eye8width store
 !=
 *.ypos 533 .mkvenom ceilstore
 *.ypos 8826 *8302 480 *.in2 .out8 store
 524 832 <
 << absstore
 *.eye5 *.tieang1 *.refsx store
 store
 store
 .tout8 store
 ceil 538 21310 store
 ceilstore
 store
 *.sun *.tieang2 *.refvelsx *.eye8 sin *.refsx *.refveldn dropbool
 *.trefaimsx *.vel store
 476 540 store
 store
 *.refdx .out10 negstore
 sin 809 cos negstore
 store
 638 sin store
 460 *.hitdn *.tin3 *.tin3 *333 11703 416 >
 store
 sqr store
 absstore
 *.ypos *.eye9 301 *.tin10 negstore
 *2410 474 789 *.tielen1 *433 808 clear 338 *.tin2 store
 *.refvelscalar *.refdx *.tmemval ceil *.trefshoot *.myaimdx 524 dupbool
 *.in8 store
 .eye2dir inc
 *264 2825 store
 808 824 >=
 store
 <=
 cos >> 538 7696 .fixlen store
 sqr over 11703 store
 .out8 store
 *-22 store
 *.in1 -199 pyth *.myup *.myeye negstore
 17526 417 true
 *.sun 809 11825 *.fixed *.shdn *.totalbots << store
 901 1 524 904 *.availability & 417 *.trefvelscalar store
 *433 *.edge ceilstore
 521 789 412 !%=
 *.refpoison *433 .out3 store
 ceil floorstore
 25686 *.reftype *.tieang1 absstore
 store
 *.robage multstore
 862 store
 *.ypos .up absstore
 *.eyef negstore
 cos store
 *.refdx *.trefvelyoursx !=
 *.sun xor
 696 *.eye3 *.body *.shdn *.refnrg 17826 logx dup stop
 -199 533 *.ypos !=
 .eye9width dec
 store
 ~ *8302 *.trefshoot *.ypos ceilstore
 .mkvenom store
 335 .eye8width store
 *.trefbody dec
 sgnstore
 *.tieang3 <=
 sgnstore
 345 store
 store
 mod true
 or
 280 *387 *.numties dupbool
 *.in8 store
 *.tin1 5482 *.myties 18220 ceilstore
 *264 *.robage *.refsx .out3 store
 *.shsx *8302 *.vel *.multi store
 *.trefshoot 528 <
 ~=
 1 521 *677 >
 negstore
 *.refsx *.in10 store
 8401 store
 inc
 *.refvelsx store
 2825 *.totalmyspecies 415 true
 absstore
 store
 *.tieang2 substore
 sgnstore
 524 .memloc ceilstore
 824 *.mass 2200 480 801 ++ substore
 285 multstore
 store
 *.tmemval *.refdx *.tin6 *.hitdx 10426 *.trefvelscalar *.paralyzed *-784 angle store
 *.eyef 521 1195 store
 *.reftie *.tin2 469 521 824 524 *.paralyzed *.thisgene substore
 .eye1dir store
 .setboy store
 store
 30726 *.trefbody *.tin3 538 sin 417 *.refshoot *.tin3 8302 *2410 ceilstore
 *.trefvelyourup store
 overbool
 *.trefypos store
 <=

''''''''''''''''''''''''  Gene:  2 Begins at position  1834  '''''''''''''''''''''''
 else
 ceil * xor
 angle ~ *-57 113 and
 *.eyef store
 ++ store
 *.tmemval *.refdx 30726 .eye3dir store
 .dn store
 divstore
 .tout10 store
 multstore
 5706 store
 20475 substore
 absstore
 negstore
 28508 *.in1 store
 486 820 -122 %=
 *.trefaimdx *.reffixed ceil inc
 521 *.multi store
 store
 2539 overbool
 dropbool
 .out9 store
 anglecmp absstore
 .tout5 store
 1 *.hitup store
 .tout5 rndstore
 521 *.hitdx !~=
 *.trefaimdx substore
 =
 *.poisoned *264 *.refveldx xor
 *.robage 25421 >
 substore
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  1907  '''''''''''''''''''''''
 << 31821 .eye9width store
 *.reftie store
 412 *.tielen2 830 -125 *.venom *.tieang1 sin 25469 store
 store
 *718 ceil *.trefvelmydn over *.refmulti .sharenrg store
 inc
 804 *.vel store
 862 *.ypos store
 22708 *8302 *.in10 *.refsx negstore
 <
 sgnstore
 521 824 524 469 *.tin2 21410 *.eye5dir *.hitdn *.reftie <=
 638 *.availability .eye1dir ceilstore
 rnd store
 store
 *.tin2 ceil *.reftype 29696 floorstore
 2200 negstore
 *.slime *.tielen store
 sqr store
 *8302 *.refaimdx store
 2200 drop *-784 *.refvelsx *.in10 store
 .out3 store
 *433 .out3 store
 *.trefbody *.mydn *91 ceilstore
 drop *430 2200 14096 inc
 *.refvelscalar 804 *655 *7928 *.refvelsx *.tin6 *753 *-785 .eye1dir store
 .tout1 substore
 *.availability .out1 store
 *.trefbody *-216 264 sin store
 802 11703 467 *.robage multstore
 *.mysx *.shang *.mkshell ~ *.numties sgnstore
 floorstore
 833 *.eyef 835 ceil 25487 *.trefnrg pyth *.trefaimdx floorstore
 5 *.refvelup *.totalmyspecies dec
 store
 331 *.vel drop 5482 802 412 *.refaim 26525 *.shdx absstore
 *.tmemval inc
 804 *.tiepres store
 862 absstore
 store
 ceilstore
 *.trefvelyourup 698 sgn 22708 *.maxvel *.reftie *.hitup *.tin6 inc
 %=
 substore
 .mkchlr substore
 1 not
 12537 store
 538 *.genes *.trefdx *.tin2 *.aim *.eyef overbool
 *576 >
 negstore
 5 *.trefvelyourup ~ 338 *.mydx & -1 logx *.tin3 31204 store
 419 pyth 1115 .tout10 store
 store
 .out1 store
 store
 *.robage store
 store
 *.hitdn store
 dist add !%=
 ^ *110 .out9 store
 862 834 over mod 9824 dec
 .eye8width store
 %=
 ~ =
 25686 store
 store
 store
 <
 *.refvelscalar inc
 store
 411 25487 store
 %=
 substore
 *.vel angle 15009 *.tin3 pow store
 >
 522 *.myties 626 808 dupbool
 overbool
 absstore
 27603 *.hitsx store
 28508 negstore
 <
 .tieang1 store
 28982 store
 19486 store
 *.robage dup *.refshoot store
 dropbool
 *.thisgene 538 *.aim 18220 *.trefvelyoursx *.eyef *.vel 7420 *.refdx sqrstore
 338 *.bodgain store
 .aimright negstore
 absstore
 *.tin3 >=
 *.refdx store
 538 2200 31821 .eye2dir multstore
 486 *.hit 30726 drop .sharenrg store
 *.refvelsx *.myties *.sun dropbool
 multstore
 and
 *.trefaimdx *.mass 14449 862 absstore
 >
 xor
 *.myties *.trefvelyourdx overbool
 store
 sqr store
 *.tielen logx *.eyef >
 <
 substore
 .pwaste floorstore
 10 *719 pow *.eye9width *.out8 *.trefdx mod dec
 negstore

''''''''''''''''''''''''  Gene:  3 Begins at position  2243  '''''''''''''''''''''''
 cond
 floor *586 288 sgn store
 *.slime *-22 *.trefvelscalar over store
 *.refvelsx *.refxpos 803 533 *843 clearbool
 swapbool
 inc
 805 -227 .eye1width substore
 *.thisgene *264 *9283 sgnstore
 overbool
 store
 store
 pyth *.robage 467 11703 store
 *.myeye *.vel 3 *.trefaimdx 28508 store
 *.hitsx *.vtimer %=
 store
 *17 824 *.robage ceil floorstore
 25686 *.refypos store
 921 .tieang4 floorstore
 27511 *.sun xor
 696 xor
 *.in10 sqr *.hitdn substore
 11825 *264 over *.hitdn 467 11703 .eye6dir store
 14449 absstore
 negstore
 522 *.in10 xor
 ^ dup *.refshoot !~=
 angle ceilstore
 dropbool
 8302 *.trefaimsx 30726 anglecmp sub <
 inc
 *.tin3 *.trefbody store
 *8302 465 10018 store
 1 *8302 *.trefshoot *.mass overbool
 *347 *.trefbody 14449 *.multi mod store
 14449 rndstore
 *.trefsx dist swap logx 9699 *.eye9 *-784 *.trefvelmydn 1 486 804 xor
 *.tiepres >> abs -969 !%=
 store
 floorstore
 1 *.trefvelmysx *.vel *.in2 dropbool
 *.thisgene *.vel drop *.hit store
 -1 *264 *.body sgnstore
 sin *.hitup *.reftie store
 store
 25469 sin =
 486 *.tin7 809 *.paralyzed *-784 absstore
 862 *.robage -1 ~ *.refvelsx 9503 store
 >
 store
 *.slime store
 415 dist 12 swapbool
 .eye8width negstore
 store
 1 417 824 2525 *.tmemval 31988 338 ~ store
 533 *.aim xor
 store
 dup store
 stop
''''''''''''''''''''''''  Gene:  3 Ends at position  2436  '''''''''''''''''''''''
 store
 substore
 8481 rnd ~ store
 absstore
 substore
 *.sun !=
 inc
 store
 store
 *.trefvelmydx ceil .eye4dir sgnstore
 *.tieang2 *.trefvelyoursx 484 411 *.refvelsx anglecmp sub 214 12525 floorstore
 -337 inc
 ^ addstore
 .vshoot store
 *.reftie sgnstore
 862 .up absstore
 store
 *.robage multstore
 862 store
 -1 781 527 add store
 ceil floorstore
 *.refdx absstore
 *.tieang1 *.reftype 25686 store
 cos negstore
 *.eyef *.trefvelyoursx overbool
 *.eye9 *.robage store
 417 sin store
 over absstore
 store
 ~=
 14449 2200 *-22 *.reftie sgnstore
 862 .up absstore
 store
 *.robage multstore
 862 dupbool
 negstore
 *.reftie *-368 ceil store
 *.myshoot rndstore
 *.refdx store
 over *.tin1 *677 25686 538 480 *-22 538 2200 *.mass *.trefaimdx substore
 sin 2539 store
 28508 *.trefaimdx
''''''''''''''''''''''''  Gene:  4 Begins at position  2547  '''''''''''''''''''''''
 start
 460 534 419 524 832 <
 << absstore
 9811 ~ *.hitdx ceil *.robage *.tin6 *-368 *.reftie negstore
 dupbool
 *753 *-785 521 xor
 negstore
 5 26482 *.tin6 *.tmemval store
 801 31988 *.refvelsx 9503 store
 >
 store
 2200 store
 *-216 264 sin .out1 store
 *.trefshoot *.edge *.robage store
 417 sin 538 *.trefshoot .eye1dir store
 store
 dist stop
''''''''''''''''''''''''  Gene:  4 Ends at position  2602  '''''''''''''''''''''''
 *.eye7 .tielen3 negstore
 -104 *.eye9 *32 mod !%=
 *-714 ^ stop
 pow logx sqr ~ store
 *.trefvelyoursx *.eyef negstore
 cos store
 *.refdx absstore
 *.tin3 store
 store
 .eye2dir substore
 *.thisgene 15509 << *.veldx ~ sqr store
 *.trefbody 12731 30525 store
 sgnstore
 store
 *-22 .mkvenom ceilstore
 *.ypos *.hit sin store
 store
 *.kills 31988 *.refvelsx 9503 .eye8width store
 *.trefbody store
 !=
 *.ypos store
 store
 substore
 *.availability *.trefbody floor *.refdx .out2 store
 *.deltie 1 804 *8302 480 *.in2 538 419 524 832 <
 << absstore
 9811 ~ *.hitdx dupbool
 negstore
 *.reftie *-368 *.tin6 *.robage ceil *753 *-785 521 xor
 negstore
 5 26482 *.tin6 *.tmemval store
 801 31988 *.refvelsx 9503 store
 >
 store
 2200 store
 *-216 264 sin .out1 store
 *.trefshoot *.edge *.robage store
 417 sin 538 802 11703 *.slime *.maxvel store
 store
 .eye1dir store
 804 1 2525 *.tielen 467 *.robage 824 *-22 store
 *.totalmyspecies >=
 .aimright store
 18729 *.refage *.robage *.mydx store
 824 26697 467 11703 .tieang1 store
 *.eyef *.myeye 25487 *.robage sqrstore
 1 *.slime *.tielen 2525 *.myties .tout2 store
 store
 411 *.trefvelmydx 483 & store
 *.robage store
 *.hitdn clear *.tielen *.reftie *.sun *.vel ceilstore
 store
 store
 store
 rnd ~ store
 store
 floorstore
 802 *.mass 15509 << .tout2 floorstore
 inc
 sgnstore
 *.eye7 dist sgn *.tin3 .eye2dir store
 * 486 *.myties *.sun .tout2 store
 inc
 *.reftype *.in8 store
 .eye2dir inc
 8 *.veldn *.mass 833 ~ 507 *292 divstore
 sqr *720 absstore
 ceilstore
 *613 dupbool
 *.vel .tielen3 store
 486 *.vel <=
 cos >> ++
''''''''''''''''''''''''  Gene:  5 Begins at position  2841  '''''''''''''''''''''''
 cond
 !~=
 else
 *558 sin clear dist 538 *.vel 14477 substore
 absstore
 420 stop
''''''''''''''''''''''''  Gene:  5 Ends at position  2854  '''''''''''''''''''''''
 *.tielen store
 803 1 *.tin6 *.mkpoison *.reftie xor
 *.robage over * *.refveldn *.thisgene substore
 *.thisgene store
 *.treffixed 486 * store
 522 15509 store
 803 *.trefvelmydx 411 338 *.veldx 830 over 482 *.shdx *.reftie 522 *.ypos substore
 rnd 809 sin >
 30007 *.trefbody *.fixed *.vel store
 .vshoot store
 sqr store
 797 << floor addstore
 *.robage *.trefvelscalar store
 store
 stop
 -323 -1 store
 overbool
 store
 .eye1width substore
 *.vel clear *188 *8302 *.veldx *.in1 ++ false
 sgn dropbool
 21 .out6 multstore
 & rndstore
 multstore
 xor
 dec
 sqrstore
 *-94 floorstore
 sqrstore
 *744 *382 *756 *.totalmyspecies ceilstore
 sgn *112 dup %=
 *.trefshoot * *2410 30726 *.refdx absstore
 *.tieang1 store
 inc
 store
 524 xor
 store
 *114 pyth -323 xor
 *.thisgene 30311 over *.tieang store
 and
 *677 store
 25686 *.in8 store
 *.vel .shoot dec
 store
 802 *.tielen3 *.reftype *.robage substore
 ceilstore
 1 .mkvenom store
 216 *.refsx 11703 substore
 %=
 store
 dropbool
 7 *.trefaimdx .eye8width store
 =
 216 cos 30726 store
 sin angle 824 .eye4dir sgnstore
 *.paralyzed *.thisgene stop
 *.reftype substore
 911 ~=
 *514 3679 overbool
 *.eye9 *.robage store
 *.refvelsx pow mod *.tieang1 dupbool
 *.multi *387 *-4 *.hit and
 .mkpoison store
 30726 .stifftie store
 *.trefshoot inc
 *.tielen1 412 !%=
 <=
 *264 negstore
 *349 15403 rndstore
 .eye5dir absstore
 448 %=
 store
 480 overbool
 xor
 1 *8302 rndstore
 *.trefvelmysx *.trefshoot *.availability 524 *.tmemloc rnd 18220 store
 *.refvelsx *.tieang1 *.reftype store
 store
 store
 484 *.trefbody *.ypos !=
 *.sun xor
 8502 xor
 * dupbool
 483 494 *.refvelup *.trefsx store
 xor
 *.tin7 store
 *.reftype negstore
 417 824 add dist 12 *.tin7 store
 store
 *.robage store
 over *.trefvelscalar *-22 *.slime store
 sgn store
 store
 *.refvelsx *.refxpos 803 533 *843 clearbool
 swapbool
 -227 .out6 inc
 531 486 =
 .eye2dir substore
 *.thisgene store
 absstore
 *.availability *.hitdn over %=
 -122 *.trefdn substore
 absstore
 store
 474 *.in1 store
 486 .mkslime store
 substore
 *333 11703 store
 523 30726 *.refdx ~ stop
 << 31821 832 ~ *114 *.mydx *.robage 13684 28508 *.trefaimdx *.paralyzed 809 swapbool
 store
 25469 sin *433 *.robage *433 3 25487 18220 sgnstore
 *.eyef over *.trefbody *.eyef *.tin3 store
 -1 store
 *.refshell *110 808 *.reftie store
 .eye1width store
 store
 absstore
 862 stop
 store
 xor
 *.trefaimdx store
 .refdx dec
 store
 *.refdx *.eyef floor 791 1250 41 *.mkshell *512 16445 *391 rndstore
 ++ dupbool

''''''''''''''''''''''''  Gene:  6 Begins at position  3219  '''''''''''''''''''''''
 cond
 *718 sgnstore
 ^ 22732 *.veldn .shell absstore
 sin *902 *.refdx *.tmemval substore
 store
 inc
 true
 28824 *8302 ceil inc
 overbool
 *.eye9 inc
 *.in9 store
 .tmemloc store
 store
 store
 331 -587 *.numties 25421 >
 11825 store
 .aimright negstore
 538 *.tielen1 *.myties xor
 >
 xor
 floorstore
 store
 789 *.ypos rnd *.edge *433 *.refpoison store
 *.vel .vshoot store
 *.vel >
 stop
''''''''''''''''''''''''  Gene:  6 Ends at position  3277  '''''''''''''''''''''''
 824 *.tin2 *.robage *.rdboy *.ypos ceilstore
 *.reftie *.trefaimsx store
 1 -- *.venom -125 stop
 *.tielen1 789 474 *.refmulti ceilstore
 addstore
 *114 stop
 *.refvelsx sgnstore
 <=
 *.tieang3 sgnstore
 ceilstore
 .eye1dir dec
 23491 1011 cos 792 store
 *.eyef >
 638 *.availability ceil >
 *.vel *.tin2 stop
 824 xor
 floorstore
 xor
 *.myties *576 483 *.multi .strbody store
 ~ negstore
 *.myvenom *.eyef dec
 negstore
 store
 *.tin2 store
 10390 657 11 .tieang4 store
 704 *.hitdn >
 7 *.trefaimdx xor
 *.sun *264 store
 476 804 .up store
 *.trefaimdx 28508 absstore
 floorstore
 store
 *.trefshoot dupbool
 *9283 sgnstore
 overbool
 <=
 *.tieang3 sgnstore
 .fixed store
 789 12747 pyth *.refmulti *472 negstore
 799 addstore
 469 *.tiepres *-28 - *.tin8 *.tin4 653 ceilstore
 14694 div sgnstore
 rndstore
 !=
 *378 floorstore
 907 & ~ dec
 << *308 *.refvenom *.tmemval *.refdx .tieang1 store
 .tieang3 inc
 *.robage .tout8 store
 store
 453 *514 837 862 sgnstore
 ~ root 403 802 -- 480 .out9 store
 store
 floorstore
 .sx store
 overbool
 store
 store
 substore
 *513 mod addstore
 .totalmyspecies absstore
 415 dup
''''''''''''''''''''''''  Gene:  7 Begins at position  3442  '''''''''''''''''''''''
 else
 --
''''''''''''''''''''''''  Gene:  7 Ends at position  3443  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  8 Begins at position  3444  '''''''''''''''''''''''
 else
 dec
 store
 *.trefaimsx .up store
 sgnstore
 *.trefvelyourdx *.hitup *-22 *.multi store
 .tmemloc store
 *.trefshoot dupbool
 ~ *.bodgain *.tin6 29481 inc
 *8302 808 and
 floorstore
 rndstore
 << 488 multstore
 store
 drop *512 *.dn * *.tin3 *.multi *.velscalar *8302 -122 %=
 339 *.edge overbool
 inc
 ceil 836 overbool
 rndstore
 -587 -- *.refshoot *.eyef sgnstore
 *110 5723 ^ anglecmp absstore
 832 216 *.trefaimdx 820 dist >
 root sin 480 *.refxpos 480 521 11714 *753 475 *680 dupbool
 *.trefaimdx 25487 *.refvelsx 1195 *.trefaimdx *.paralyzed ceil inc
 sin 87 ++ 322 521 *.sun sgnstore
 <
 *.dn *.myaimsx negstore
 abs .up absstore
 7417 *.trefdn -122 %=
 .genes store
 *.vel negstore
 *.in9 .eye8width store
 ceil inc
 .eye5 absstore
 store
 .up store
 store
 824 *592 substore
 *.trefaimdx !~=
 1 >
 absstore
 -323 *.refypos 13684 stop
''''''''''''''''''''''''  Gene:  8 Ends at position  3571  '''''''''''''''''''''''
 824 *.tin6 >
 angle *.vel substore
 -199 *.trefbody logx .memloc sgnstore
 ceilstore
 .eye1dir dec
 store
 331 *.vel drop 5482 .out3 substore
 .mkchlr inc
 %=
 substore
 *.tin6 *.hitup *.reftie *.maxvel 22708 *.aim store
 substore
 addstore
 .eye3dir store
 11703 store
 *.refvelup 2473 sqrstore
 *.trefdx 804 808 *.refvelsx 609 not
 6199 *356 %=
 floorstore
 addstore
 *.trefeye *.tieang3 xor
 store
 *.tielen3 store
 *.trefvelscalar substore
 >> *.myties 195 mult stop
 sgn *.trefaimsx *.hitup floorstore
 dupbool
 808 !=
 *.vel 7420 *.refdx 452 862 *.tin3 10357 *433 -1 store
 *.eye9 -199 substore
 ^ 506 *.kills 789 .sx store
 ~ sqr store
 absstore
 store
 781 .eye7dir store
 *.shsx dupbool
 addstore
 add .mkvenom store
 *.slime absstore
 .tout5 store
 *.trefaimdx 7 >
 25421 over *.hitdn .refdx dec
 store
 *.tin2 337 clearbool
 overbool
 !%=
 10821 *.pleas *.hitang 14601 *561 floor 900 *110 *.myaimdx 864 dec
 !%=
 sqr 512 *.tieang ~ *512 *403 *395 426 dropbool
 21710 *.tin5 absstore
 .shell divstore
 floorstore
 & -- negstore
 *.tiepres *.refvenom div *188 *.trefvelyourdx 301 stop
 -125 *.tin2 *.reftie false
 194 ceil 808 *.hitup 28508 808 *.hitdn *.reftie *.tin2 ceil *.availability 638 floorstore
 xor
 >
 << *.mass xor
 *.maxvel 524 18729 *.refage 11703 862 store
 store
 522 *.hitdx *.refmulti 466 abs *.robage store
 417 sin 538 2200 *.availability *433 *.edge store
 *.myeye 453 1195 floorstore
 *.trefaimdx 25487 *.refypos absstore
 store
 22708 rndstore
 31821 negstore
 .out3 store
 << >
 xor
 floorstore
 833 *.eyef 835 ceil 25487 *.trefnrg pyth *.trefaimdx floorstore
 .aimright store
 store
 -1 *.trefeye *.vel *.tieang inc
 521 stop
 833 dropbool
 *.thisgene substore
 .mkpoison store
 30726 .stifftie store
 *.trefshoot inc
 *.tielen1 412 !%=
 <=
 521 538 *.trefaimsx -1 *.tielen4 substore
 2825 *.tin6 *.robage ceil *-368 & | ~=
 *264 <=
 sqr *.trefshoot store
 ceilstore
 415 *.kills 789 store
 absstore
 store
 *.slime .mkvenom store
 802 *.trefshoot sin negstore
 13005 .eye2dir substore
 833 539 31821 store
 store
 802 *.tielen3 *.reftype *.robage substore
 5723 store
 *845 *.tin6 *.refveldx *.trefvelmydn .aimshoot store
 substore
 *.thisgene 15509 << *.veldx ~ sqr store
 *.trefbody store
 sgnstore
 store
 *-22 .mkvenom substore
 *.eyef negstore
 absstore
 substore
 *.tin3 *.reftie 528 sin 486 30726 ceilstore
 drop 524 *.tin6 *.treffixed store
 addstore
 store
 11703 301 *.eyef << store
 .tielen3 store
 =
 store
 347 !~=
 521 sqr 804 539 *.reftype substore
 5 *.refdx 11703 *.refsx *.in8 1 floor 2200 417 & 465 =
 !~=
 347 store
 .eye1dir substore
 *.reftype 13531 804 sqr *264 .up sgnstore
 *.eyef *.deltie *.tieang1 *.velscalar *.multi *732 *.myeye sgnstore
 << *.mass *.deltie .eye5dir store
 absstore
 14 *.in1 store
 826 *.daytime rndstore
 stop
 *.shflav >=
 30726 411 25487 31456 dec
 addstore
 negstore
 *.reftype store
 349 *.trefvelmydn ceil *.trefaimdx 524 %=
 store
 30726 *.trefshoot *.refage !=
 *.ypos *.trefbody .tielen1 store
 store
 store
 negstore
 *.slime 12731 inc
 overbool
 !=
 22708 *.reftype 1 *8302 rndstore
 *.trefvelmysx *.trefshoot *.myaimdx *.trefaimdx 412 add sin 417 862 .up absstore
 store
 *.robage store
 store
 store
 862 absstore
 store
 *.tieang1 *.vel store
 substore
 *.in4 1 *.vel 338 xor
 rnd 18220 store
 *.refvelsx -337 floorstore
 12525 214 sub addstore
 .vshoot store
 *.reftie sgnstore
 store
 substore
 store
 806 411 338 dist .eye8width rndstore
 *.myeye store
 11703 467 *677 *.tin1 store
 cos sin sqr *.mydx * .tielen3 store
 832 sin *.eyef .eye8width store
 dupbool
 addstore
 11703 ~ 338 .tout3 addstore
 store
 store
 *.tin7 store
 *.daytime *.trefbody ~ 14449 store
 sin *.in2 cos sin 474 789 6543 sin 5 rnd 31821 store
 835 ceil 25487 *.trefnrg pyth *.refsx floorstore
 .aimright store
 store
 -1 *.trefeye *.vel *.tieang inc
 521 stop
 833 dropbool
 *.thisgene substore
 521 538 *.trefaimsx -1 *.tielen4 substore
 2825 *.tin6 *.robage ceil store
 ^ 5723 *.eyef angle *.robage .up store
 .tout9 multstore
 and
 .aimright store
 30726 808 *.hitdn *.reftie store
 logx *.trefbody store
 538 *.eye3 11825 store
 480 809 *633 *.out4 .numties sqrstore
 *.mydn 794 multstore
 not
 %=
 store
 30726 *.trefshoot sgnstore
 12510 761 store
 801 521 481 *114 486 14449 store
 add store
 1 *8302 *.trefshoot *.hitdn drop *-311 10018 store
 486 *.refdx store
 addstore
 480 18220 substore
 *.in1 >
 558 mod *.multi <
 sqr *.trefup *110 sgnstore
 *.eyef over 26728 store
 *.trefxpos 411 *-132 *.hitdn *668 409 0 *.trefdn swap ~=
 substore
 rndstore
 338 483 *.refvelup *.vel overbool
 store
 store
 %=
 store
 store
 store
 18220 absstore
 store
 *.trefshoot ceil *.tmemval store
 301 *.refdx *.refvelscalar *2410 30726 store
 *.nrg .tieang4 store
 704 *.hitdn >
 7 *.trefaimdx dec
 overbool
 store
 *.tin6 804 *.myties *.vel -85 negstore
 804 *.tiepres store
 862 absstore
 inc
 ceil inc
 store
 *.refdx *.eyef angle 824 2539 *.trefaimdx !~=
 *.thisgene >
 .tout8 store
 .out4 store
 *.eye9 absstore
 469 .tieang2 store
 *.eye7 *.eye5 25686 *433 -326 *.robage .tieang1 store
 *.shdx 26525 overbool
 *.myties 522 28982 store
 19486 << *.tin9 *.refaim .mkpoison negstore
 cos *645 12389 dropbool
 addstore
 *232 *-6 substore
 over *.mydx swap divstore
 dropbool
 multstore
 overbool
 sgnstore
 *.fertilized sin *.ypos *630 floorstore
 dropbool
 angle multstore
 true
 *.vel *.tin7 .timer store
 *433 *.edge ceilstore
 dropbool
 16018 .up store
 store
 sgnstore
 345 .eye9width dec
 *.slime store
 *.robage store
 *.myties xor
 >
 sin *.myties absstore
 dupbool
 *.tin1 *.shdn *.refnrg 1 *.refeye %=
 *.eyef .mrepro store
 dec
 704 *.vel .stifftie absstore
 *.tin7 5723 store
 ceilstore
 *.refup *.ypos .aimright store
 absstore
 28508 * 804 1 .out5 store
 22708 *-22 *.paralyzed stop
 floorstore
 *.trefaimdx *.edge 3801 *.vel substore
 4835 789 832 330 13684 *.robage *.refup inc
 not
 *.eyef *.tin3 824 *.mass 2200 *.tin6 store
 sqr store
 sgnstore
 floorstore
 *.robage store
 11703 .mrepro store
 -1 2539 store
 28508 *.trefaimdx mod *.refvelsx multstore
 store
 dropbool
 467 *.edge absstore
 store
 22708 rndstore
 31821 negstore
 .out3 store
 *.trefaimdx 30726 *.tin6 *.refveldx *.trefvelmydn *433 *-22 *.trefbody store
 !=
 *.ypos floorstore
 ceilstore
 520 ceilstore
 ceilstore
 substore
 *.robage mod *.tieang1 store
 >
 *264 <=
 !%=
 412 *.tielen1 inc
 *.trefshoot store
 331 30726 store
 826 and
 *-4 *387 *.multi dupbool
 .aimleft store
 true
 13055 *635 .trefvelyourup absstore
 .eye5dir rndstore
 15403 *349 negstore
 store
 480 862 *.trefbody *.pain floorstore
 *.veldn *.robage store
 826 .aimshoot store
 store
 store
 store
 floorstore
 !%=
 <=
 store
 store
 rnd ceilstore
 521 !%=
 drop store
 2849 store
 *.mydx store
 417 sin store
 over absstore
 addstore
 substore
 ceil floorstore
 476 24687 store
 ~ !=
 store
 ~=
 14449 2200 *-22 *.reftie sgnstore
 862 .up absstore
 store
 *.robage multstore
 862 store
 *.trefvelyoursx *.eyef negstore
 & 832 *.bodgain store
 *.trefshoot .eye1dir store
 *.in8 dupbool
 *.numties >
 *.robage store
 *.vel 331 483 *.trefbody 809 5723 *.vel *.multi store
 .fdbody store
 <
 17205 true
 ^ 17198 *.mydn %=
 substore
 substore
 *.in10 %=
 *114 stop
 *.refvelsx 25487 & *.tin2 469 524 824 .eye1dir sgnstore
 substore
 809 486 *.thisgene *.trefvelscalar *.refvelsx inc
 store
 8401 *.trefaimsx sgn swap dist *.refaim 804 .up store
 414 *.trefaimsx sgn stop
 *433 *.kills 789 862 store
 store
 *.tin1 809 5723 *375 ++ absstore
 894 *785 sgnstore
 523 *97 697 30856 store
 or
 dist sgn *.reftie - floorstore
 *384 *274 *.trefaim 416 *.xpos sub store
 *8302 .vshoot store
 .numties substore
 *.shdn !%=
 store
 store
 sqrstore
 store
 835 *-772 *.refmulti 6543 sin *.trefvelmysx rndstore
 338 483 *.refvelup angle >
 dropbool
 *-138 and
 %=
 logx dropbool
 !=
 *.vel 3 *.trefvelyourdn 28508 store
 *.hitsx 27603 626 808 dupbool
 overbool
 absstore
 *.myties 522 *.mysx * *.trefvelyourup 1202 *.sun xor
 696 * stop
 9816 480 480 <
 *.robage multstore
 862 store
 .tieang1 store
 %=
 store
 dropbool
 .tout6 dec
 *.tieang2 store
 absstore
 true
 store
 535 .vshoot store
 *.refaim =
 .eye8width store
 !=
 logx dup *.trefaimdx 1195 negstore
 *.trefypos overbool
 store
 338 *.maxvel 2 *.tin3 logx & -1 *.myup store
 *.vel store
 *.robage *.tin2 -1 floorstore
 store
 9 *.refaimdx 26021 906 store
 487 25508 *.myties .tout2 store
 *558 negstore
 *.trefvelscalar *.tieang1 absstore
 *.refdx store
 floorstore
 *.refdx absstore
 *.tieang1 *.reftype 25686 store
 cos negstore
 *.eyef *.trefvelyoursx overbool
 *.eye9 *.robage store
 28982 store
 19486 << *.tin9 *.refaim .mkpoison negstore
 cos *645 12389 dropbool
 addstore
 *232 *-6 417 sin store
 over absstore
 store
 substore
 *939 inc
 *.refvelscalar store
 dec
 substore
 *.tieang1 store
 >
 floorstore
 18722 *.in8 *264 ceilstore
 dropbool
 *9283 .aimright negstore
 824 *.robage *.trefvelscalar over store
 *.refvelsx *.refxpos 803 533 *843 clearbool
 swapbool
 inc
 805 -227 .eye1width substore
 *.thisgene *264 *9283 sgnstore
 overbool
 store
 store
 pyth *.robage 467 11703 store
 *.myeye *.vel 3 *.trefaimdx 28508 store
 *.hitsx *.vtimer %=
 store
 *17 824 *.robage ceil floorstore
 25686 *.refypos store
 store
 store
 *.mass *.refvelsx *.myaimsx 30726 *.trefvelscalar *110 *.trefbody *.tin2 *.reftie store
 824 logx floorstore
 !%=
 *.eyef 25686 store
 xor
 696 xor
 *.sun 27511 floorstore
 483 921 31821 >=
 *.refvelsx 529 xor
 809 *-22 *.timer 1 *.in10 xor
 xor
 .aimright store
 substore
 18220 *.eyef *.refbody 20533 store
 11825 338 *.totalmyspecies sgnstore
 *.mass 2200 %=
 339 *.trefaimsx 466 833 =
 25686 store
 store
 store
 <
 *.refvelscalar inc
 store
 411 25487 store
 %=
 substore
 *.vel angle 15009 *.tin3 pow store
 >
 522 *.myties 626 808 dupbool
 overbool
 521 801 *.tin3 ~ !=
 store
 sin 6543 dist 14449 2825 *.tin6 *.robage 862 true
 804 ^ *.paralyzed >
 *.eyef store
 *.eyef store
 store
 store
 store
 *8302 rndstore
 multstore
 *.refvelsx 8302 .up store
 *.trefshoot *2410 ceilstore
 *.availability 862 1 *8302 *.velscalar *.multi *.tin3 store
 rndstore
 486 ~ >> negstore
 *98 12496 .out2 store
 521 480 *.refxpos absstore
 *.tieang1 *.reftype dropbool
 *.refveldn floor ~ store
 *.eyef >
 26482 *.vel *409 store
 31821 negstore
 486 *.eye3 *.aimleft *.refaim 2539 *635 * store
 *.trefbody store
 !=
 *.ypos *.trefbody over store
 2200 *.mass sgnstore
 *.bodgain inc
 store
 696 %=
 store
 *.refdx store
 5723 dupbool
 absstore
 13138 26965 .eye5 sqrstore
 !=
 mult *.tout8 1211 *362 xor
 root *.eyef *8302 xor
 store
 store
 store
 484 *.trefbody *.ypos !=
 >
 over *.in4 store
 *.myaimdx *.trefshoot sin negstore
 *.fixed 522 .out9 store
 *.hitup .vloc store
 << 25686 %=
 *.hit rnd >> floorstore
 -337 inc
 ^ anglecmp *.refvelsx xor
 *.myties 1 >
 *.reftype store
 store
 store
 - ceilstore
 *264 *.reftie *.trefaimdx *.mass 2200 538 -227 10458 480 1 14449 floor 1195 anglecmp sub <
 -1 *.tin3 inc
 *.eye3 *.body *.shdn *.reftype *.tieang1 absstore
 *.refdx sin angle 824 524 *.trefbody xor
 xor
 14426 dec
 1 *264 *.eye9 *.robage over store
 2229 *656 !~=
 650 sqr 804 *.vel store
 mult ceilstore
 addstore
 store
 29696 *.reftype *.maxvel add | dup 819 *321 *282 *-495 mod root 1 *.slime *.tielen 2525 *.myties .tout2 store
 !~=
 << <
 swap floorstore
 dup >> 344 dec
 stop
 *.mass * 538 *692 store
 *.myaimsx * 1313 dupbool
 absstore
 anglecmp store
 *.veldn *.deltie 538 *-784 multstore
 10 drop ++ floorstore
 rnd ++ *.trefvelmydx store
 *.eye9 18220 31220 substore
 ^ 5723 *110 *.mydx 483 *677 *.mass substore
 %=
 *.myeye 862 ~ rnd store
 store
 .out9 dec
 store
 *.hitdx >=
 30726 411 *.myaimsx 31456 dec
 addstore
 349 *.trefvelmydn store
 substore
 addstore
 .eye3dir store
 11703 store
 *.refvelup 2473 sqrstore
 *.trefdx 804 808 *.refvelsx 609 not
 6199 *356 %=
 floorstore
 addstore
 inc
 *114 ~ ++ *674 *.trefbody *.tielen2 *.vel *110 store
 *.eyef 18220 sin 2849 338 rnd *8302 substore
 *.thisgene *.tin6 .out9 store
 *.robage 698 *.trefvelyourup 11703 .eye9dir store
 901 *.tielen 804 521 *16 <
 480 1 *.robage 698 *.trefvelyourup .eye8width store
 store
 *.refdx .eye8width store
 483 *.nrg *.in2 dec
 *7928 862 *.refveldx store
 absstore
 dupbool
 5723 *.trefbody *.ypos *.trefxpos store
 addstore
 *.tin3 *.tin2 *.robage 1 *.waste store
 802 *.sun 809 11825 sin negstore
 *.fixed *.robage store
 >
 store
 pow ~ << store
 div ceil *.tin1 sgnstore
 13543 *.in6 *.genes 30726 *.trefbody ceilstore
 store
 absstore
 *.tin3 5 stop
 25487 184 414 xor
 862 .tout8 store
 *.robage *.eye9 overbool
 -1 ~=
 14449 .shareshell store
 substore
 store
 >
 *.aimleft *.numties .tout6 store
 *.refaim *2410 8302 addstore
 31282 12496 *.refxpos 480 .eye1dir store
 801 480 17371 anglecmp absstore
 store
 .out9 store
 *.trefbody sgnstore
 sub 2884 *254 store
 481 div *.tout8 *24 sqr sqrstore
 ceilstore
 296 substore
 *.tieang3 *.trefeye *.tin3 *370 .eye8width store
 *.robage 1195 >
 *779 substore
 multstore
 11286 sqrstore
 *-61 -- *.trefshell 331 338 31821 *.myties 2525 !=
 dupbool
 *.vel *.trefaimsx false
 367 substore
 dec
 store
 ceil 2200 31821 inc
 overbool
 *.edge *.shootval ceilstore
 *.trefnrg *436 multstore
 negstore
 multstore
 *851 multstore
 *874 *.in1 store
 *.trefbody store
 1202 *.trefvelyourup !=
 *.mass xor
 store
 19486 *.trefnrg store
 .tout10 negstore
 substore
 2200 538 sin .tout8 store
 *.refaimsx *433 25686 *.eye5 *.robage -323 absstore
 28508 -1 store
 *.refshell store
 *.refdx .up store
 store
 *.tieang1 .repro store
 mod *.refvelsx multstore
 rndstore
 store
 xor
 >> mult *8302 2539 store
 13684 sqr ~ *.in4 store
 store
 store
 dropbool
 *.thisgene substore
 *264 <=
 *.tin5 *.vel store
 absstore
 store
 808 *110 *.myvenom negstore
 11825 >
 *.eyef *.in10 1 *.timer 29696 store
 absstore
 1 862 sgnstore
 *.reftie *760 *674 sqrstore
 302 *.timer & *.refaimdx store
 *.tin3 *.reftype *.trefvelyourup floorstore
 logx 411 25686 *.refnrg 17826 rndstore
 *520 | 824 .out5 inc
 *.tin3 338 11825 *.myties 539 >
 clear .mrepro store
 ~ 848 ceilstore
 *.refage <
 *.vel *.paralyzed *.trefbody *.ypos << store
 .vshoot store
 *.refshell *110 808 *.in1 5723 store
 5 *654 12731 sin *.eyef 804 *.rdboy *.robage *.tin2 *.sun store
 store
 *.in8 *.refsx *-18 store
 store
 *.robage floorstore
 store
 *.robage 521 >
 sin 412 809 *.tin10 & absstore
 *2417 303 *517 negstore
 11884 *399 & 1 *264 substore
 *.reftype 13531 804 false
 521 sin *.pwaste 13684 store
 .shareshell store
 substore
 *.chlr ~ *.hitup store
 store
 10426 *.hitdx *.sun store
 *.hitsx store
 833 ~ store
 824 *.tmemval substore
 negstore
 31821 true
 28824 804 *908 negstore
 731 dropbool
 2 angle store
 ~ sgnstore
 inc
 *8302 store
 521 *.tin6 480 ceil *.refveldx div - *229 407 572 *.refvelscalar false
 *.trefnrg 405 inc
 .out10 store
 *.trefvelmyup store
 *.robage 586 absstore
 store
 floorstore
 *.trefshoot addstore
 anglecmp 5 483 .mkchlr store
 ceilstore
 *.vel store
 .up store
 store
 store
 absstore
 store
 *.eye7 12731 30525 store
 sgnstore
 698 sgn dist .aimright substore
 *.daytime 8481 789 ~ rnd dist mult .mkpoison store
 *.tin1 rndstore
 1 638 floorstore
 688 *177 32000 negstore
 *.veldn .tin4 substore
 540 *.refaimdx 494 *.shdn overbool
 521 *.tin6 add dist negstore
 inc
 480 *.refnrg *-22 store
 store
 862 *565 ceilstore
 *.refveldx inc
 *.trefbody - ~ *.trefvelscalar store
 over .eye7dir store
 store
 25487 *.myeye *.eyef negstore
 25686 804 .up store
 negstore
 539 *.tin9 *.tielen store
 28982 store
 *.trefvelmysx sin 6543 *.refmulti abs substore
 *.trefdn -122 %=
 533 *.in4 substore
 absstore
 *.refmulti 466 *.in4 6543 sin *.trefvelmysx negstore
 divstore
 pow
''''''''''''''''''''''''  Gene:  9 Begins at position  5864  '''''''''''''''''''''''
 cond
 *361 499 absstore
 801 521 .tieang2 store
 761 12510 sgnstore
 store
 %=
 store
 addstore
 substore
 substore
 12731 169 | *.aimright sin pyth
''''''''''''''''''''''''  Gene:  9 Ends at position  5886  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  10 Begins at position  5887  '''''''''''''''''''''''
 cond
 ~ *-712 ~=
 dup addstore
 *587 -42 *114 store
 *.vel .vshoot store
 store
 1195 474 *.eyef *333 11703 *.shdn *.body xor
 xor
 dupbool
 over *.trefbody *.eyef *110 store
 angle *.vel .mkpoison store
 *.eyef dec
 negstore
 store
 *.tin2 true
 ^ store
 *.trefvelmyup absstore
 862 *.robage store
 524 *264 539 31821 root inc
 480 *.trefaimdx *.tielen .up store
 *.eye9 18220 31220 substore
 sqrstore
 stop
''''''''''''''''''''''''  Gene:  10 Ends at position  5949  '''''''''''''''''''''''
 *.totalmyspecies *.fixed *264 31988 *.refvelsx 9503 sgnstore
 store
 30525 12731 store
 store
 *.maxvel substore
 *.robage .tielen3 store
 .eye9dir store
 store
 824 1 *.in8 824 524 .tout6 store
 *.refsx *.in8 18722 floorstore
 *.trefbody *110 *.trefvelscalar 30726 *.myaimsx *.refvelsx *.mass substore
 *.tieang1 store
 >
 *.tin2 *.reftie xor
 529 *.refvelsx >=
 31821 store
 store
 809 *.paralyzed *-784 drop *.refbody 20533 store
 11825 338 *.totalmyspecies sgnstore
 *.mass 2200 %=
 339 *.trefaimsx 466 833 521 801 *.tin3 ~ !=
 store
 sin 6543 dist 14449 store
 .out2 negstore
 div store
 *.trefbody store
 !=
 *.mass 2200 %=
 339 *.trefaimsx 466 833 521 801 *.tin3 ~ 10357 *.refage store
 1 *.eye9 negstore
 *691 floorstore
 dist -- .trefnrg inc
 1208 429 *492 *324 *.tin1 add 334 *367 13189 logx *.trefbody <=
 *767 * over 482 *.shdx *.reftie 522 30007 >
 sin 809 rnd store
 angle 824 *.refpoison 789 469 sqr store
 store
 store
 store
 *.robage *.eye9 524 824 angle *.eyef *.tin6 .eye1dir ceilstore
 *387 10954 addstore
 sqrstore
 536 *-22 store
 <
 480 531 *.eyef stop
 store
 .readtie store
 *8302 store
 store
 338 411 *.trefvelmydx 411 830 *.eye8 * *.reffixed .eye2dir negstore
 *.refdx substore
 18220 ~=

''''''''''''''''''''''''  Gene:  11 Begins at position  6136  '''''''''''''''''''''''
 start
 >> addstore
 -- swapbool
 stop
''''''''''''''''''''''''  Gene:  11 Ends at position  6141  '''''''''''''''''''''''
 dropbool
 20706 521 dupbool
 negstore
 *.reftie *-368 ceil *.robage *.tin6 *753 522 *.myties absstore
 substore
 store
 %=
 substore
 ceilstore
 680 *747 .tout1 negstore
 *15 dec
 32000 %=
 *.hitdx ~ 9811 absstore
 << <
 832 524 419 538 *.in2 480 *8302 804 .eye9dir store
 store
 floorstore
 .eye9dir substore
 %=
 store
 .eye8width dec
 15009 angle *.vel substore
 -199 *.trefbody logx store
 *.myeye *.vel 3 *.trefaimdx 28508 store
 *.hitsx *.hit %=
 25686 store
 12467 store
 *.tieang2 absstore
 store
 store
 335 dropbool
 *.trefaimsx 698 sgn floorstore
 inc
 sgnstore
 *.eye7 dist 483 .mkchlr store
 *.refypos 25686 floorstore
 ceil *.robage 824 *.robage 467 11703 474 *.myaimsx stop
 789 store
 480 3335 521 *.trefvelyourup .eye8width floorstore
 *.in3 store
 18729 524 dup *.refshell *110 *.robage dup *.thisgene floorstore
 %=
 *356 6199 not
 609 sqr <=
 26821 dec
 dec
 *.trefaimdx 7 >
 *.hitdn .refdx store
 483 *.nrg store
 *254 2884 *.tout8 *.tin1 824 .eye4dir sgnstore
 store
 *.maxvel 524 18729 *.refage 11703 862 substore
 *.eyef negstore
 absstore
 substore
 7 *.refmulti .tout6 store
 *.reftie *.thisgene *.refpoison 25686 floorstore
 ceil store
 31821 539 .shareslime substore
 522 13005 negstore
 sin *.trefshoot .shareslime store
 *.robage *264 store
 *.tin2 28828 %=
 521 .out2 store
 ~ store
 *.reftie >
 862 *.availability sgnstore
 *.mydn *.robage xor
 store
 808 522 *.fixed negstore
 sin *.trefshoot *.myaimdx store
 *.in4 over >
 835 *.hitup store
 store
 store
 484 *.trefbody *.ypos !=
 >
 1 *.myties xor
 *.refvelsx anglecmp ^ inc
 -337 floorstore
 >> store
 417 *-22 *396 *-275 *406 logx xor
 *.myaimsx *.refvelsx dupbool
 .tieang3 store
 >
 sin 483 8401 store
 8729 stop
 *.availability *.trefup *.myvenom *.shdn store
 *403 sqrstore
 multstore
 dec
 .eye8width sqrstore
 clearbool
 *.tielen1 *.trefvelyourdn 25686 .shoot ceilstore
 *.trefaimdx floorstore
 stop
 not
 *.eyef 6 *24 add dupbool
 *.velscalar 338 ~ store
 >
 862 store
 *.hitdn rndstore
 ceil .tielen3 absstore
 -323 808 *.in1 *.trefvelmysx *565 698 .mkvenom ceilstore
 *.vel 804 xor
 *.tiepres absstore
 420 rnd *.tin3 substore
 sin << *.refvelsx !=
 !~=
 dec
 angle 24523 *.sx *.hit store
 *.tin1 *.ypos *7959 logx 794 32000 overbool
 *609 26706 *.tin6 804 *.tielen2 1195 832 >
 xor
 *.myties *.vel 824 stop
 >
 xor
 floorstore
 638 *.availability ceil *.tin2 *.reftie *.hitdn 808 480 <
 << absstore
 9811 ~ *.hitdx dupbool
 negstore
 store
 store
 20533 *.refbody drop *-784 *.paralyzed absstore
 507 cos dup 691 *472 * inc
 multstore
 dec
 *.refypos store
 833 *.in6 substore
 multstore
 484 *.mkchlr 460 !~=
« Last Edit: August 21, 2022, 12:33:04 AM by hdggDalton »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: coexistence
« Reply #40 on: August 27, 2022, 09:42:10 PM »
It's still quite a feat!  I don't think anyone's managed a simulation that long, at least not to my knowledge.  Best of luck on your next simulation.

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #41 on: September 24, 2022, 04:10:22 PM »
alright this is the setup i got running right now, splitting the map into 4 quarters

nothing too special yet as of 29.474 million cycles, the bots engage in opportunistic cannibalism where they hover around each other but don't try too hard to eat each other, like only shooting a few shots at a time. They're not very active movers, they just stay still when there's no food or other bots around. There's slight differences between the bots in each quarter but it's largely all in junk code/neutral mutations that doesn't do anything but still changes the color

This simulation almost faced a total extinction a few days ago because I made the barriers between the quarters too restrictive, which increased the risk of complete death in one quarter since it was really hard for a bot to repopulate it from another corner. What I think happened is that one corner died out from unfortunate starvation, then followed by another one, then another one, and all the plants in the died out corners contributed to the total energy (The sunlight turns off at a maximum upper limit of total energy to prevent the map from being overrun by plants) which caused even less energy to go into the plants into the corners with bots still alive, causing the other corners to die out quicker.

But a few bots managed to survive in the bottom left corner, when I got back from doing something they were down to a pitiful 30 since they had to rely on scraps from the few plants they could reach since the plants stopped spawning in since the amount of plants was at the maximum limit. Thankfully I kickstarted it back up by deleting those super restrictive barriers and manually moving some bots right next to giant piles of plants in each of the 4 corners. Their dna was still intact and unmolested by genetic drift, so they quickly repopulated and now i have a blooming simulation that's quite alive :D

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #42 on: October 02, 2022, 02:05:12 AM »
oh my god guys, the bots are changing!!! they're becoming more greedy, with more average energy per bot. since i increased the graphing interval i can see some more long term trends, like a while ago there was heaps of population and diversity but somewhere along the way the population crashed and never recovered from it

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #43 on: October 06, 2022, 06:12:50 PM »
oh dear it looks like a bot has discovered a way to gain immortality and cheat death
basically it spits out a child every frame but then eats it either on the same frame or in the very next frame, and somehow it has maintained maximum energy+body

Code: [Select]
cond
 *.eye6 *188 !~=
 *.refeye << >=
 start
 25831 .up store
 .eye5width store
 806 <
 logx *294 *.mysx *.tielen1
''''''''''''''''''''''''  Gene:  1 Ends at position  19  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  20  '''''''''''''''''''''''
 start
 *.trefbody *.eyef 207 >=
 *.myeye 806 <
 logx store
 *.hit *.tielen2 -6 .shoot store
 15429 *.myeye *.refypos .shareshell store
 337 xor
 5 ++ *.refvenom sgnstore
 substore
 and
 *.nrg 30511 >=
 .repro floorstore
''''''''''''''''''''''''  Gene:  2 Ends at position  52  '''''''''''''''''''''''

Offline hdggDalton

  • Bot Neophyte
  • *
  • Posts: 43
    • View Profile
Re: coexistence
« Reply #44 on: January 04, 2023, 03:58:58 PM »
Hello everyone happy new year it's been a while but i got some interesting things to show you because ive been running the simulation all this time. First of all i kinda started a new simulation by picking out the best bots from the simulation, then just making it start with those bots, but I also edited their mutation rates because I screwed up by making the mutation magnitude too large. Like, a point mutation is usually only 1, but i edited it to be minimum 1, maximum 5 and it didn't work well because usually for cool new things to happen you need small mutations that over time work with more small mutations to create some new behavior or function. But with the large mutation magnitude, it was basically impossible for the bots to evolve significantly because it would change too many things at once, usually breaking the bot so that it does nothing and dies of starvation. Even if it doesn't kill the bot, the large mutations usually only add or change junk code that does absolutely nothing, and extremely convoluted junk code filled with nonsense too, so that it's extremely hard for additional mutations to end up being positive.

I want to simply describe what most bots do, because their behavior is quite unique. If they don't see anything, they just stay still. It's boring, and it's pretty much what the basic animal minimalis does anyways, but it's practical because the cost of movement is pretty high and especially since there are a lot of walls and no map wraparound, there's no guarantee of finding food by simply moving in a straight line, and in fact doing that can get you stuck in a corner where you're even less likely to find food and very likely to starve to death. If they see a plant, they go straight for it and eat it. If they see a bot, it seems like they try to circle around each other, and sometimes they attack each other with shots, but with not much dedication. They're pretty much opportunistic cannibals. Maybe the circling behavior is a result of bots trying to get behind the other to land free shots? Also they treat a corpse exactly like a plant and go straight for it.

So once I turned down the mutation magnitude, I started seeing some interesting mutations. First of all there was a species in the upper left quadrant which developed shells, which greatly helped them survive from the opportunistic cannibalism of basically everyone else (opportunistic cannibalism is when bots don't necessarily seek out other bots to kill and eat, but they will totally do so if one ends up in their sights) but they eventually died out. I believe this is because they made too much shell so they became too heavy and couldn't move anywhere to find food, so while they could resist cannibalism, they just starved to death. Second there was another species in the upper left quadrant some time after this which somehow stopped being cannibals and basically regained the ability to distinguish between plants and bots so that they won't attack bots. They still circle around each other and get pretty comfy with each other, so they still recognize bots, but won't attack them. I think I've said before that once animal minimalis loses its ability to recognize other bots to not attack them, it's impossible for them to regain that ability through mutations, but i was proven wrong and i'm delighted about it. Sadly i found them yesterday right as i was about to go to bed so i didn't take a picture of them, went to bed, and i forgot to take a picture of them again when i woke up and reopened the simulation and forgot all about them, and by the time i remembered the simulation had ran for a while and they apparently went extinct during that time. :( my guess is that they were killed with impunity by the opportunistic cannibals and they didn't fight back at all. Or it might be bad luck in finding food, as they were a pretty small population of about 10 bots

the first picture is an overall screenshot of the whole simulation, and the second picture is an example of what it looks like when bots have just finished eating up a clump of plants, they do this crazy circling battle royale where they try to eat each other

here is the best bot, with 61 descendants out of a population of 610, impressive!
Code: [Select]
cond
 *.tieang3 *.myaimdx *.eye8 !=
 *.tin4 *.refeye >=
 start
 *.refage .strbody store
 *.refveldx clearbool
 29205 413 *.eye2 18838 *.myshoot store
 *.refage 2 .memloc store
 .tielen4 store
 *.refypos dropbool

''''''''''''''''''''''''  Gene:  1 Ends at position  28  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  29  '''''''''''''''''''''''
 start
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  30  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  31  '''''''''''''''''''''''
 else

''''''''''''''''''''''''  Gene:  3 Ends at position  31  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  32  '''''''''''''''''''''''
 start
 and
 207 >=
 *.robage *.hit -6 .shoot store
 327 not
 5 ~ substore
 *293 angle *.veldx *.trefvelmydn *.nrg 26656 >
 527 *.refsx .dn store
 .repro store
 924 27413 *.pleas''''''''''''''''''''''''  Gene:  4 Ends at position  61  '''''''''''''''''''''''