Author Topic: Multicellular groups  (Read 5706 times)

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Multicellular groups
« on: June 13, 2006, 12:13:43 AM »
What I just saw in my sim was not really an evolution, but a sponaneous formation of multicellular group with clear selective advantage.  Interested?  Read on.

You have to know the setup for the sim to understand this:  I had non-evolving veggies that accumulate a lot of energy before they produce offspring.  The offspring runs off some distance from parent, settles down and the cycle repeats.  If a veegie cannot divide for some reason (bot limit reached or no space left) it gets rid of energy by converting energy to body or just by sending out a shot with the excess.

The predator started off from Carnatus Orbis and evolved to get smaller and adjusted its hunting pattern.  But it remained a tie-feeder.

Anyway, what you can see in the attached sim (change extension to .rar and unrar it) is that a group of veggies got stuck at the edge of the field.  The veggies that are inside the group cannot divide and pump their energy to  the veggies that face the sim.  Those veggies grow very fat and large.  For some reason the Carnatus Orbis cannot tie-feed from huge veggies...  Maybe it thinks that it is too far off from the food to fire a tie.  

So I got this self-defending blob, that is protected from the predator and that grows pretty well.  It is especially curious because the evolved Carnatis was so good at hunting these veggies down that most of the time the sim was in "re-populating with veggies" mode.

Cool, huh?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Multicellular groups
« Reply #1 on: June 13, 2006, 12:16:42 AM »
Neat

Is this the new 2.4 version or are you still using 2.37?
« Last Edit: June 13, 2006, 12:17:19 AM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Multicellular groups
« Reply #2 on: June 13, 2006, 12:17:32 AM »
By the way this thing with ties surely needs a fixing.  What I think happens is that the bot fires the tie, but the tie is very long due to the large size of the veggie, so tie tries to contract and pulls the bot inside the veggie.  At this point it gets pushed off with a very strong force, that breaks the tie and the predator flies off in random direction at high speed.

On the other hand, we may call it a feature and keep it
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Multicellular groups
« Reply #3 on: June 13, 2006, 12:17:52 AM »
It's the new version.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Multicellular groups
« Reply #4 on: June 13, 2006, 09:10:11 PM »
Adjusting the coeffecient of elasticity slider can reduce the collision force between bots, but I bet the issue is not a function of bot collisions but rather a function of the default tie length and the default tie "springyness".   I haven't changed tie physcis much.  The default tie length and "springyness" is that originally specificed by Nums I think when he implemented the new tie physics in the 2.4 fork.  Ties when formed have a certain default "springyness" and a certain default length (200 out of 1000 I think).   They try to get to their default length so if you fire a tie from a long way away, the acceleration the bot feels as the tie contracts will be large, perhaps snapping the tie.

I'm very open to whatever people want to do on default tie behaviour (I.e. how long their natural length should be set at, how hard ties attempt to acheive their default length, etc.).  It's trivial to change this in the code.  However, I'd rather not expose it as an option as letting people change this will have a huge impact on how bots behave in different worlds.  I'd prefer we agree on a set behavior and hard code it.  Bots can always change tie lengths and elasticity themselves, but the default values we need to agree upon....
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Multicellular groups
« Reply #5 on: June 14, 2006, 12:39:24 PM »
I think the easiest way is to calculate the length of tie as the distance between the bots' edges, not between their centers.  Just subtract their combined radiuses from the distance between the centers and keep everything else the same.

On the other hand, as I said we may view it as feature that prevents tiny bots from attacking something they can't handle.  Either way is fine with me.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Multicellular groups
« Reply #6 on: June 14, 2006, 02:48:14 PM »
Quote from: shvarz
I think the easiest way is to calculate the length of tie as the distance between the bots' edges, not between their centers.  Just subtract their combined radiuses from the distance between the centers and keep everything else the same.

Done.  2.42.6 (out later today I hope) works this way now.  Lets see what people think.  Note I could also change the springness factor if people wanted it to be more difficult for bots to break ties before they hardened...
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Multicellular groups
« Reply #7 on: June 14, 2006, 03:03:30 PM »
Short update on the sim: As expected, Carnatus learned to eat these blobs.  I have no clue how they do it, but they do shoot some kind of shots out of their asses...
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline S.o.G.

  • Bot Neophyte
  • *
  • Posts: 10
    • View Profile
Multicellular groups
« Reply #8 on: June 14, 2006, 03:06:49 PM »
So, in 2.4 the edge reproduction bug is fixed?

Because in 2.3.7, veggies on the edge reproduce on top of themselves. This is really annoying in pond mode plus day/night sims. Veggies on the edge in the daytime can bloom to the maximum veggie population in a 8-bot sized area is a very short period of time, which slows the sim to 1 cycle per second. It is impossible for the bots to clean this up, you have to turn off the sunlight and set the maximum veggie population to zero and wait for them to die off. Hopefully your bots can subsist on corpses while this is happening.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Multicellular groups
« Reply #9 on: June 14, 2006, 03:13:28 PM »
A little more detail on what I did for 2.42.6.

A value placed in .tielen now represents the distance from the *edge* of one bot to the other.  It used to be center to center.

The maximum tie length is now 1000 edge to edge.  The actual underlying length is longer (1000 +r1 +r2).  THis means the range of legal values as far as bot code is concerned remains unchanged, but the effective max tie length is now longer.

The defalut tie length when a tie is formed is the distance between the two bots at the time the tie is formed, so there should be no aceleration due to tie contraction at the moment a tie is formed, but the tie will work against subsequent bot accelerations, contracting or expanding at the default springyness.
Many beers....