Darwinbots Forum
Welcome To Darwinbots => Newbie => Topic started 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
-
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.
-
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
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
-
yo guys one of the plant colonies split into 2
-
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
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 '''''''''''''''''''''''
-
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?
-
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"
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.
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
-
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
-
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
-
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:
-
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.
-
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:
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 '''''''''''''''''''''''
-
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.
-
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
-
Yeah that might work. Only one way to find out :)
-
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
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
-
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
-
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
-
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
*.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)
-
yeah those are some interesting mutations. Keep at it, see if you can get it to do more interesting things.
-
good news they learned how to make shell!!! :D here is dna:
.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
-
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:
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
-
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
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 '''''''''''''''''''''''
*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 '''''''''''''''''''''''
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 '''''''''''''''''''''''
-
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:
.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 '''''''''''''''''''''''
.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 '''''''''''''''''''''''
.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 '''''''''''''''''''''''
-
these guys are NOT having a good time... XD
-
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.
-
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 :)
-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 '''''''''''''''''''''''
-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 '''''''''''''''''''''''
-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:
-
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
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 '''''''''''''''''''''''
-
I think those are viruses. Which is interesting in its own way, but yeah maybe not what you were going for.
-
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
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
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
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 '''''''''''''''''''''''
-
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.
-
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
-
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.
-
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
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
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%)
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 '''''''''''''''''''''''
-
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
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
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
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
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 '''''''''''''''''''''''
-
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
*.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
*.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
*.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
*.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
-
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.
-
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.
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:
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
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
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
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 '''''''''''''''''''''''
-
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
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
*.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
!~=
*.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
!~=
*.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 '''''''''''''''''''''''
-
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
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 !~=
-
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.
-
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
-
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
-
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
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 '''''''''''''''''''''''
-
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!
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 '''''''''''''''''''''''
-
Glad to see you're still running simulations! Looks like you're getting some reasonable simulation speed, at least. Keep us posted.
-
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
-
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
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 '''''''''''''''''''''''
-
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:
-
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
-
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
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
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 '''''''''''''''''''''''
-
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.