Darwinbots Forum

Bots and Simulations => Bestiary => Short bots => Topic started by: spike43884 on February 18, 2015, 10:57:31 AM

Title: Animal_Minimalis_Body[Shortbot][Spike43884]2-20-2015
Post by: spike43884 on February 18, 2015, 10:57:31 AM
Ok, I felt like proving a point now to all these godly bot-makers of a stupid mistake they're making, especially ones which regulate their body! Animal_Minimalis_Body (Which I'd love to have included in the next update of DB2) is virtually the same as Animal_Minimalis except for 2 lines of code, both within the eat food gene. If you observe the image of the population graph in the F1 conditions sim (Picture1.png) it shows that Animal_Minimalis is stuck below 100 population yet AMB is rocketing up. For anyone running the simulation, AMB will not have a lot of population increase in the first 500, maybe 1000 cycles, it'll be just tailing behind AM but then when its 5000 cycles it'll become like picture1.png rocketing up, This is PURELY because the bots naturally convert body to energy if energy is low or body is high, so it then gets a huge shot of energy allowing reproduction, it wins in combat though because the opponent loses body incredibly quickly, causing them to have weaker attacks...body shots are better, just like sex repro is better. It'd be a good note to add to the shotbot tutorial (elites bot tutorial)
I replaced the gene:
Code: [Select]
'Gene 2 Eat Food
cond
*.eye5 50 >
*.refeye *.myeye !=
start
[font=arial black]-1 .shoot store[/font]
*.refvelup .up store
stop
with:
Code: [Select]
'Gene 2 Eat Food
cond
*.eye5 50 >
*.refeye *.myeye !=
start
[font=arial black]-6 .shoot store[/font]
*.refvelup .up store
[font=arial black]1 .fd body store[/font]
stop



FULL DNA:
Code: [Select]
' Animal_Minimalis_Body
' By Spike43884 (adapted from Nums Animal_Minimalis)
'
' Good for newbies to look at and to base bots off of.
' Splendid proof of the superiority of -6 .shoot store
' over -1 .shoot store


'Gene 1 Food Finder
cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refveldx .dx store
*.refvelup 30 add .up store
stop


'Gene 2 Eat Food
cond
*.eye5 50 >
*.refeye *.myeye !=
start
-6 .shoot store
*.refvelup .up store
1 .fd body store
stop


'Gene 3 Avoiding Family
cond
*.eye5 0 =
*.refeye *.myeye = or
start
314 rnd .aimdx store
stop


'Gene 4 Reproduce
cond
*.nrg 20000 >
start
10 .repro store
stop

end
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: Shadowgod2 on February 19, 2015, 12:49:45 AM
actually your theory is also wrong. bots do not feed off of body naturally when nrg is low. i've never seen this behavior even watching the info.
instead use this code in the hunting gene:

1000 *.nrg sub 0 floor .fdbody store

and this code in the feeding gene:

3000 *.body sub 0 floor *.nrg 10000 sub sgn 0 floor mult .strbody store

it will feed on body when nrg is below 1000 and store it when nrg is above 10000 but only to 3000.
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: spike43884 on February 19, 2015, 08:26:34 AM
actually your theory is also wrong. bots do not feed off of body naturally when nrg is low. i've never seen this behavior even watching the info.
instead use this code in the hunting gene:

1000 *.nrg sub 0 floor .fdbody store

and this code in the feeding gene:

3000 *.body sub 0 floor *.nrg 10000 sub sgn 0 floor mult .strbody store

it will feed on body when nrg is below 1000 and store it when nrg is above 10000 but only to 3000.

Really? See I think they do actually. Theres an extreme inbalance equation built in, See I only witnessed it in normal animal_minimalis, but run a sim for a long time with normal animal_minimalis, it has no .fdbody or .strbody and doesn't use body shots, yet some get bigger. So there has to be a store/retreive body equation. Anyway, the 1 .fdbody wouldn't keep up with the shots, so it means that there has to be, because this species would die without that.

Anyway, I mean...I could use that gene yes, but I wanted to keep it as close to the original animal_minimalis as possible, and it proves a point. Plus, I don't udnerstand that floor stuff, you should explain it to me one day :D
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: Shadowgod2 on February 19, 2015, 11:24:07 AM
what you are observing is the bots are feeding with 32k nrg. although the repro is 20k there is no space for a new bot so repro doesn't work until then. because the bot is feeding at 32k nrg all the excess nrg is converted into body. also -6 shots doesn't go to body for the feeding bot. it's converted to nrg for the feeding bot at the expense of body for the bot being fed off of.
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: spike43884 on February 19, 2015, 02:42:50 PM
what you are observing is the bots are feeding with 32k nrg. although the repro is 20k there is no space for a new bot so repro doesn't work until then. because the bot is feeding at 32k nrg all the excess nrg is converted into body. also -6 shots doesn't go to body for the feeding bot. it's converted to nrg for the feeding bot at the expense of body for the bot being fed off of.
Hmmm. I understand the first part. But crucially the last part...Couldn't be true as such. It was when I became first obsessed with -6 shots, I had a -1 and -6 shot combination, And It were merely simple bot, no .fdbody or .strbody or such, yet the opponent, predictably shrunk a lot, and my bot grew a lot, at the same rate, which couldn't be explained by the 32k nrg or such. Its not converted to nrg?
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: spork22 on February 19, 2015, 05:29:21 PM
I like it. It'll certainly come in handy for crowd control. I'll look out for this feeding off body behavior.
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: Shadowgod2 on February 20, 2015, 01:17:17 AM
ok i looked into it to see who was right and wrong. turns out we were both right and wrong. here is what i observed:

-1 targets enemy nrg
-6 targets enemy body
no surprise but this is the only difference in perspective

-1 takes x amount of nrg from foe
-6 takes y amount of body from foe
x=y

this is where it gets tricky
in both shots both body(least of) and nrg(most of) are received in = amounts of the shots(-1 -6) to each other.
that surprised me a bit.

it seems that the conversion rate is about 1 body per 200 nrg received but i'm not sure on that. Botsareus or Numsgil or someone that actually worked on the actual db code to tell you that for sure.

this is where it makes a big difference.
sence -1 shots target nrg there is no conversion but -6 shots target body. in each body there is 10 nrg so with -6 shots you basically get 10 times the amount of nrg than with -1 shots.

-1 shot takes 10 nrg from foe, you get 10 nrg
-6 shot takes 10 nrg from foe, you get 100 nrg

alright it's past midnight and i need some sleep. :sleepin:
Title: Re: Animal_Minimalis_Body [Shortbot][Spike43884]
Post by: spike43884 on February 20, 2015, 05:16:58 AM
ok i looked into it to see who was right and wrong. turns out we were both right and wrong. here is what i observed:

-1 targets enemy nrg
-6 targets enemy body
no surprise but this is the only difference in perspective

-1 takes x amount of nrg from foe
-6 takes y amount of body from foe
x=y

this is where it gets tricky
in both shots both body(least of) and nrg(most of) are received in = amounts of the shots(-1 -6) to each other.
that surprised me a bit.

it seems that the conversion rate is about 1 body per 200 nrg received but i'm not sure on that. Botsareus or Numsgil or someone that actually worked on the actual db code to tell you that for sure.

this is where it makes a big difference.
sence -1 shots target nrg there is no conversion but -6 shots target body. in each body there is 10 nrg so with -6 shots you basically get 10 times the amount of nrg than with -1 shots.

-1 shot takes 10 nrg from foe, you get 10 nrg
-6 shot takes 10 nrg from foe, you get 100 nrg

alright it's past midnight and i need some sleep. :sleepin:

Ok. That is interesting, And because of the higher amount of potential nrg (had to insert potential now) taken, it causes them to hit the maximum body size capable, then transfering more of the nrg to body, This then in turn causes shots to become more powerful, causing a speedier defeat of the enemy, allowing more enemies to be destroyed in a shorter space of time, causing even more potential nrg to be taken in X amount of time than a -1 shot'er. This causes a higher reproduction speed, causing even more potential nrg to be taken, and so on. So to sum it up, -6 shots are better.


I might work on a bot using memloc/memval so that whenever an opponent doesnt have shell it -6 shots and if it does have shell it -1 shots. But, this will be a fun way to top the best bots...I mean, to my understanding, FF uses -1 shots, and so does a lot of opponents.