Author Topic: body and mass  (Read 10801 times)

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
body and mass
« on: July 27, 2006, 09:01:12 AM »
I don't know if this is a bug or some setting
I don't have set correctly.
my bots always end up having only a tiny mass
and body ...
each time a bot reproduces, the body and mass
are shared, 50% in most cases ...
and neither the parent or offspring ever gains
any mass or body ...
resulting in a population of bots with very small
masses/bodies ... hardly even visible.
at some point they also seem to no longer be
able to feed.
this occurs even with mutations disabled.
what's up with this?
what am I missing?
this happens with any bots I use.
I see I can adjust the nrg/body ratio for veggies ...
but what determines this with the other bots?
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
body and mass
« Reply #1 on: July 27, 2006, 09:21:01 AM »
It depends a lot on which bots you are using.

Many bots (especially the older ones) have no ability to control their body size.
Some though (notably carnatus orbis) actually use body size as a condition for reproduction. I'm betting you won't see this if you do a test with him.

Another point is that in the options panel you now have the slider that allows you to select how much energy goes to body and how much just goes to the robot's own energy stores. (or is this just for veggie feeding? I don't remember off hand)

Just use a rob that has a .storebody command and/or a *.body condition in its repro gene.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
body and mass
« Reply #2 on: July 27, 2006, 09:51:41 AM »
aha!
yes ...
I'm still trying to find which 'old' bots work in 2.4x ...
indeed Canatus_Orbis works fine.

so this gene:
cond
*.nrg 800 >
start
100 .strbody store
stop

if nrg is greater than 800 begins to store it as body, yes?

and by body condition you mean:

cond
*.nrg *60 >
*.body *61 >
*.eye5 0 =
start
20 .repro store
2 50 store
150 .aimdx store
stop

so both nrg and body must be greater than something ...
could you explain just what value they are being compared to?
just > 60 and >61 ???

should  the .strbody be a standard gene for bots in 2.4?

thanks PY ...
my bots were becoming so small in body I don't think they
had enough body/strength to shoot anymore.

question to any/all ...
what bots actually work in 2.4x?
and which one's need to be tweeked/upgraded?

thanks
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
body and mass
« Reply #3 on: July 27, 2006, 10:43:10 AM »
Quote from: PurpleYouko
Another point is that in the options panel you now have the slider that allows you to select how much energy goes to body and how much just goes to the robot's own energy stores. (or is this just for veggie feeding? I don't remember off hand)

Just for veggies, but now that you mention it it might be a good idea to extend this to -1 shots as well, or set up a new slider for that.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
body and mass
« Reply #4 on: July 27, 2006, 01:59:31 PM »
Quote from: Griz
question to any/all ...
what bots actually work in 2.4x?
and which one's need to be tweeked/upgraded?

Here's my view on this.

With very few execptions, they should all work without tweaks or changes.  I'm not saying they all actually do work today.  I'm saying they all *should* work and I am committed to spending time on 2.4X fixing issues until they do.

The few execptions have to do with bots that are highly dependent upon previous version physics or default settings which would entail dispensing with some of the new physics "features" in 2.4 in order to make them work.  Generally, these are multi-bots such as Helios or Inchworm whose tie formations or movements were coded to assume specific prior version tie springyness, etc.  Inchworm works in 2.4x for example, after a fashion, but it slews from side to side.  This is because of the differences in tie physics between versions.  In 2.4, the tie Hooke forces are being translated to torque forces without any rotational element which results in oscilations.  Same thing happens when two bots of very different mass are tied.  Harmonics occur, the small guy vibrates.  I'm happy to tweak defaults, change settings, add damping forces, etc but to fix the vibrations properly requires the addition of rotational torque, not just moving due to tie forces but rotating as well.  I probably won;t do that.  And even if I did, there would still be differences preventing some sensitive bots from working correctly.

That said though, all sysvars should work, all behaviours should be as similar as possible.  Anywhere they arn't is a bug.

The best thing people can do to help me is to point out cases *with as much detail as possible* where a bot does X in 2.3X but does Y (or does not do X) in 2.4X.  

I need details.  Ideally, such bug reports have some analysis and a sim or bot DNA fragement behind them, pointing out the gene or sysvar that is or is not behaving correctly and showing some bot code that illustrates this.  It takes me a long time to walk through the DNA of a large bot I am unfamiliar with and compare the state between the different versions and try and pinpoint not only where the bug is but what the bot is supposed to do in the first place.  Help me!

Bot authors, you are in a great position to help me here.  You know what your bot should do and how it does it.  Help me improve the code by helping me debug the problem by pinpointing exactly where and what in your bot unexpected things occur in 2.4.  Thanks.
Many beers....

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
body and mass
« Reply #5 on: July 27, 2006, 02:10:33 PM »
ALL of my bots ...
even those that worked in earier versions of 2.4 ...
have this problem of dividing body/mass upon reproduction
ending up with tiny, tiny body/mass.
the exceptins will be those like PY spoke of ...
Canatus_Orbis and others with a .repro store.
even adding that to most of them still results in
them losing ground over time and ending up being
tiny specks.
this is the main reason I haven't been using 2.4 [later versions] ...
I can't get any sims that give any other results.
so if I want something that is semi-interesting ...
I go back to 2.37

what bots do people use that DO work?
maybe looking at them I can get an idea of why/how ...
what they have that the old ones don't.
I'd like a sim that I can actually see.
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
body and mass
« Reply #6 on: July 27, 2006, 02:16:37 PM »
Quote from: Griz
I'd like a sim that I can actually see.
Turn off variable bot radii if you don't like it.

Your bots are probably acting exactly the same in the two versions.   You only see the effect in 2.4.  Turn off variable radii if you don't want the radius to change as a function of mass.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
body and mass
« Reply #7 on: July 27, 2006, 02:17:40 PM »
How are your bots feeding?  -1 shots and -6 shots should push some returned nrg into body.  Tie feeding wouldn't, and would require a bot conciously storing some body.

I believe that all 2.37 is doing is masking the issue, since it doesn't really change the bots' sizes as they reduce in mass (it does a little, but not as much as 2.4+).

Are your bots actually dying in 2.4 when they lose mass?  Try running a sim with the dynamic sizes disabled. (or static sizes enabled, I forget what the widget is called): if you can't tell a difference between 2.4 and 2.37 we know it's just a cosmetic instead of core problem.
« Last Edit: July 27, 2006, 02:18:57 PM by Numsgil »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
body and mass
« Reply #8 on: July 27, 2006, 02:28:57 PM »
Great minds think alike....  

Quote from: Numsgil
if you can't tell a difference between 2.4 and 2.37 we know it's just a cosmetic instead of core problem.

FYI, I really do fix the actual underlying radius when "Fix Bot Raii" is checked on the General tab, so it's not just a display artifact.  Any function that relies on a bot's physical size such as collisions, the ability to fit between shapes, visability, how easy they are to hit with a shot, etc. will be impacted.

Another FYI, in my evo sims, being tiny is a common and very effective adaptation cause it basically makes it so hard to hit you that shots are ineffective against you.  Networks of very rapidly reproducing, highly connected tiny tie feeder bots are common and deadly.  See Helios Evolved.    I bet he kicks the crap out of just about any hand coded bot in a 2.4 sim...
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
body and mass
« Reply #9 on: July 27, 2006, 02:31:58 PM »
Now if only we could evolve something besides carpets of pond scum

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
body and mass
« Reply #10 on: July 27, 2006, 02:38:31 PM »
When your environment is bascially a pond, being pond scum makes you king of the jungle...

Adding moving shapes actually discourages the pond scum adaptation.  Finding food is harder, mobility is favorred, and large masses get chopped up and/or can't fit into narrow passages....
Many beers....

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
body and mass
« Reply #11 on: July 27, 2006, 06:16:39 PM »
Quote
Are your bots actually dying in 2.4 when they lose mass?
they were ... as they seemed not to be able to feed/fire effective shots with
too small a body/mass at some point.
I cannow feed the body a bit as PY suggested and that helps them hang
around but they still have small bodies/mass and no longer affect other
bots/veggies much in collisions.
and I can only store small amounts per cycle or it diminishes their energy
more quickly than they can gather it and they do die.
I haven't got that worked out very well yet ...
how much to store as body and at what energy level to begin.
perhaps I'll have to use a body condition as well to ensure they
don't reproduce unless they have sufficient body.
still tweaking/experimenting with all of that.


Quote
Try running a sim with the dynamic sizes disabled. (or static sizes enabled, I forget what the widget is called): if you can't tell a difference between 2.4 and 2.37 we know it's just a cosmetic instead of core problem.
right. did that.
but as eric says ...
it's not just a display artifact and any function that relies
on a bot's physical size will be impacted ...
and there are differences in the physics between 2.3/2.4.
I liked the early versions of 2.4 for that reason ...
the physics ... the collisions and ties to veggies and the
resulting acclerations seemed pretty realistic.
now, with a mass of .25, they have little effect in moving
veggies around.

what I'm trying to do is run things the way most folks are
going to be running their sims/bots ...
so the bots designed and/or mutated can compete on the
same playing field in leagues, etc ...
so we all get on the same page and can exchange and
share our bots and have some consistant results.

so let me ask others again ...
do YOUR bots end up looking like specks of dust with small
body/mass?
(seems like there is a lower limit of .25 for mass regardless
of how small the body gets. I'm talking about < 1 for body)
I even use the smallest field possible and still
can hardly tell the color of a bot or distinguish between any
two species by appearence.
are people using bots that store body as PY's C_Orbis does?
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
body and mass
« Reply #12 on: July 28, 2006, 08:51:45 AM »
Quote
so both nrg and body must be greater than something ...
could you explain just what value they are being compared to?
just > 60 and >61 ???
*60 and *61 are both memory locations that store values used as a threshold for reproduction.
As the bot gets older they are incremented so that a young bot reproduces quite quickly but as they age they get bigger and stronger.

I think Eric is missing the point when he says that ALL older bots will work in 2.4.
Some of the old ones that don't use body controls barely work in pre-2.4 when compared to the ones that manage their own body successfully.
IMO all modern bots need to use some sort of *.body conditional if they want to compete.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
body and mass
« Reply #13 on: July 28, 2006, 11:20:28 AM »
Quote from: PurpleYouko
I think Eric is missing the point when he says that ALL older bots will work in 2.4.
Some of the old ones that don't use body controls barely work in pre-2.4 when compared to the ones that manage their own body successfully.

Of course I meant it as a general principle, a criteria by which someone who sees a difference between 2.3X and 2.4X can use to determine whether they should expect me to spend time and energy reducing or illiminating that difference.

As a general principle, if a bot works poorly in 2.3X, I am committed to making it work equally poorly in 2.4X.  

Quote from: Griz
do YOUR bots end up looking like specks of dust with small
body/mass?
I see this often in my evo sims, depending upon the conditions.  All else being equal, organisms with shorter generation times win.  If you can reproduce more/sooner, selection will favor you.  If you spend cycles and energy on your own growth and mass, instead of reproducing, you will loose, all else being equal.  In an asexually reproducing population (no sexual selection) with no prediation (no reason to defend or compete) there are few or no reasons to be large and this is what a lot of evo sims are like.  In fact, being large actually works against you in such cases.  The vast majority of biological organisms on this planet are single celled, their niches don't favor larger size.  It is only our own marco, multi-cellular predejuce that views smallness as less evolved.

You can set up your sim to favor larger size to a certain extent.  Making veggies scarce or hard to find encourages energy storage.  Using a small number of very high energy veggies encourages competition for access space to the energy supply, encouraging larger size.  Using a simple maze makes finding food more difficult and favors longevity over immediate fucundity.

I have been considering adding some costs that would in themselves, favor larger size such as a thermal loss cost which would be function of the ratio of surface area to mass.  But until then, in most evo sims, I suggest using the zoom button.
« Last Edit: July 28, 2006, 11:53:36 AM by EricL »
Many beers....

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
body and mass
« Reply #14 on: August 01, 2006, 06:04:22 AM »
I was running an evosim with A Minimalis and the bots never gained any aditional body, so they just halved their body with every repro until they couldn't reproduce anymore.

In 2.37.6, If a bot was killed, say if all it's energy dropped to zero, then all it's remaining body was transfered to the killing bot. If a bot's body dropped to zero, the bot died, but transfered all it's remaining energy to the attacking bot

So, for 2.4, we need to have any body or energy remaining upon death transfered, rather than being lost to the vaccum.