Author Topic: Darwinbots 3 Progress  (Read 28992 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #15 on: April 01, 2009, 06:59:11 AM »
That's planned.  Not in the immediate future, but I'm planning around that idea.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Darwinbots 3 Progress
« Reply #16 on: April 01, 2009, 07:04:59 AM »
That would save a lot of work. If the first version of DB3 would be programmed as a sim having one shape (consisting of the entire space in the sim) with certain physical properties the basics would be in place at the right level.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #17 on: April 01, 2009, 07:26:05 AM »
Yep that's how it's going to work.  The first version will essentially have a large rectangular shape which the physics understands that bots are supposed to stay inside of, and the physical properties will be associated with that shape.

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #18 on: April 01, 2009, 08:22:17 AM »
Wow, you guys really do know how to read my mind on these details
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Darwinbots 3 Progress
« Reply #19 on: April 01, 2009, 11:50:22 AM »
Great minds think alike
Or:
It is a no brainer
take your pick

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Darwinbots 3 Progress
« Reply #20 on: April 02, 2009, 03:46:20 AM »
So the basic cell components cover about 85% of all cell operations, and the rest can be used with the old substances, eg. poison/virus, which can also be gradually replaced in later versions.  

As for different environmental components such as sand/air/water, this could be more complex if it models real life properly, as they do not differ only in physical but also biological properties.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #21 on: April 02, 2009, 10:51:16 AM »
In theory such things would have impacts on the way the bot functions and what it can do, but what actually happens is still to be seen.

Until we have M1 working there isn't much of a chance of seeing anything of this sort just yet.  Don't expect to see water in M1, lol.
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Arzgarb

  • Bot Neophyte
  • *
  • Posts: 8
    • View Profile
Darwinbots 3 Progress
« Reply #22 on: April 17, 2009, 07:25:56 AM »
My 2 cents:

You talked about making multibots by making bots "sticky" and creating hinges on contact. Could that be used later on to make shell out of sand by sticking it to the bot's skin?

Also, has it been decided yet whether bots will gain energy by shooting, ties or phagocytosis(sp)? If phagocytosis is chosen, how will it be done? Someone else talked about bots opening "mouths" to their fronts, or bossibly to any side. I think the eater bot could then apply a force to another bot (with a .pull sysvar or something), trying to pull it through its mouth. The other bot could escape by simply running away or killing the eater before getting digested, but if the eater it smart enough to close its mouth, the food stays inside (it could still shoot). They could be treated like a shape in a shape, like bots in the sim.

And then about fat, chloro and muscle: will there be a limit on these total, or individual limits? If there will be a total limit, what happens when it's been reached, and the bot tries to make muscle, for example? Will nothing be made, or will muscle be made and fat/chloro removed?

Yay, first post ever after years of lurking  

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #23 on: April 17, 2009, 05:14:52 PM »
Quote from: Arzgarb
My 2 cents:

You talked about making multibots by making bots "sticky" and creating hinges on contact. Could that be used later on to make shell out of sand by sticking it to the bot's skin?

It could, but I'll probably just do something like a bot eats some sand and then excretes it to form shell.  Or more likely a bot can produce 1 shell for X nrg, but if it has sand in its gut it can produce shell for 0.2X nrg, or something like that.  But then that sand shell places certain limits on how a bot can move (can't stretch or grow for instance).  I'm still playing with the exact specifics.  I'm trying to model it relatively closely on how diatoms work vs. how an ameoba works (basically it has no shell) vs. how something with a thick cell wall works.

Quote
Also, has it been decided yet whether bots will gain energy by shooting, ties or phagocytosis(sp)? If phagocytosis is chosen, how will it be done? Someone else talked about bots opening "mouths" to their fronts, or bossibly to any side. I think the eater bot could then apply a force to another bot (with a .pull sysvar or something), trying to pull it through its mouth. The other bot could escape by simply running away or killing the eater before getting digested, but if the eater it smart enough to close its mouth, the food stays inside (it could still shoot). They could be treated like a shape in a shape, like bots in the sim.

Again, still working through the specifics.  Check out this forum post I did not some long ago in another forum, which lead me to this link which talks about how zooplankton feed.  It also is almost impenetrable with biology jargon, so progress is slow

What I'm thinking is that phagocytosis involves one bot swallowing another whole, but that bot doesn't necessarily have to be dead so it can fight back.  Once in the gut the feeding bot begins releasing chemicals which start dissolving slime and shell, and then eventually begin digesting fat and muscle and all that.  The bot that was eaten can fight back if it's still alive, and maybe kill the bot eating it and escape.  The feeding bot latches on to its prey with something like a rigid tie, and slowly draws it into its mouth, which ends up moving both bots together if they're about the same mass (think a frog which eats by sticking its tongue onto another frog and pulling really hard).

Shots probably exist as a soley offensive weapon, designed to kill another bot before ingesting it.  And ties allow very small bots to attach themselves to a much larger bot and siphon off nrg, sort of like a mosquito.  The much larger bot would have a hard time getting rid of the smaller bot.

But as I examine this link, I'm hoping maybe some new and interesting feeding methods might come to mind.

Quote
And then about fat, chloro and muscle: will there be a limit on these total, or individual limits? If there will be a total limit, what happens when it's been reached, and the bot tries to make muscle, for example? Will nothing be made, or will muscle be made and fat/chloro removed?

I'm thinking no limits at all.  A bot gets a "normalized" quantity as a readback from its sysvars.  Like *.chloro might return 899, meaning that a bot is 89.9% made of chloro.  The bot itself might be tiny or really, really massive.
« Last Edit: April 17, 2009, 05:23:03 PM by Numsgil »

Offline Arzgarb

  • Bot Neophyte
  • *
  • Posts: 8
    • View Profile
Darwinbots 3 Progress
« Reply #24 on: April 19, 2009, 01:24:15 PM »
Quote from: Numsgil
Quote from: Arzgarb
And then about fat, chloro and muscle: will there be a limit on these total, or individual limits? If there will be a total limit, what happens when it's been reached, and the bot tries to make muscle, for example? Will nothing be made, or will muscle be made and fat/chloro removed?

I'm thinking no limits at all.  A bot gets a "normalized" quantity as a readback from its sysvars.  Like *.chloro might return 899, meaning that a bot is 89.9% made of chloro.  The bot itself might be tiny or really, really massive.

Right... So if the bot is, say, 70% chloro, 20% muscle and 10% fat, and size 100, and tries to make 10 more fat, it would after that be about 63,6% chloro, 18,2% muscle and 18,2% fat, and size 110? (If chloro, muscle and fat will be the final substances)

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Darwinbots 3 Progress
« Reply #25 on: April 19, 2009, 05:55:25 PM »
That sounds reasonable; I think that the rate at which a cell can change its substance should slowly decrease over time.
About the shell, at the moment it looks like there is three ways of doing it: Make the shell out of nothing (no change), digest minerals that are then used to build a shell, or make minerals structures that can be loosened from or fastened to other minerals to manipulate the shape of the environment into a shell, which can then be used as a sort of communal shell.
More as an idea to throw back in, I still think that a cell wall for retaining energy and keeping the bot intact is worth thinking about. Could make for some pressure interactions as well, as currently 'chewing' is impossible to simulate and invariably results in the prey shooting right back out.
« Last Edit: April 19, 2009, 05:57:51 PM by bacillus »
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #26 on: April 19, 2009, 11:40:14 PM »
Quote from: bacillus
That sounds reasonable; I think that the rate at which a cell can change its substance should slowly decrease over time.
About the shell, at the moment it looks like there is three ways of doing it: Make the shell out of nothing (no change), digest minerals that are then used to build a shell, or make minerals structures that can be loosened from or fastened to other minerals to manipulate the shape of the environment into a shell, which can then be used as a sort of communal shell.
More as an idea to throw back in, I still think that a cell wall for retaining energy and keeping the bot intact is worth thinking about. Could make for some pressure interactions as well, as currently 'chewing' is impossible to simulate and invariably results in the prey shooting right back out.

You have a good point; the processing power this might require, however, at first frightens me.  There could be a few ways to do it: 1) little particles in a bot bounce around, and if they go fast enough, they fly through the cell wall. 2) standard pressure calculations to determine if a bot is about to "Explode"

These two possibilities have complimentary, almost opposite downsides.

1) this is memory intensive, and possibly also slightly processing intensive.
2) this is process intensive, and depending on if shape is accounted for, could be slightly memory intensive.

Now, I know a few complicated algorithms might be able to remedy this to a degree, but in the end, it would have a huge effect on the speed of the simulation.
To put it into perspective, I believe the goal is to have it run reasonably fast at about 1,000 bots, which in DB2 is just a pipe dream.  Every cycle, assuming 1,000 bots, the system would have to execute 1,000 DNA's, update 1,000 bots, process the velocity, acceleration, inertia, momentum, rotation, collisions, and torque of at LEAST 1,000 objects; all that, and to make the speed reasonable, do it about 15-30 times every SECOND.

As you can see, every little thing you add in has an effect on how much the computer has to do, so adding even just 10 particles of energy per bot would greatly influence the speed.  Looking at it this way, it is possible to use technique 2, but the math is tricky, and if we run into any trig we might as well just forget about it, because computers and trig are not good buddies
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #27 on: April 20, 2009, 01:54:25 PM »
There is something in real life called an extracellular matrix which is basically anything abiotic (ie: not alive) that a multicellular critter uses to form its structure.  I just have no idea how to introduce something like this here, because it ultimately needs to be controlled from the DNA.

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #28 on: April 20, 2009, 02:11:36 PM »
Seems pretty simple to me, actually, I doubt we even have to code it in.

As long as cells can only survive while they are not being squeezed too much, it is likely that the bots will evolve to use sand or something similar as an outer layer as well as a connection to other bots.

In that way, as long as the bots can to some degree manipulate the objects it is connected to, it can use the sand or whatever it may be using at the time as that extracellular matrix layer.

We may want to allow for some ties though, so that there is an exclusively information based connection allowed between bots, as using the sand in this way would block the cells from touching.

Depending on the physics we implement, this sand-wall layer could also act as a collision buffer, effectively dispersing the forces from a collision.
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Darwinbots 3 Progress
« Reply #29 on: April 22, 2009, 05:01:06 AM »
If we're going to run sims on PC's then I don't think processing power is something we should be spending lightly.
DB isn't the real world, and IMO it doesn't have to be in order to simulate evolution. Obviously the closer it is to reality the more interesting the results would be to observe, but I still think the more processing power is required the more we should be looking for a cheaper way to fake it.
Having grains of sand sounds like a bad idea to me, I can't immagine how this would run properly on a normal PC, unless you want to have very few grains which would defeat the purpose.
You COULD allow objects to be made of a certain mineral, so you can place a sand wall that bots can extract materials from... stuff like that.
Or you could maybe make sand grains with no colision and very simple physics if you realy want the actual grains to be there I guess.

But my point is just that for evo sims it takes a loooong time for anything new to sart happening, and it'll take even longer if we add too much new stuff.
Theres other simpler areas I'd find more interesting to change, like the jerky tie physics and generaly tie comunication when using several ties. Or the triggers for shooting and tie feeding that require you to hit -3 .shoot store to fire venom for instance, on top of needing to actualy produce the venom and set .vloc to something usefull... I haven't heard of any zbots ever using venom and I have to admit I doubt they will get there till we have some sick future computers running DB at 10K cycles a sec.
Just saying we all have a very short limited lifespan, and the way the current DNA works I'm not even sure most of us will live to see half the sysvars being put to propper use.
So it might be a good idea to make it easyer for the DNA to evolve more gradualy to see some faster progress in evo sims.
One thing that could help when shooting and tie feeding is allowing a certain negative range to trigger a reaction rather than an exact value, but I think the whole way the DNA works and evolves could probably be set up in ways that favor random mutations far more than the current language (Although the ways I can immagine would make the DNA impossible to read, but you could probably parse it into something more readable somehow).
I don't know how real DNA works though, so I don't know if the current way is more realistic, but DB is a fake universe after all, so I don't think it would be cheating too much.
Also from the few things I think I recall about real DNA it would seem to me like what I have in mind is actualy more realistic... but I may be wrong, will go read about it on wiki...