Darwinbots Forum

Welcome To Darwinbots => Newbie => Topic started by: hdggDalton on January 09, 2022, 08:50:37 PM

Title: coexistence
Post by: hdggDalton on January 09, 2022, 08:50:37 PM
so i was running an evolution sim with animal minimalis, i made it huge, with hundreds of bots. i just fed them some really basic algae that doesn't make slime because i was hoping for the bots to take advantage of it (and also so the simulation runs faster ;)) at one point i noticed one particular patch of algae that didn't go away, and had survived for 20 generations, i was super interested because most plants are just there to feed but this one was really spaced out and smaller than normal. i saw that instead of making tons of chloroplasts and trying to grow as fast as possible which would make them really big and easy to eat they just made 1 chloroplast per cycle which slowed their growth but kept them small and hard to eat. the bots seemed to be feeding off of the plants but not killing them off completely, circling around almost like gardeners.

it looked like first the bots were sloppy eaters used to feeding on huge plants with full chloroplasts, then some plant had a mutation that caused them to only make 1 chloroplast per cycle, which made them small and hard to eat, but not impossible, some bots moved in, ate all the big plants, and started circling around the small plants getting a shot here and there, enough to reproduce once in a while, while the plants very slowly grew outward. i believe the bots have to have crappy shooting in order to coexist with the plants and have a reliable food source

i have a photo of it from yesterday, and a new photo from today. there was a small crisis where the area was temporarily infested with max body plants that somehow figured out how to shoot and they would kill everything that intersected their shots but thankfully they died because of waste. of course there's other places in the simulation, where the non-gardener bots are happy to eat huge accumulated stacks of normal plants, and then hope to find more food before they die
Title: Re: coexistence
Post by: Numsgil on January 12, 2022, 01:30:32 PM
I had a sim once where the plants learned to "vibrate" by storing small random values in .dx and .sx which made them hard enough to eat that they were able to coexist with the animals for the same reason: the feeding animals ended up being quite sloppy because they had a hard time aiming their shots to always hit.  I think it's a viable strategy to get a coexistance going: you need the animals to struggle to feed enough that the plants have an opportunity to survive.  But it can also tip too far in the plants' favor and it can be so hard to feed that the animals die off.
Title: Re: coexistence
Post by: hdggDalton on January 12, 2022, 07:57:43 PM
yeah, it's all about sustainability, i'm hoping that this little plant will spread to the whole map and i won't even have to repopulate with normal plants, because it is kinda slowly creeping outwards... here is how it's going right now, surprisingly a wholly separate clump of plants have appeared to the left of the main clump, they work by only producing chloroplast when their chloroplast is less than refypos? ill just put it here
Code: [Select]

 cond
 *.chlr *.refypos <
 start
 160 .mkchlr store
 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  9  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  10  '''''''''''''''''''''''
 cond
 *.nrg 6000 >
 start
 50 .repro store
 15 .aimright store
 inc
 & sqr stop
''''''''''''''''''''''''  Gene:  2 Ends at position  24  '''''''''''''''''''''''


and this is a size 14 map too
Title: Re: coexistence
Post by: hdggDalton on January 17, 2022, 02:01:25 PM
yo guys one of the plant colonies split into 2
Title: Re: coexistence
Post by: hdggDalton on January 23, 2022, 11:02:54 PM
ok guys bad news the original 2 colonies of coexisting plants and bots are dead D:

but good news is that another has taken its place! unlike the previous ones which were dreadfully slow these new ones just limit their max chloroplasts to stay small, i didn't even think of that :D

Code: [Select]
cond
 *.chlr 16281 <
 start
 160 .mkchlr store
 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  9  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  10  '''''''''''''''''''''''
 cond
 *.nrg 6000 >
 start
 50 .repro store
 15 .aimright store
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  21  '''''''''''''''''''''''

Title: Re: coexistence
Post by: Numsgil on January 26, 2022, 01:36:12 AM
Interestingly the first DNA you posted had some junk at the end the second one doesn't.  Otherwise they are remarkably similar.  I'm guessing the mutation rate is pretty low?
Title: Re: coexistence
Post by: hdggDalton on February 01, 2022, 01:38:44 AM
Interestingly the first DNA you posted had some junk at the end the second one doesn't.  Otherwise they are remarkably similar.  I'm guessing the mutation rate is pretty low?
Yeah it was 1/16x at first but it was too slow so i increased it to 1/2x. Also the plant dna is only 22 long so it has a super low mutation rate compared to the actual bots which have dna of 150-200 length. Remember the first strain died, then the second strain came from one that was spawned in randomly and mutated.

Ok speaking about the bots, this is the best performing bot with 22 descendants. I noticed when zooming out that a lot of the bots seem to be drifting upwards, probably because of this part: "*.sun .up store"
Code: [Select]
11833 *-860 194 314 *.fixed 302
 start
 800 angle dropbool
 *.sun .up store
 534 *.refaimsx .readtie store
 store
 25450 *.nrg 28396 >=
 .repro store
 .tout10 store
 *.maxvel *.trefaimdx 453 *582 cos *.numties drop *.in5 store
 >
 *.shell *.mkslime *.refypos 14337 *.ypos *.waste 1 *.refmulti *.mass *.trefvelscalar store
 340 31707 store
 *240 store
 410 *.poisoned
''''''''''''''''''''''''  Gene:  1 Ends at position  54  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  55  '''''''''''''''''''''''
 cond
 *.tin5 522 *.poisoned *224 *.tin7 30817 store
 *.tin1 *.chlr store
 469 *.totalbots 822 419 *.refnrg store
 store
 .sharewaste store
 >
 *.refypos .eye9width store
 18510 19696 .memloc store
 start
 -6 7 *.chlr inc
 store
 16402 sub store
 *.shdx 28689 over *641 *.body *.eye1width 25811 *.memval *.refdn 526 *.trefsx ~ ceilstore
 divstore
 -5 2 *.veldn .tieang2 store
 ceilstore
 511 *.tin7 add !=
 -143 104 dupbool
 * *.in5 .tielen2 store
 ~ xor
 19485
''''''''''''''''''''''''  Gene:  2 Ends at position  125  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  126  '''''''''''''''''''''''
 start
 .aimleft store
''''''''''''''''''''''''  Gene:  3 Ends at position  128  '''''''''''''''''''''''

These are the dark plants near the top/bottom edges of the screen. They have survived for 951 generations (wow), I guess being at the edge helps a lot because it reduces the bots' feeding efficiency allowing the plants to survive.

Code: [Select]

 cond
 *.chlr 16281 <
 start
 .mkchlr addstore
 160 .mkchlr addstore
 add .tout4 store
 store
 28335 *.tin5 ceil 14674
''''''''''''''''''''''''  Gene:  1 Ends at position  18  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  19  '''''''''''''''''''''''
 start
 *.nrg 8199 >

''''''''''''''''''''''''  Gene:  2 Ends at position  22  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  23  '''''''''''''''''''''''
 start
 50 .repro store
 *.refvelup 15728''''''''''''''''''''''''  Gene:  3 Ends at position  28  '''''''''''''''''''''''


And here is a picture of the map, some bots feeding, and the cool dank vine color of the 951 generation survivor plants
Title: Re: coexistence
Post by: hdggDalton on February 10, 2022, 12:36:19 AM
aw man bad news all of the lingering plants died, i guess the bots got way better at eating them until there were no more left :(

but i saw some bots chasing each other coherently which is amazing
Title: Re: coexistence
Post by: hdggDalton on February 13, 2022, 01:27:59 PM
ah crap my last simulation got screwed up... somehow the bots evolved to do absolutely nothing until they died if they're near the top of the map, like absolutely nothing, they were just chilling surrounded by plants on all sides, and they all collected up there... so i started a new one, this time with gravity :o despite running into each other these bots surprisingly don't attack each other, i guess they're just using each other to build speed so they can find food
Title: Re: coexistence
Post by: hdggDalton on February 26, 2022, 01:16:44 AM
aha! you thought i was gone, but nah, i got some more pictures for you. it's just been boring because these guys wouldn't mutate at all even tho it's been 17 million cycles, so they're just boring point and shooters. amazing they manage to retain the ability to eat accurately though, i guess the gravity makes it a huge advantage cause otherwise you lose your food D:
Title: Re: coexistence
Post by: Numsgil on February 26, 2022, 06:51:31 PM
long term stability is interesting in its own right, but as long as there's some mutations I imagine something will change sooner or later.
Title: Re: coexistence
Post by: hdggDalton on March 01, 2022, 11:05:40 PM
long term stability is interesting in its own right, but as long as there's some mutations I imagine something will change sooner or later.

true i nevver thought of it that way, it is hard to get bots to evolve interesting adaptations since, the way it looks to me, if the bots are already doing well in their environment, they will just stagnate or add junk code because if they're doing well enough, i tried to come up with an explanation i call "beneficial mutation usefulness" to explain it

the possibility of a beneficial mutation = a
the positive effect of a potential beneficial mutation on a creatures ability to survive and reproduce = b
the creature's current ability to survive and reproduce = c
ideally, c+(a*b) should be quite higher than c in order for beneficial mutations to occur sufficiently often and sufficiently increase fitness so that natural selection favors them and they become more widespread in the population.

a is generally very low as neutral mutations that do nothing and harmful mutations like mutations that remove a creature's ability to reproduce or cause it to move uncontrollably are far more likely, to increase beneficial mutation usefulness, we can increase mutation rate which is a bit dodgy since it increases neutral and harmful mutations which may drown out the beneficial mutations (genetic drift)

b is random, a lot of the time it's extremely low like a small numerical change like going from needing 20000 energy to reproduce to 20348, but very rarely b becomes very high due to introducing completely new behavior like adding the ability to produce shell that wasn't there before, but i think on average b is very low. b is not manipulable because the nature of mutations make them completely random and out of control

c is determined by the environment, which includes environmental conditions like gravity and friction, amount of food (algae), potential prey, predators, even members of the creature's own species can fall in either category if they're cannibalistic (which happens sometimes). to increase beneficial mutation usefulness, we can decrease the survivability of the current environment, some ways to decrease c might be decrease amount of food, decrease light energy, increase energy cost for living and doing stuff, introduce predators, etc.

if c is relatively high, and they're prospering and thriving, the difference between c+(a*b) and c, which is a*b, is miniscule compared to c and the beneficial mutations are lost to randomness and genetic drift
but if c is too low everyone dies before beneficial mutations can even be introduced

so i feel there is this very small goldilocks zone where beneficial mutations are needed enough that they can take over, but the environment is not so dangerous that everyone dies, i think it's just really interesting how it works when YOU'RE the one trying to manipulate the environment so that they evolve cool stuff for our own amusement :D do you have any tips how to reach this goldilocks zone? my sim almost died once because i gave them too little food D:

edit: it has recovered since though, here is the current best bot with 25 descendants:
Code: [Select]

 cond
 *.eye5 *.trefvelyourdn >
 *.tin3 .eye4width store
 start
 *.refveldx .dx store
 822 .up addstore
 ceil 7805 mult *348
''''''''''''''''''''''''  Gene:  1 Ends at position  18  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  19  '''''''''''''''''''''''
 cond
 inc
 *.eye5 281 >=
 *.refeye *.maxvel inc
 start
 -6 .shoot store
 *317 *.trefnrg 822 .up substore
 .memloc store

''''''''''''''''''''''''  Gene:  2 Ends at position  37  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  38  '''''''''''''''''''''''
 start
 %=
 <
 rndstore
 24835 17302 sqr .aimright floorstore
 *.refaim .mkchlr store
 *.trefshoot *.venom *131 *.memval sqr 542 300 *.nrg 24591 >
 *.in5 addstore
 addstore
''''''''''''''''''''''''  Gene:  3 Ends at position  62  '''''''''''''''''''''''
Title: Re: coexistence
Post by: Numsgil on March 03, 2022, 12:10:58 AM
This gets in to areas of actual biology research so smart people have had different opinions on the matter over the centuries, but personally I ascribe to a kind of haystack model.  That's often discussed in terms of the problem of altruism but I think it works for the evolution of complex behavior generally.

The idea goes that an isolated population tends to become genetically homogenous over time.  Sometimes beneficial mutations develop, sometimes harmful ones, sometimes lots of neutral mutations, but generally things have a tendency to spread out and either become universal or extinct.  It's possible for such a population to even drive itself to extinction by accidentally getting into evolutionary dead ends.

Now imagine having dozens or hundreds of such populations, all from a common ancestor, and having them isolated long enough that they're all a bit different.  Now suddenly mix them together into a single population.  Each line has to fight for survival and a line with a beneficial mutation has an edge.  Wait for the larger population to become homegenous again, then split the population back up into the original enclaves.  Now repeat this on different time and size scales with different groups in a chaotic soup of isolating and recombining populations.  You end up with a red queen's race of competing genetic lines fighting against each other.  The lines that do this well survive, the ones that don't, don't.  In sexual and horizontal gene transfer organisms the different lines can even create hybrids during the mixing process so you can have mutations that are neutral or even slighytly negative independently find each other and produce a beneficial result.

That's the theory.  If you wanted to mimic something like this in Darwinbots you would run a simulation for a while until there are some number of mutations in the population and things seem to have stagnated.  Then find an examplar bot and create a new simulation with clones of that bot and the original line.  Run that for a while, find an examplar bot, then create a new simulation with the original, the 1st round examplar and this new examplar.  Repeat ad nauseum, choosing which examplars go together in a sim arbitrarily/randomly.  You end up with strong selective pressure without the possibility of a mutation meltdown.  This is an awful lot like what DeepMind did for their Starcraft2 research: they built a ladder and pitted new versions of the AI against old version of the AI periodically to protect against "catastrophic forgetting".  The ones that did well had to do well against not just their peers but previous iterations of themselves.  The difference in biology is that there's no external fitness function outside of keeping your line represented in the future somehow.

It's worth noting as a human you can put your thumb on the scale and select for things you find interesting, but you don't have to and it'd be perfectly fine to choose your examplars randomly.

Also worth noting, in Darwinbots it's hard for DNA to get longer.  There's some mutations set up for it but practically speaking it doesn't happen very often.  You can help things along a bit if you add a bunch of 0s to your bots' DNA to give it a bit more room to develop mutations in.
Title: Re: coexistence
Post by: hdggDalton on March 11, 2022, 12:45:13 AM
The idea goes that an isolated population tends to become genetically homogenous over time.  Sometimes beneficial mutations develop, sometimes harmful ones, sometimes lots of neutral mutations, but generally things have a tendency to spread out and either become universal or extinct.  It's possible for such a population to even drive itself to extinction by accidentally getting into evolutionary dead ends.
yes that's it, over a long enough period of time there's very little space in between death and domination

i wonder if you can just put down a ton of shapes to block off the map into several different areas, with small gaps so bots can pass through sometimes, and that will do the trick of regularly isolating and recombining populations as you say
Title: Re: coexistence
Post by: Numsgil on March 11, 2022, 02:42:10 AM
Yeah that might work.  Only one way to find out :)
Title: Re: coexistence
Post by: hdggDalton on March 12, 2022, 05:20:36 PM
i started a new simulation yesterday to test out if shapes could increase diversity, i left drifting shapes on but at the slowest setting because i like things to be more dynamic, but all the shapes just seem to get stuck outside of the map? anyways it seems to work well enough though i haven't seen any dramatic differences, probably need to make the map bigger

Code: [Select]
Female DNA len  61 and male DNA len  61 had offspring DNA len  61 during cycle  520005

:o what is this? it showed up once in the mutation details, but hasn't showed up again ever since. did the bots have an extraordinary accident that allowed them to sexually reproduce, but just that once? because right now no one is sexually reproducing

oh man they figured out how to make chloroplasts... dont worry though i think i figured out how to keep them under control, raise the cost of chloroplasts from 0.2 to 0.5 though now they're almost extinct XD

ok so i have 1 picture of the whole simulation, 2 pictures of some bots tying though they always seem to die, one of them is just tying to every passing bot it can and the other seems to be stuck spinning with another one, and the last picture is an almost cancer bot that has really low energy need for reproduction (1500) feeding and encircling some plants... unfortunately they all died as soon as the food ran out. in the general population, some of them are moving in a corkscrew like pattern, while most are thrashing about randomly
Title: Re: coexistence
Post by: hdggDalton on March 13, 2022, 02:07:36 PM
oh my god... the sim got overrun by bots evolving into plants, despite the increased chloroplast cost

i think i'll just rewind from a previous save
Title: Re: coexistence
Post by: hdggDalton on March 15, 2022, 11:33:06 PM
i got some interesting news, the sim is now doing well, they're really good at hunting even small moving corpses. i think it's a side effect of the very high chloroplast cost, which means a lot of plants die trying to achieve 32000 chloroplasts, leaving a ton of corpses behind, and i suspect corpses are a big food source for them, which is why they became better at eating them. oh yeah also the waste threshold is really low, it's at 1000 so no fat bois who can't reproduce keep getting fatter and fatter, but also means when one plant dies it's likely the waste will spread to other plants, making them die, and then the waste keeps spreading to other plants as well, killing a lot of plants and leaving them as corpses. the bots seem to be very distrustful and try to stay away from each other. i'm not sure why this happened, maybe the bots figured that if it saw a fellow bot, there's no food there, so they go the other way and spread out more. maybe it's a reaction to cannibalism, like there was this one bot that seemed to have its attractions reversed - generally the bots are attracted to food (plants) and corpses and repelled by other bots, but this bot was attracted to other bots and repelled by plants and corpses, so it acted a bit like a predator! i gave it a bunch of energy so it could reproduce but it instantly ate its child. even though the bot managed to chase down most of the bots it came across and eat them, the energy balance of this bot still trended down because of its ridiculous refusal to eat plants and corpses. but suddenly i realized this bot could be useful for prodding the other bots to develop cool defense mechanisms through natural selection, without the possibility of it taking over (because it can't eat plants and corpses, and really likes eating its own children) so i saved it and named it cannibot! and now i can pop down a whole army of terminators to terrorize the bots whenever i want XD
Title: Re: coexistence
Post by: hdggDalton on March 17, 2022, 12:58:30 AM
what the hell no way the bots are ganging up on my terminator cannibots, like if i put one down next to a bunch of bots, they won't run away to get picked off one by one, they'll freaking gangbang the cannibot to death, but it's so weird because they seem to be able to tell who's native to the simulation, they don't attack fellow native bots but rather do the thing where they try to stay away from each other, but the moment i put down a cannibot everyone tries to kill it. have the bots become too smart??? the context of the picture is, i put a cannibot down inside a triangle of 3 bots, it went after the smallest bot which was quickly killed, but then these 2 remaining completely unrelated bots (well they probably have a common ancestor but their colors were pretty different) gang up on the cannibot and kill it, and then they go their separate ways!

anyways here is the code of the current best bot, i caught him feasting on some plants and popping out some babies, so i already know he won't be a horribly mutated mess, and at one point he had 50 descendants out of a population of 200, making up an amazing 1/4 of the entire population!!! so i know it's gonna be good
Code: [Select]
*.eye5 .out10 store
 negstore
 .out7 store
 pow 13475 2 xor
 *-610
 start
 25696 5 .up store
 *.tielen1 *.refage swapbool
 13771 * stop
''''''''''''''''''''''''  Gene:  1 Ends at position  22  '''''''''''''''''''''''
 ~=
 *.tiepres
''''''''''''''''''''''''  Gene:  2 Begins at position  25  '''''''''''''''''''''''
 cond
 *.eye5 *.tiepres >
 *.refeye *.myeye !=
 start
 -6 .shoot store
 sin ceilstore
 20551 *.refveldx .dx store
 !=
 .out7 store
 pow *.readtie floor ceil !%=
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  50  '''''''''''''''''''''''
 573 dist multstore

''''''''''''''''''''''''  Gene:  3 Begins at position  54  '''''''''''''''''''''''
 start
 .eye9dir store
 475 sgn *.availability *.dnalen *.refdx substore
 314 rnd *.thisgene 205 .tielen3 store
 sub .aimright store
 102 sin
''''''''''''''''''''''''  Gene:  3 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  74  '''''''''''''''''''''''
 else
 sqr
''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 start
 div *.refvelup !%=
 swapbool
 *274 21 *.nrg 23486 >
 *.tieang *.vel .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  89  '''''''''''''''''''''''
on closer inspection i was really surprised that it kept this line: "*.refeye *.myeye !=" which is the line that i think stops them from devolving into endless cannibalism. but how does it tell apart native bots, some of which have deviated really far by the way, from the cannibot? another point of interest is that it uses its velocity to determine how big of a baby it should make? very interesting method of variance given the range is 0-60 (max velocity is 60)
Title: Re: coexistence
Post by: Numsgil on March 17, 2022, 01:48:09 AM
yeah those are some interesting mutations.  Keep at it, see if you can get it to do more interesting things.
Title: Re: coexistence
Post by: hdggDalton on March 18, 2022, 09:15:22 PM
good news they learned how to make shell!!! :D here is dna:

Code: [Select]
.out4 store
 ~ .aimleft store
 803 501 *.eye5 * 215
 start
 *.in1 5 .up store
 521 and
 *.tin10
''''''''''''''''''''''''  Gene:  1 Ends at position  18  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  19  '''''''''''''''''''''''
 cond
 floor *.eye5 *.trefvelyourdn >
 *.refeye *.myeye !=
 *.myshoot -6 .shoot store
 .maxvel ceilstore
 *660 *.refveldx .dx store
 !=
 *.myties *.refmulti ~ .aimleft store
 *.reftie start
 dec
 - *.dnalen *.refdx substore
 314 rnd *.thisgene *.trefvelmysx .mkshell store
 sub .aimright substore
 *102
''''''''''''''''''''''''  Gene:  2 Ends at position  59  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  60  '''''''''''''''''''''''
 cond
 xor
 *.refveldx *.thisgene *.trefvelmysx 911 store
 sub .aimright ceilstore
 -173 clear else
 over store
 *.nrg 23486 >
 inc
 12835 .repro store
''''''''''''''''''''''''  Gene:  3 Ends at position  81  '''''''''''''''''''''''

i think it's only making shell when it's tied to something, like when reproducing or when just having been birthed, that's quite ingenious because reproducing happens regularly (at least for those who are successful) it makes a decent amount of shell without making so much that it weighs the bot down so much that they can't move
Title: Re: coexistence
Post by: hdggDalton on March 20, 2022, 06:55:07 PM
woah the simulation is 10 million cycles old now and weird things are happening, first it seems there was a big split in evolution that went 2 ways, there's the browns and the blues, also there were some bots that were tying to everything, unfortunately it seems they died soon after i observed them. also they lost the ability to make shell which is tragic but oh well. cannibalism seems to be more widespread too, though i think the majority of bots are still peaceful towards each other. i didn't see any compelling evidence that the blues and the browns were collectively hostile towards each other, i think cannibalism is more of a personal problem so if a bot is cannibalistic it will attack basically everyone no matter what

here's the best bot dna:
Code: [Select]
7019 *.eye7 *.eye1 *.eye6 8802 >
 and
 *.trefdn dec
 453 .aimright store
 6213 .ploc store
 *.eye9 *.tin2 869 multstore
 overbool

 cond
 floor false
 negstore
 *399 *.eye2 *.reffixed >=
 *.refvelsx 16335 *.eye1 addstore
 *.eye6 *.eye1 *.shell 11 *.reftie 8802 *.eye5 mult >=
 *.trefdn stop
''''''''''''''''''''''''  Gene:  1 Ends at position  43  '''''''''''''''''''''''
 *.in10 *.reftie *.slime 12946 *.trefshoot *.eye8 30838
''''''''''''''''''''''''  Gene:  2 Begins at position  51  '''''''''''''''''''''''
 start
 532 *.tin1 angle 542 *.refaim *.refsx mult >=
 *.trefshoot multstore
 5 .up store

''''''''''''''''''''''''  Gene:  2 Ends at position  64  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  65  '''''''''''''''''''''''
 else
 *405
''''''''''''''''''''''''  Gene:  3 Ends at position  66  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  67  '''''''''''''''''''''''
 cond
 *167 *.eye5 *.trefaimdx *.mydx *.refeye >
 !~=
 834 *.shell start
 -6 .shoot addstore
 .eye5width store
 store
 *.refveldx .dx addstore
 *.eye1 *.eye6 ^ *.eye8 *.trefshoot -208 *.trefvelmydx *.eye1 *.eye6 over false
 808 14 *.dx
''''''''''''''''''''''''  Gene:  4 Ends at position  100  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  101  '''''''''''''''''''''''
 else

''''''''''''''''''''''''  Gene:  5 Ends at position  101  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  102  '''''''''''''''''''''''
 start
 dupbool
 25507 - 28839 rndstore
 dec
 922 *.refdx substore
 overbool
 *.eye3 200 or
 388 rnd *.thisgene *893 10453 5 sub floorstore
 substore
 809 *.kills or
 >=
 store
 521 503 21701 *.eye1 *500 rnd 7437 false
 store
 *.trefaimdx absstore
 *472 508 >> divstore
 *.eye8 *499 *.readtie -6 16525 *.tieang4 *.venom *.trefvelscalar *.tin4 *.refeye *.eye3 logx 10674 addstore
 *762 *628 over 16335 *.eye1 addstore
 *.eye6 *.eye1 *.shell 11 *.trefvelyourdn 8525 .fdbody store
 *.eye6 *.eye6 30838 *.refdx *.mydn *.refnrg *379 203 true
 388 466 19401 *778 20 *.eye4 *.tieang2 *.eye7 *.eye6 *.eye6 30838 *.eye8 *.ypos -208 *.mysx 8701 *.tielen angle *.dx 11 ^ *.eye8 *.refbody *.eye6 ^ *.eyef false
 *.refshell *.hitup store
 *.dnalen 26572 divstore
 881 -91 >
 4 *.refaimdx *.nrg 19483 >
 ^ *.eye5 *.tin2 *.trefvelscalar *.eye1 over 7437 .repro store
''''''''''''''''''''''''  Gene:  6 Ends at position  231  '''''''''''''''''''''''
yeah its a beautiful mess isnt it lol
Title: Re: coexistence
Post by: hdggDalton on March 22, 2022, 11:18:10 PM
hmmmm, ok so after like 3 simulations ruined by freaking plants taking over the simulation, i got suspicious that it always kept happening so i looked for any plant bots that might have existed. when i found the little bastard hiding by spazzing out in between some shapes that were close to his color i killed that mfer as soon as i found em, good thing for save backups. now the simulation is running smoothly after i turned down light energy from 50 to 20, and no more plant takeovers have happened.

now to the present, all the bots are very homogenous color, cyan, it seems between the blues and the browns the blues won out in the end! in the blue-brown era the bots were paranoid and tried to stay away from each other as much as possible, but now it seems the bots don't really care as much anymore, and just ignore each other i did see some isolated cannibals taking advantage of this but i think their new behavior of yeeting themselves once in a while in a new direction more often than not throws off the cannibals, and helps them find food too!

here is a sample of 3 of the best performing bots, it constantly changes over time so it's also a nice way of getting a sample of multiple good bots. a slight note, as i was writing this it seems a small green strain has popped up, in fact the 3rd DNA sample is from a green bot, which made it to be the best bot! so we will see if the greens take over or not

Code: [Select]
  14417 floorstore
 store

 start
 substore
 overbool
 ++ *.trefup inc
 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  12  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  13  '''''''''''''''''''''''
 else
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 .eye4width store
 multstore
 *841 floorstore
 .strbody store
 12012 absstore
 *.trefaimdx *.eye5 *158 *.mydx *.refeye >
 !~=
 .setboy substore
 start
 -6 .shoot ceilstore
 *.shang 484 *.up *.refveldx .dx addstore
 absstore
 16350 *601 *515 5532 false
 962 *.trefaimsx
''''''''''''''''''''''''  Gene:  3 Ends at position  51  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  52  '''''''''''''''''''''''
 else
 sub *.ypos 525 and
 add 476 2 18837 *.refypos *.refdx root *916 dupbool
 sgn
''''''''''''''''''''''''  Gene:  4 Ends at position  66  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  67  '''''''''''''''''''''''
 start
 *.mypoison 808 angle .out7 store
 *.trefup *.eye1 474 *.tin8 divstore
 534 *.shdx rnd swapbool
 sqrstore
 *.thisgene floorstore
 23 *.veldn multstore
 6443 *.hitdx 813 474 <
 *.vel inc
 *.trefnrg *.tin10 *.hitsx store
 store
 438 794 store
 *.in6 1 *.ypos 1821 false
 floorstore
 substore
 ++ 371 store
 10921
''''''''''''''''''''''''  Gene:  5 Ends at position  113  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  114  '''''''''''''''''''''''
 start
 958 *.numties *.memval 413 swapbool
 416 8303 *.memloc floorstore
 *.timer *.nrg *.refdx ^ 18107 >
 7437 *.refdn ^ .repro store

''''''''''''''''''''''''  Gene:  6 Ends at position  134  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  135  '''''''''''''''''''''''
 start
 *.trefvelyourdn *.refpoison .mkvenom store
 store
 338 *.eye7 store
 .out8 ceilstore
 *.myvenom 6 518 .eye1dir store
 store
 substore
 5476 *.eye6 *496 547''''''''''''''''''''''''  Gene:  7 Ends at position  156  '''''''''''''''''''''''

Code: [Select]
*14417 floorstore
 store

 start
 substore
 overbool
 *.tin1 *.trefup inc
 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  12  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  13  '''''''''''''''''''''''
 else
 *.eye5
''''''''''''''''''''''''  Gene:  2 Ends at position  14  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  15  '''''''''''''''''''''''
 cond
 floorstore
 *841 multstore
 floorstore
 23 12012 absstore
 *.trefaimdx *.eye5 *158 *.mydx *.refeye >
 !~=
 .setboy store
 start
 -6 .shoot ceilstore
 *.shang .tielen1 store
 *.refveldx .dx addstore
 absstore
 16350 *607 *515 5532 false
 962 *.trefaimsx
''''''''''''''''''''''''  Gene:  3 Ends at position  49  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  50  '''''''''''''''''''''''
 else
 338 *.ypos 525 *.myaimdx add 1 *.ypos 1821 false
 floorstore
 substore
 ++ 371 .eye8width store
 338 476 2 9420 negstore
 *.refdx root *916 dupbool
 sgn
''''''''''''''''''''''''  Gene:  4 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  76  '''''''''''''''''''''''
 start
 *.mypoison dup *-161 *274 481 *.trefup *.eye1 474 *.tin8 divstore
 534 *.shdx rnd swapbool
 addstore
 *.thisgene floorstore
 23 *.veldn multstore
 .tieang3 store
 813 474 <
 *.vel inc
 *.trefnrg *.tin10 *.hitsx store
 store
 *.trefxpos 794 store
 *.in6 958 *.numties *.memval *.tout9 159 360 .strbody store
 .tout4 rndstore
 416 *.treffixed *.memval store
 *.timer *.shell *.refdx *.nrg 18107 >
 7437 *.myshoot ^ .repro store

''''''''''''''''''''''''  Gene:  5 Ends at position  137  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  138  '''''''''''''''''''''''
 start
 *.trefvelyourdn 5 .mkvenom store
 store
 338 *.eye7 store
 .out8 ceilstore
 *.myvenom 6 518 .eye1dir store
 store
 substore
 *496 *.eye6 5476 547''''''''''''''''''''''''  Gene:  6 Ends at position  159  '''''''''''''''''''''''


Code: [Select]
14417 .mkpoison store

 start
 substore
 overbool
 ++ .tout3 store
 6203 28460 absstore
 root 216 *.trefup inc
 5 .up store
 18340 *.eye5
''''''''''''''''''''''''  Gene:  1 Ends at position  21  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  22  '''''''''''''''''''''''
 cond
 9 *841 multstore
 159 .readtie store
 .mrepro store
 absstore
 *158 *.eye5 *.trefaimdx *.mydx *.refeye >
 !~=
 .setboy store
 start
 -6 .shoot ceilstore
 *25196 567 angle *.refveldx .dx addstore
 absstore
 16350 *607 *515 21708 false
 962 *.trefaimsx
''''''''''''''''''''''''  Gene:  2 Ends at position  58  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  59  '''''''''''''''''''''''
 else
 *.tmemval 29701 .out8 ceilstore
 *.refshell *590 >=
 & *-467 swapbool
 *.dx false
 962 *.trefaimsx
''''''''''''''''''''''''  Gene:  3 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  74  '''''''''''''''''''''''
 else
 *.tmemval *.ypos 525 and
 add *.in5 431 *240 6415 !=
 addstore

''''''''''''''''''''''''  Gene:  4 Ends at position  85  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  86  '''''''''''''''''''''''
 start
 *.myshoot negstore
 *.vtimer .out9 store
 *274 substore
 534 *.shdx rnd swapbool
 addstore
 *.thisgene floorstore
 23 *.veldn multstore
 *.hitdn *.hitdx 813 *.refvelsx <
 *.vel inc
 *.trefnrg *305 *.tin9 469 *.in8 *.trefxpos .out1 store
 *.in6 store
 *.ypos 1821 false
 .tielen1 store
 ++ 514 store
 10921 *.memval *.refdx *.shell store
 832 *.memval *.nrg 18107 >
 7437 *.refdn floor .repro store
 *.in1 .out8 ceilstore
 *.myvenom addstore
 *7196 store
 *840 *.refveldn *.eye6 *496 *.tin6 663 *158 *.refmulti xor
''''''''''''''''''''''''  Gene:  5 Ends at position  159  '''''''''''''''''''''''
Title: Re: coexistence
Post by: hdggDalton on March 26, 2022, 09:28:51 PM
another update, it seems to be going well though the stable population is trending down, it used to be in the 200s and now it's in the 150s. The bots look a lot fatter, like they're hoarding all the energy for themselves. Cancer explosions also seem much more common now, like they happen every minute, has the reproduction dna become more fragile? I'm pretty sure cannibalism has become mainstream, like 10% of bots are cannibals is my estimate. I no longer have to try really hard to look for them, i just zoom in on a bunch of bots and more often than not there's a cannibal there eating someone's butt. They never really take over though as they always, always eat their own children and waste sooooooo much energy chasing bots around while their shots are hitting nothing, and i have energy cost of shots turned up from 2 to 5, too. :wacko: At least they can sustain their population by eating plants, where the offspring has the chance to escape while their parents are busy eating. And also i assume there are constant additions to the ranks of cannibals from mutated bots messing up the part that tells them not to eat each other

3 best bots:

Code: [Select]
.eye8dir store
 addstore
 *344 floorstore
 *.eye7
 start
 *.refshoot 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  11  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  12  '''''''''''''''''''''''
 else
 531 *.tieang4 *850
''''''''''''''''''''''''  Gene:  2 Ends at position  15  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  16  '''''''''''''''''''''''
 cond
 13449 *.eye4 negstore
 *162 *.trefvelyourup *.in1 *.eye5 *.availability *.mydx *.refeye >
 !~=
 *.in2 *.in9 start
 -6 .shoot ceilstore
 5 .tout1 store
 *.refveldx .dx addstore
 *344 floorstore
 17930 2464 23925 substore
 sqrstore
 1807 false
 stop
''''''''''''''''''''''''  Gene:  3 Ends at position  50  '''''''''''''''''''''''
 *.trefvelyoursx 29301 store
 *.tmemval *.pleas rndstore
 527 *.poison dist floor stop
 drop
''''''''''''''''''''''''  Gene:  4 Begins at position  63  '''''''''''''''''''''''
 start
 19824 12314 *29566
''''''''''''''''''''''''  Gene:  4 Ends at position  66  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  67  '''''''''''''''''''''''
 start
 2523 *.refsx *.tin8 *.reffixed *.ypos *.veldn multstore
 *771 *.nrg 586 *.shdx rnd swapbool
 addstore
 *.thisgene floorstore
 30007 >
 7437 *.trefxpos ^ .repro store
 259 store
 .backshot store
 and
 *.eye1 store
 4 6 518 418 *.eye1 *.in1''''''''''''''''''''''''  Gene:  5 Ends at position  103  '''''''''''''''''''''''

Code: [Select]
.sharewaste multstore
 *.eye7
 start
 *.refsx 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  8  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  9  '''''''''''''''''''''''
 else
 531 *.tieang4 *.mass
''''''''''''''''''''''''  Gene:  2 Ends at position  12  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  13  '''''''''''''''''''''''
 cond
 13933 *.eye4 !=
 *162 *.trefvelyourup *.in1 *.eye5 *.availability *.eye7 *.refeye >
 !~=
 .strbody store
 start
 -6 .shoot ceilstore
 inc
 .tielen1 store
 *.refveldx .dx addstore
 *.thisgene floorstore
 .tielen3 store
 28412 substore
 sqrstore
 6153 false
 *.kills *.trefvelyoursx 29301 store
 *.tmemval *.pleas rndstore
 .aimright store
 dist floor stop
''''''''''''''''''''''''  Gene:  3 Ends at position  58  '''''''''''''''''''''''
 drop
''''''''''''''''''''''''  Gene:  4 Begins at position  60  '''''''''''''''''''''''
 start
 19824 12314 *29566
''''''''''''''''''''''''  Gene:  4 Ends at position  63  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  64  '''''''''''''''''''''''
 start
 2523 585 *.tin8 *.reffixed swapbool
 12699 3423 floorstore
 *.ypos *.veldn multstore
 *771 *.nrg 586 *.shdx rnd swapbool
 addstore
 *.thisgene floorstore
 31948 >
 7437 *.trefxpos ^ .repro store
 *.eye3 store
 .backshot store
 -- 6 and
 30340 6 518 418 *.eye1 *.myshoot''''''''''''''''''''''''  Gene:  5 Ends at position  104  '''''''''''''''''''''''


Code: [Select]
.slime multstore
 *.eye7
 start
 *.refsx 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  8  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  9  '''''''''''''''''''''''
 else
 531 *.tieang4 *.mass
''''''''''''''''''''''''  Gene:  2 Ends at position  12  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  13  '''''''''''''''''''''''
 cond
 13933 *.eye4 !=
 *162 *.trefvelyourup *.in1 *.eye5 *.availability *.mydx *.refeye >
 !~=
 .strbody store
 start
 -6 .shoot ceilstore
 inc
 .tielen1 store
 *.refveldx .dx addstore
 *.thisgene floorstore
 .tielen3 store
 28412 substore
 sqrstore
 *.refvenom false
 *.kills *.trefvelyoursx 29301 store
 *.tmemval *.pleas rndstore
 527 drop
''''''''''''''''''''''''  Gene:  3 Ends at position  55  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  56  '''''''''''''''''''''''
 start
 19824 12314 *29566
''''''''''''''''''''''''  Gene:  4 Ends at position  59  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  60  '''''''''''''''''''''''
 start
 2523 585 *.tin8 *.reffixed swapbool
 *.mydn 3423 floorstore
 *.ypos *.veldn multstore
 *771 *.nrg 586 *.shdx rnd swapbool
 addstore
 *.thisgene floorstore
 31948 >
 7437 *.trefxpos ^ .repro store
 *.eye3 store
 .backshot store
 -- 6 or
 *.refpoison 6 518 418 *.eye1 *.myshoot''''''''''''''''''''''''  Gene:  5 Ends at position  100  '''''''''''''''''''''''

Title: Re: coexistence
Post by: hdggDalton on March 27, 2022, 12:48:33 PM
these guys are NOT having a good time... XD
Title: Re: coexistence
Post by: Numsgil on April 02, 2022, 11:52:15 PM
it seems to be going well though the stable population is trending down, it used to be in the 200s and now it's in the 150s.

I don't think this is necessarily a bad thing; the most efficient strain isn't necessarily the most competitive strain.
Title: Re: coexistence
Post by: hdggDalton on April 05, 2022, 09:45:45 PM

I don't think this is necessarily a bad thing; the most efficient strain isn't necessarily the most competitive strain.
initially I was a bit concerned that the trend would continue downwards, and that a lower population would mean higher chance of sudden mass extinction as well as lower diversity. However now it seems to have leveled out at 160-180, thanks to some very cool evolved behaviors; when two bots meet, they now shoot while running away backwards. I like this, it's the "live and let live" behavior, where the bot won't pursue you, but if you try, they'll make you pay for it. I had simulated about 10 million cycles while placing pixels on r/place to defend the German flag, and a lot could have happened up to now. I assume at some point there was a huge spike in cannibalism, and cannibal bots took over the population. Eventually one of them, instead of moving forwards when detecting another bot, mutated to move backwards instead, but kept shooting when doing so. Then the behavior took off, exponentially growing as when 2 bots with this behavior meet, they minimize energy losses by moving away from each other, whereas a real cannibal will make both of them lose tons of energy by commencing a chase. However, it's still better than 2 cannibals meeting each other, since they will basically engage in a fight to the death, and in the end the winner loses a lot of body points anyways. It's like the prisoner's dilemma, but the cooperation won out in the end. There is also another bot strain that was the majority a few posts ago, the pacifists that simply run away without shooting. I think they would win out in the end against the backshooters because they don't waste energy shooting whenever they see a bot. However, the pacifist behavior is completely non existent in the current simulation, so I predict that the cannibals killed them all before the backshooters emerged, then the backshooters took over. Running long simulations is so cool, it's like an evolutionary fish tank :D

Anyways, time for the 3 best bots of the post!!!
I had a really hard time finding a best bot other than this one, this one bot is a beast, he had 28 descendants out of a population of 162 so i think it's safe to say his bloodline is secure :)
Code: [Select]
-91 *.tin7 ~=
 negstore
 *.refeye .eye8dir store
 *.rdboy store
 store
 7525 *.memval mult mult root and
 store
 *.eye2 527 .mkpoison store
 226 *.reftie store
 627 546 *.tin4 *.treffixed store
 *.shell *.paralyzed or
 store
 836 .out10 store
 &
 start
 *.treffixed 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  42  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  43  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.myshoot *359 5 start
 -6 .shoot store
 816 *.paralyzed *.refdn 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 *.tin4 *.tieang store
 *911 >

''''''''''''''''''''''''  Gene:  2 Ends at position  71  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  72  '''''''''''''''''''''''
 start
 *.memval | -32 pyth
''''''''''''''''''''''''  Gene:  3 Ends at position  76  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  77  '''''''''''''''''''''''
 else
 *.maxvel *.refaimsx
''''''''''''''''''''''''  Gene:  4 Ends at position  79  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  80  '''''''''''''''''''''''
 start
 *.refpoison *.tielen2 1540 24709 *.veldn multstore
 divstore
 *.nrg 516 30200 31505 ceilstore
 *.thisgene substore
 30007 >
 13337 store
 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  100  '''''''''''''''''''''''

Code: [Select]
-91 *.tin7 ~=
 negstore
 *.refeye store
 7525 6217 mult *.tin5 root and
 .eye8dir store
 *.rdboy store
 store
 *.eye2 527 .mkpoison store
 226 *.ypos store
 627 546 *.tin4 *.treffixed store
 *.shell *.paralyzed or
 store
 836 .out10 store
 &
 start
 *.treffixed 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  42  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  43  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.tin3 *359 5 start
 -6 .shoot store
 816 .eye4dir store
 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 *.tin4 *.tieang store
 *911 >

''''''''''''''''''''''''  Gene:  2 Ends at position  71  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  72  '''''''''''''''''''''''
 start
 *.memval | -32 pyth
''''''''''''''''''''''''  Gene:  3 Ends at position  76  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  77  '''''''''''''''''''''''
 else
 *.maxvel *.refaimsx
''''''''''''''''''''''''  Gene:  4 Ends at position  79  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  80  '''''''''''''''''''''''
 start
 *.refpoison *.tielen2 1540 24709 *.veldn multstore
 divstore
 *.nrg 516 30200 31505 ceilstore
 *.thisgene substore
 30007 >
 13337 store
 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  100  '''''''''''''''''''''''

Code: [Select]
-91 *.tin7 ~=
 negstore
 *.refeye .eye8dir store
 *.rdboy store
 store
 7525 *.memval mult mult root and
 store
 *.eye2 527 .mkpoison store
 226 *.reftie store
 627 546 *.tin4 *.refkills store
 *.shell *.paralyzed or
 store
 836 .out10 store
 &
 start
 *.treffixed 5 .up store

''''''''''''''''''''''''  Gene:  1 Ends at position  42  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  43  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 *.myshoot *359 5 start
 -6 .shoot store
 816 *.paralyzed *.refdn 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 *.tin4 *.tieang store
 *911 >

''''''''''''''''''''''''  Gene:  2 Ends at position  71  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  72  '''''''''''''''''''''''
 start
 *.memval | -32 pyth
''''''''''''''''''''''''  Gene:  3 Ends at position  76  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  77  '''''''''''''''''''''''
 else
 *.maxvel *.refaimsx
''''''''''''''''''''''''  Gene:  4 Ends at position  79  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  80  '''''''''''''''''''''''
 start
 *.refpoison *.tielen2 1540 24709 *239 multstore
 divstore
 *.nrg 516 30200 31505 ceilstore
 *.thisgene substore
 30007 >
 13337 store
 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  100  '''''''''''''''''''''''

These other 2 bots were nowhere near as cool, with only 9 and 10 descendants each. The first bot literally has way more descendants than both of them COMBINED!!! :Headbang:
Title: Re: coexistence
Post by: hdggDalton on April 07, 2022, 01:46:52 AM
oh my god, holy sweet jeeeesus... what happened here??? why are there blue dots everywhere??? why do they all have blue rings around them??? the worst part is, it's not even the bots, it's the freaking plant species that i put in for food, they somehow mutated and killed everyone... i saved this simulation just for funsies but it runs at half of a cycle every second so i don't think i'mma actually keep running it. oh my god their dna is so long wtf

Code: [Select]

 start
 16427 *.refveldx 16427 *.refveldx 4 overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 832 -32 pyth dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  1 Ends at position  46  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  47  '''''''''''''''''''''''
 start
 16427 *-526 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow 516 >
 *.tieang 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  2 Ends at position  87  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  88  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos rnd .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 - 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *381 *.rdboy *.myties 832 -29 sqr
''''''''''''''''''''''''  Gene:  3 Ends at position  129  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  130  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 17531 31505 dec
 *.thisgene .mkvirus store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 >

''''''''''''''''''''''''  Gene:  4 Ends at position  166  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  167  '''''''''''''''''''''''
 start
 15425 4 *.refveldx 16427 addstore
 >> .vshoot floorstore
 *.refeye pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  5 Ends at position  198  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  6 Begins at position  199  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos ceil .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 >> *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  6 Ends at position  239  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  7 Begins at position  240  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos -124 addstore
 >> .vshoot store
 *.refeye *.tieang .out2 dec
 *.thisgene .mkvirus store
 .repro store
 *911 9524 *.tin7 >

''''''''''''''''''''''''  Gene:  7 Ends at position  266  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  8 Begins at position  267  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 9524 *.tin7 *.tin3 *-499 *.myties 832 -32 pyth sqr
''''''''''''''''''''''''  Gene:  8 Ends at position  303  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  9 Begins at position  304  '''''''''''''''''''''''
 start
 16427 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *381 *.rdboy *.myties 832 -29 sqr
''''''''''''''''''''''''  Gene:  9 Ends at position  325  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  10 Begins at position  326  '''''''''''''''''''''''
 start
 divstore
 overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> 338 11 dup store
 *.refeye store

''''''''''''''''''''''''  Gene:  10 Ends at position  341  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  11 Begins at position  342  '''''''''''''''''''''''
 start
 *273 & store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  11 Ends at position  357  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  12 Begins at position  358  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup clearbool
 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 *.in5 store
 .repro store
 *911 store
 *572 *.nrg 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  12 Ends at position  398  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  13 Begins at position  399  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx 4 .shareshell store
 .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 *.poison 832 -32 >

''''''''''''''''''''''''  Gene:  13 Ends at position  426  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  14 Begins at position  427  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *918 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  14 Ends at position  461  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  15 Begins at position  462  '''''''''''''''''''''''
 start
 <
 *.availability 516 30200 31505 .mkchlr store
 stop
''''''''''''''''''''''''  Gene:  15 Ends at position  470  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  16 Begins at position  471  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup clearbool
 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 store
 *604 *.setboy 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  16 Ends at position  511  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  17 Begins at position  512  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx store
 *911 store
 .dx addstore
 >> 338 9524 *.myties *.rdboy store
 *.refeye *.in7 dup 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 store
 *572 *.nrg 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  17 Ends at position  557  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  18 Begins at position  558  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos 4 *.thisgene .mkvirus store
 addstore
 >> .vshoot store
 *.refeye store
 dup *.tieang pow 11 >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  18 Ends at position  600  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  19 Begins at position  601  '''''''''''''''''''''''
 start
 15425 16427 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 store
 9524 *.tin7 pyth store
 15425 16427 *.myvenom .dx addstore
 ~ 333 store
 *.refeye *.thisgene ceilstore
 store
 floorstore
 30007 >
 dup 11 pow *.tieang 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 stop
''''''''''''''''''''''''  Gene:  19 Ends at position  658  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  20 Begins at position  659  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx 4 .out2 store
 .vshoot store
 *.refeye store
 dup clearbool
 11 30200 516 >
 *.tieang pow 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  20 Ends at position  696  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  21 Begins at position  697  '''''''''''''''''''''''
 else
 *.tout2 6000 >
 inc
 -637 16427 *.refveldx overbool
 *.refkills 16427 *.ypos .dx addstore
 >> dist store
 *.refeye store
 dup 11 pow *.tieang .out2 store
 31505 dec
 *.thisgene .mkvirus store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 >

''''''''''''''''''''''''  Gene:  21 Ends at position  735  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  22 Begins at position  736  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx pow 11 dup *.trefypos !=
 516 30200 31505 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 9524 *.tin7 *.tin3 *.myties 832 -32 pyth sqr
''''''''''''''''''''''''  Gene:  22 Ends at position  763  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  23 Begins at position  764  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx .dx addstore
 >> .vshoot floorstore
 *.refeye pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  23 Ends at position  795  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  24 Begins at position  796  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *129 .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 4709 30200 31505 dec
 *.thisgene 335 800 true
 store
 .repro store
 *911 9524 *381 *.rdboy *.myties 832 -29 sqr
''''''''''''''''''''''''  Gene:  24 Ends at position  834  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  25 Begins at position  835  '''''''''''''''''''''''
 start
 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 root
''''''''''''''''''''''''  Gene:  25 Ends at position  872  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  26 Begins at position  873  '''''''''''''''''''''''
 cond
 *.chlr *.availability start
 837 *.refeye *.myties 15425 16427 *.refveldx .aim addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 31505 30200 516 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 300 .dx addstore
 >> .vshoot store
 *.refeye store
 store
 *911 store
 6000 sub *.in4 *.in4 468 6000 >

''''''''''''''''''''''''  Gene:  26 Ends at position  921  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  27 Begins at position  922  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  27 Ends at position  961  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  28 Begins at position  962  '''''''''''''''''''''''
 start
 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *.thisgene .mkvirus store
 *918 9524 *.tin7 *.rdboy *.myties 832 -32 pyth *.refveldx overbool
 *.refkills
''''''''''''''''''''''''  Gene:  28 Ends at position  1002  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  29 Begins at position  1003  '''''''''''''''''''''''
 start
 50 .repro store
 15 .aimright store
 stop
''''''''''''''''''''''''  Gene:  29 Ends at position  1010  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  30 Begins at position  1011  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 - 516 30200 31505 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *381 *.rdboy *.myties 832 -29 sqr
''''''''''''''''''''''''  Gene:  30 Ends at position  1054  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  31 Begins at position  1055  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 - 31505 dec
 *.thisgene 335 800 true
 store
 .repro store
 *911 9524 *381 *.rdboy *.myties 832 -29 sqr
''''''''''''''''''''''''  Gene:  31 Ends at position  1094  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  32 Begins at position  1095  '''''''''''''''''''''''
 start
 -637 16427 15425 16427 *.ypos .dx addstore
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *.tin7 9524 *911 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  32 Ends at position  1128  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  33 Begins at position  1129  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 xor
 30200 31505 dec
 *.thisgene .mkvirus rndstore
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  33 Ends at position  1169  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  34 Begins at position  1170  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refpoison 15425 16427 .dx addstore
 >> .vshoot store
 *.refeye *982 store
 dup 11 pow *.tieang >
 *.eyef *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  34 Ends at position  1205  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  35 Begins at position  1206  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup clearbool
 11 30200 516 >
 *.tieang pow 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  35 Ends at position  1243  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  36 Begins at position  1244  '''''''''''''''''''''''
 start
 15425 16427 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 store
 9524 *.tin7 pyth store
 15425 16427 *.myvenom .dx addstore
 ~ 333 store
 *.refeye *.thisgene ceilstore
 store
 floorstore
 30007 >
 dup 11 pow *.tieang 516 30200 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 stop
''''''''''''''''''''''''  Gene:  36 Ends at position  1301  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  37 Begins at position  1302  '''''''''''''''''''''''
 cond
 *.chlr *.availability start
 837 *.refeye *.myties 15425 16427 *.refveldx & 17 addstore
 >> .vshoot store
 *.refeye pow *.tieang >
 store
 dup 11 pow *.tieang >
 31505 30200 516 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 store
 6000 sub *.in4 >
 *.in4 468 6000 >

''''''''''''''''''''''''  Gene:  37 Ends at position  1348  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  38 Begins at position  1349  '''''''''''''''''''''''
 start
 16427 *.tin10 overbool
 *.refkills .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  38 Ends at position  1385  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  39 Begins at position  1386  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  39 Ends at position  1423  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  40 Begins at position  1424  '''''''''''''''''''''''
 start
 160 *.treffixed store
 834 *.refeye *.myties 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 ceilstore
 *.trefvelyoursx .mkvirus store
 .out1 store
 .repro store
 *911 store
 *572 *.nrg 6000 >
 *.in4 *.nrg 6000 >
 16427 *.refveldx .dx addstore
 >> *.trefvelyourup store
 *.trefsx store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 9524 *.tin7 *.tin3 *.myties 832 -32 pyth sqr
''''''''''''''''''''''''  Gene:  40 Ends at position  1500  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  41 Begins at position  1501  '''''''''''''''''''''''
 start
 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties 832 -32 pyth
''''''''''''''''''''''''  Gene:  41 Ends at position  1540  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  42 Begins at position  1541  '''''''''''''''''''''''
 start
 -637 16427 16427 *.ypos 4 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 *.refkills 15425 16427 pow *.tieang >
 516 17531 31505 dec
 *.thisgene .mkvirus store
 .repro store
 addstore
 >> 340 *.out6 9524 *.tin7 *.rdboy *.myties -32 >

''''''''''''''''''''''''  Gene:  42 Ends at position  1586  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  43 Begins at position  1587  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx *.nrg 6000 >
 overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *.tin7 9524 *911 *.rdboy *.myties -32 pyth
''''''''''''''''''''''''  Gene:  43 Ends at position  1629  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  44 Begins at position  1630  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 .tienum store
 addstore
 >> .vshoot store
 *.refeye store
 dup 11 pow *.tieang >
 516 30200 31505 dec
 *.thisgene .mkvirus store
 800 true
 store
 .repro store
 *911 *.tin7 -32 pyth
''''''''''''''''''''''''  Gene:  44 Ends at position  1666  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  45 Begins at position  1667  '''''''''''''''''''''''
 start
 834 *.refeye *.myties 15425 16427 *.refveldx .dx addstore
 >> .vshoot store
 *.refeye store
 dup clearbool
 11 30200 516 >
 *.tieang pow 31505 ceilstore
 *.thisgene .mkvirus store
 .out1 store
 .repro store
 *911 6000 >
 *.in4 *.nrg 6000 >

''''''''''''''''''''''''  Gene:  45 Ends at position  1704  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  46 Begins at position  1705  '''''''''''''''''''''''
 start
 -637 16427 *.refveldx overbool
 *.refkills 15425 16427 *.ypos .dx addstore
 >> .vshoot store
 *.refeye store
 dup 11 15425 16427 pow *.tieang >
 516 17531 31505 dec
 *.thisgene .mkvirus store
 .repro store
 *911 9524 *.tin7 *.rdboy *.myties -32 >
''''''''''''''''''''''''  Gene:  46 Ends at position  1743  '''''''''''''''''''''''

Title: Re: coexistence
Post by: Numsgil on April 08, 2022, 03:21:17 AM
I think those are viruses.  Which is interesting in its own way, but yeah maybe not what you were going for.
Title: Re: coexistence
Post by: hdggDalton on April 10, 2022, 01:35:22 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

yea i restarted from a previous save and introduced a really steep cost for dna copying since i think that's the cost to make a virus, hopefully they won't completely take over again. At one point there was a bot species that became plants but since they didn't grow super fast i kept them to see what happened. Unfortunately they died out over time both due to inefficient method of making chloroplasts (i think they could only make chloroplasts if they saw natural algae) and some of the bots evolving to eat them. In the end the bots that evolved to eat them died also because it meant they would cannibalize their children, since the bot plants were considered the "same" species. After that there was a struggle between a species of velvet colored bots and some green chalk colored bots. The green chalk boys won out and took over the map, and I think this is because of their mutated ability to make some body whenever they saw something like another bot or plant. This adds up and gives them an advantage in feeding and fighting against the velvet bots. All of these are green chalk bots, though they might have some differences due to mutations and such:

This one's got the heart of the champion with 29 descendants out of a population of 190
Code: [Select]
rndstore
 rnd store
 *.tieang angle 1 *.myvenom *.veldx sgnstore
 .out2 store
 31198 .reffixed divstore
 *.eye2 floorstore
 *488 <=
 .vshoot store
 store
 =
 *1172 383 ++ 528 *582 *.shdn ceilstore
 stop
 divstore
 ^ 532 - ^ - ++
 start
 *.refxpos 3 .up addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  42  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  43  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 ~ .tout8 inc
 start
 -6 .shoot store
 818 331 .out4 store
 *.refveldx .dx addstore
 *.refeye store
 *.myaimdx *.trefvelmysx .strbody inc
 1 450 *.in3 7814 divstore
 ^ >

''''''''''''''''''''''''  Gene:  2 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  74  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  3 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  76  '''''''''''''''''''''''
 else
 swapbool
 true
 addstore
 *488 <=
 | pow substore
 ^
''''''''''''''''''''''''  Gene:  4 Ends at position  85  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  86  '''''''''''''''''''''''
 start
 *.refdn floorstore
 %=
 not
 *-735 pyth addstore
 24709 *.veldn multstore
 4701 *.nrg 516 30200 32000 ceilstore
 *.thisgene substore
 30007 >
 13337 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  109  '''''''''''''''''''''''

This one has 18 descendants out of a population of 170, not bad at all
Code: [Select]
rndstore
 rnd store
 *.tieang angle 1 *.myvenom *.veldx sgnstore
 .out2 store
 31198 .reffixed divstore
 *.eye2 floorstore
 *488 <=
 .vshoot store
 store
 =
 *1172 383 ++ 528 *582 *.shdn ceilstore
 stop
 divstore
 ^ true
 not
 cos & ~ 566 ^ 532 - ^ - ++
 start
 *.refxpos 3 .up addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  49  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  50  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 ~ .tout8 inc
 start
 -6 .shoot store
 818 331 .out4 store
 *.refveldx .dx addstore
 *.refeye store
 *.myaimdx *.trefvelmysx .strbody inc
 1 450 *.in3 7814 divstore
 ^ >

''''''''''''''''''''''''  Gene:  2 Ends at position  80  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  81  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  3 Ends at position  82  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  83  '''''''''''''''''''''''
 else
 swapbool
 true
 addstore
 *488 <=
 | pow substore
 ^
''''''''''''''''''''''''  Gene:  4 Ends at position  92  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  93  '''''''''''''''''''''''
 start
 *.refdn floorstore
 %=
 not
 *-735 pyth addstore
 24709 *.veldn multstore
 4701 *.nrg 516 30200 32000 ceilstore
 *.thisgene substore
 30007 >
 13337 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  116  '''''''''''''''''''''''


And this one has 11 descendants out of a population of 170, still pretty good
Code: [Select]
rndstore
 rnd store
 *.tieang angle 1 *.myvenom *.veldx sgnstore
 .out2 store
 31198 .reffixed divstore
 *.eye2 floorstore
 *488 <=
 .vshoot store
 store
 =
 *1172 383 ++ 528 *582 *.shdn ceilstore
 stop
 divstore
 ^ 532 - ^ - ++
 start
 *.refxpos 3 .up addstore

''''''''''''''''''''''''  Gene:  1 Ends at position  42  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  43  '''''''''''''''''''''''
 cond
 *.eye5 *.refeye >
 ~ .tout8 inc
 start
 -6 .shoot store
 818 331 .out4 store
 *.refveldx .dx addstore
 *.refeye store
 *.myaimdx *.trefvelmysx .strbody inc
 1 450 *.in3 7814 divstore
 ^ >

''''''''''''''''''''''''  Gene:  2 Ends at position  73  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  3 Begins at position  74  '''''''''''''''''''''''
 start
 *.memval
''''''''''''''''''''''''  Gene:  3 Ends at position  75  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  4 Begins at position  76  '''''''''''''''''''''''
 else
 swapbool
 true
 addstore
 *488 <=
 338 | pow substore
 ^
''''''''''''''''''''''''  Gene:  4 Ends at position  86  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  5 Begins at position  87  '''''''''''''''''''''''
 start
 *.refdn floorstore
 %=
 not
 *-735 pyth addstore
 24709 *.veldn multstore
 *.trefage *.nrg 516 30200 32000 ceilstore
 *.thisgene substore
 30007 >
 13337 .repro store
''''''''''''''''''''''''  Gene:  5 Ends at position  110  '''''''''''''''''''''''

Title: Re: coexistence
Post by: Numsgil 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.
Title: Re: coexistence
Post by: hdggDalton 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
Title: Re: coexistence
Post by: Numsgil 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.
Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''

Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''

Title: Re: coexistence
Post by: hdggDalton 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
Title: Re: coexistence
Post by: Numsgil 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.
Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''

Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''
Title: Re: coexistence
Post by: hdggDalton 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 !~=
Title: Re: coexistence
Post by: Numsgil 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.
Title: Re: coexistence
Post by: hdggDalton 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
Title: Re: coexistence
Post by: hdggDalton 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
Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''
Title: Re: coexistence
Post by: hdggDalton 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  '''''''''''''''''''''''

Title: Re: coexistence
Post by: Numsgil on January 08, 2023, 09:42:15 PM
Glad to see you're still running simulations!  Looks like you're getting some reasonable simulation speed, at least.  Keep us posted.
Title: Re: coexistence
Post by: hdggDalton on March 11, 2023, 01:26:24 AM
Oh yeah i'm still running the simulation. i'm a bit pressed for time right now so i think i'll post more later, but an extremely interesting development is that some of the bots became plants, and actually succeeded at sustaining a population long term. There had been some new plant species before this, one of the most notable was in the top left which eventually died out, this one is in the top right corner and it's really weird. It's like the way it produces chloroplasts is only when it gets shot by something. Its reproduction is a bit erratic and filled with cannibalism so it spreads very slowly. But something else extremely interesting is that there's some kind of sentinel/guardian subspecies that somehow appropriated the genes for reproduction and used it to continually shoot around itself in a circle. These guys have maximum energy and body and frequently 1 shot any "normal" bots dumb enough to come near them. Something even more interesting about these guardians is that since the code for reproduction has a trigger to see if they have enough energy, they only shoot when they have enough energy. So this leads to the super cool phenomenon in which when it's daytime, they start getting energy from the sun and usually all of them are active and shooting, but when it's nighttime, they eventually fall below the energy threshold and stop shooting to conserve their energy

The term guardian may be a misnomer since they'll happily shoot their plant brethren with no discrimination if they're close enough. But so far they've been slowly spreading and surviving so it must be working for them
Title: Re: coexistence
Post by: hdggDalton on March 19, 2023, 11:16:01 PM
So, i decided to make the simulation tougher to survive in the hopes of making the bots evolve out of pressure. I doubled the base cost of living per cycle from 1 energy to 2 energy, and i also decreased how much energy plants get from the sun. It's been a while so those weird/interesting plant bots are long gone unfortunately. I squeezed them to extinction by decreasing energy from the sun as i mentioned before because their shots were causing a huge amount of lag.

I also wanted to shake up the strategies that the bots used. Because the vast majority of them just stayed still, only moving when they see a nearby bot or plant, I wanted to both punish this strategy (by doubling the cost of living without doing anything) and encourage new strategies that involve more movement by halving the movement cost. So far it seems that by raising the energy cost of living for everyone, it has made all of the bots more hostile and cannibalistic, and they seem to be better at actually hitting their shots too. I guess because there's now even more selection for bots that can gain energy not only from plants but also from other bots. Other than that, they don't seem to have developed any new movement strategies yet. The closest I've seen are the various deleterious negative mutations that just make the bot spin around in circles until it dies, which doesn't work because it doesn't achieve much more than just staying in place and wastes a bunch of energy, and also it completely denies the bot any opportunity to make use of leftover drifting velocity - that's a major source of movement for most bots, especially really really small bots with very little body which can just drift for a good distance on just leftover velocity from eating or chasing a bot. Others make the bot run in a straight line until getting stuck on a shape or the map corner (there's no wrap around) and then dying.

An interesting trend i noticed is that since i started the simulation this morning (I made the sweeping changes a few days earlier), I didn't change any settings but the size of the bot population is very slightly trending up, and the total energy of the bot population is very slightly trending down. My guess is that because the bots have become more fighty, they're collectively wasting more energy through stray body and energy shots, and the cost of shots and movement. For the population, I guess that the bots changed their reproduction threshold to be lower, so they make more children, but each getting slightly less energy.

Here's the best bot, 28 descendants out of a population of 705. So you can see it's far from being dominated by one particular lineage or species
Code: [Select]

 cond
 *.refshoot *.refveldn *.eye8 !=
 >=
 start
 *159 13991 *.myshoot 313 4696 *.myshoot addstore
 addstore
 28820 *.chlr *.edge store
 | 4696 *.myshoot addstore
 .eye8dir store

''''''''''''''''''''''''  Gene:  1 Ends at position  25  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  26  '''''''''''''''''''''''
 start
 *.eye5 11 >=
 .tout2 store
 *.fixed -6 .shoot store
 532 *.xpos *.hit store
 *.refdx 336 xor
 5 ++ addstore
 *.nrg 23435 >
 pow 550 *.in6 *.xpos store
 .repro store
''''''''''''''''''''''''  Gene:  2 Ends at position  55  '''''''''''''''''''''''
Title: Re: coexistence
Post by: hdggDalton on March 21, 2023, 01:02:03 AM
Very cool thing about the graphs: today i increased the cost of living again from 2 to 3 energy per cycle, but i also increased the energy from the sun from 20 to 30 energy. It made the graphs more volatile and varied:
Title: Re: coexistence
Post by: hdggDalton on March 24, 2023, 11:44:21 PM
Weirdly, there's a moderately strong upwards trend in the bot population, but all the other things like average energy, average age, and total energy stayed the same. This means the bots must be becoming better adapted to the harsh conditions i've imposed upon them :D
Title: Re: coexistence
Post by: hdggDalton on August 07, 2023, 01:41:39 PM
Hey lads it's been a while. The last simulation i was running got corrupted somehow and i wasn't able to continue it so i started a new simulation by bringing over the bots from the corrupted save (for some reason it wouldnt run but i could still select and save the bots) and plonking them down in the new simulation. The conditions here are even more harsh with a cost of 5 every cycle just to stay alive. Well it turns out i forgot to disable chloroplasts so at some point some bots evolved into being plants and slowly took over the map. The only thing keeping them somewhat under control is the 100 million energy limit that turns it to night time whenever it goes above that, but they don't seem to be dying out even though i've been reducing the sunlight energy and doubling the cost to make chloroplasts.

There's still a small population of the original mobile bots around, but they're struggling to survive on the original chloroplasts that are being repopulated once in a while and maybe the occasional corpse of a dead plant bot because they simply refuse to eat the plant bots. They earlier (like way before the plant bots became a thing) evolved a behavior where whenever they see someone from the same species they run backwards while shooting at them. Very good at avoiding and fighting against cannibalism, and it still serves that purpose because bots that don't do that often just eat their own children. But at this point so many of the plant bots genomes related to shooting have degraded so much because they don't need that to survive (actually this behavior would be disastrous for plant bots because they're usually so heavy that they can't move away from their children and end up eating them) that they're totally incapable of shooting, so they don't pose a threat despite their massive size. There just needs to be some way for the mobile bots to be able to eat the plant bots while still avoiding cannibalism and they will absolutely wipe the floor with them

heres the dna of a mobile bot with 39 descendants
Code: [Select]
substore

 cond
 ceil -1435 *.refeye *.myaimdx <
 start
 angle
''''''''''''''''''''''''  Gene:  1 Ends at position  9  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  10  '''''''''''''''''''''''
 start
 .up addstore
 false
 *.eye6 <
 -6 .shoot store
 div *342 dup -92 *-323 *.eye5 =
 << <=
 dropbool
 anglecmp ~ store
 root clear 415 *.kills 216 277 | 570 .aimright floorstore
 *.nrg stop
''''''''''''''''''''''''  Gene:  2 Ends at position  43  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  44  '''''''''''''''''''''''
 start
 true
 31852 >
 pyth 344 .repro store
 <<''''''''''''''''''''''''  Gene:  3 Ends at position  52  '''''''''''''''''''''''


and heres the dna of a plant bot with 17 descendants
Code: [Select]

 cond
 sqr 614 -1458 *.myaimdx start
 angle
''''''''''''''''''''''''  Gene:  1 Ends at position  7  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  8  '''''''''''''''''''''''
 start
 .up addstore
 xor
 *.eye6 <
 -88 -6 xor
 .shoot store
 *.refup dup *493 -25 & *-323 *500 =
 <=
 dropbool
 sqr & store
 *-813 5 .mkchlr floorstore
 *.nrg stop
''''''''''''''''''''''''  Gene:  2 Ends at position  37  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  38  '''''''''''''''''''''''
 cond
 31138 >
 pyth 344 300 start
 store
 <<''''''''''''''''''''''''  Gene:  3 Ends at position  46  '''''''''''''''''''''''

Title: Re: coexistence
Post by: Numsgil on September 10, 2023, 03:35:47 PM
I'm glad you're still running simulations.  I find your results really interesting.

For the mobile bots, their genome is mostly trashed at this point, except they've conserved the ability to eat ('-6 .shoot store') and reproduce ('344 .repro store'), which makes sense since otherwise you aren't going to produce any children.

Likewise the plants genome is mostly junk except for '5 .mkchlr floorstore', which allows it to make chloroplasts.